将文件上传到 Amazon S3 时使用专用网络

本文关键字:专用 专用网 网络 S3 文件 Amazon | 更新日期: 2023-09-27 17:56:38

我编写了一个小的 .NET 代码,每天将几个文件(每个大约 50 GB)从 Amazon EC2 实例上传到 Amazon S3。

仅供参考,这是代码片段:

public static bool UploadFiles(string s3bucket, IEnumerable<string> filesToUpload)
{
    TransferUtility FileTransferUtility = new TransferUtility(S3Client);
    bool bSuccess = true;
    foreach (string fileToUpload in filesToUpload)
    {
        try
        {
            FileTransferUtility.Upload(fileToUpload, s3bucket);
        }
        catch (Exception ex)
        {
            bSuccess = false;
            Mailer.SendMail("Cannot upload " + fileToUpload + " to " + s3bucket, GetFullStackTrace(ex));
        }
    }
    return bSuccess;
}

我目前面临的问题是,由于我的服务器提供的其他服务中断,网络在上传过程中被最大化使用。

是否可以在 Amazon 服务之间建立专用网络:EC2 和 S3,以便上传文件仅消耗该网络,而我通常面向互联网的网络不受影响?

将文件上传到 Amazon S3 时使用专用网络

无法配置"Amazon 服务之间的专用网络"。

最接近的此类功能是使用激活 EBS 优化的 Amazon EC2。这提供了仅用于与弹性块存储 (EBS) 服务通信的额外网络容量。

Amazon EC2 实例的网络带宽因实例大小而异。小型实例的带宽低于大型实例。为了进行比较,我在 m1.xlarge 实例(带宽较大)上复制了 3GB 的数据,通过 AWS 命令行界面 (CLI) 使用分段上传需要 30 秒。

在正常情况下,您的网络堆栈应允许多个通信通道(不仅仅是将文件发送到 S3),但发送 50GB 文件肯定会占用大部分带宽。