Низкая скорость загрузки в экземпляр ec2, работающий в другом регионе - PullRequest
0 голосов
/ 03 июня 2018

У меня есть несколько экземпляров EC2 (t2.micro) за балансировщиком нагрузки в регионе США-восток-1 (Северная Вирджиния), и мои пользователи получают доступ к приложению из Южной Америки.Это моя текущая настройка, в основном потому, что затраты составляют примерно 50% от того, что я бы заплатил за те же услуги здесь, в Бразилии.

Все мои загрузки идут в сегменты S3, также в регионе us-east-1.

Когда пользователь запрашивает файл из моего приложения, я проверяю разрешение, потому что сегменты не являются общедоступными (поэтому мне нужны все данные для прохождения через экземпляры EC2), и я передаю файл из S3 пользователю.Скорости загрузки для пользователей в порядке и обычно достигают максимума, который может обрабатывать пользовательское соединение, поскольку у меня включено ускорение передачи для моих корзин.

Моя проблема заключается в загрузке файлов через экземпляры EC2.Скорость загрузки сильно страдает, и в этом случае включение ускорения передачи на S3 никак не помогает.Мне кажется, что меня ограничивает AWS, потому что максимальная скорость ограничена 1 Мбит / с.

Возможно, я мог бы передавать файлы непосредственно от пользователя на S3, а затем обновлять свои базы данных, но это привело бы кнесколько проблем с моим основным рабочим процессом.

Итак, у меня есть два вопроса:

1) Это нормально, что скорости загрузки в инстансы EC2 страдают таким образом?

2)Какие у меня есть варианты, кроме перемещения всех служб в Южную Америку, ближе к моим пользователям?

Заранее спасибо!

1 Ответ

0 голосов
/ 03 июня 2018

Нет необходимости «передавать» данные из Amazon S3 через экземпляр Amazon EC2.Также нет необходимости «загружать» через Amazon EC2.

Вместо этого вы должны использовать Предварительно подписанные URL-адреса .Это URL-адреса, которые предоставляют ограниченный по времени доступ для загрузки или загрузки с Amazon S3.

Как это работает:

  • Ваше приложение проверяет, разрешено ли пользователюзагрузить / загрузить файл
  • Затем приложение генерирует предварительно подписанный URL-адрес с истечением срока действия (например, 5 минут)
  • Приложение предоставило URL-адрес клиенту (например, мобильное приложение) иливключает его в HTML-страницу (в качестве ссылки для загрузки или в форме для загрузки)
  • Затем пользователь загружает / загружает файл непосредственно в Amazon S3

В результате получается очень масштабируемая система , поскольку ваша система EC2 не должна участвовать в реальной передаче данных.

См .:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...