2015-06-17 6 views
0

Я написал небольшой код .NET, который ежедневно загружает несколько файлов (около 50 ГБ каждый) из экземпляра Amazon EC2 в Amazon S3.Использовать выделенную сеть при загрузке файлов в 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, так что загрузка файла потребляет только эту сеть, и моя обычная сеть с доступом в Интернет не затронута?

+1

какой размер вы используете? – tedder42

+0

Проблема, как описано, звучит не совсем правильно. Единственная загрузка на S3 не должна перегружать другой трафик, независимо от того, насколько большой или как долго он работает, из-за насыщения сети. –

+0

Я использую экземпляр m3.medium. –

ответ

0

Невозможно настроить «выделенную сеть между службами Amazon».

Ближайшая такая возможность использует Amazon EC2 с EBS оптимизирован активирован. Это обеспечивает дополнительную пропускную способность сети, которая используется исключительно для связи с сервисом Elastic Block Store (EBS).

Полоса пропускания сети из экземпляров Amazon EC2 варьируется в зависимости от размера экземпляра. Маленькие экземпляры имеют меньшую пропускную способность, чем большие экземпляры. Для сравнения я скопировал 3 ГБ данных в экземпляр m1.xlarge (с большой пропускной способностью), и через интерфейс командной строки AWS (CLI) потребовалось 30 секунд, используя многокомпонентную загрузку.

В нормальных условиях ваш сетевой стек должен допускать множественные каналы связи (а не только отправку файла на S3), но отправка файлов на 50 ГБ, безусловно, будет потреблять большую часть полосы пропускания.

+0

У меня включена поддержка EBS в моих экземплярах. Копирование файла объемом 50 ГБ из экземпляра c3.large занимает около 2 - 3 минут. Таким образом, мои веб-сервисы становятся недоступными (или можно сказать очень неаккуратно) в течение 5 минут каждый раз, когда я запускаю резервное копирование. –

Смежные вопросы