2016-03-04 3 views
2

У меня есть веб-сайт (EC2, RDS, VPC, S3), расположенный в ЕС (Ирландия), и я хочу сделать его более доступным для пользователей из Америки и Азии.AWS многоязычный веб-приложение

  1. Должен ли я создавать новые экземпляры (EC2, RDS, VPC, S3) в новых регионах? Или есть другой способ, как это сделать?
  2. Если у меня будет больше экземпляров EC2, как мне развернуть обновления для каждого экземпляра?
  3. Каков наилучший способ сделать сайт AWS легким и доступным с небольшой задержкой со всего мира?

ответ

1

Должен ли я создавать новые экземпляры (EC2, RDS, VPC, S3) в новых регионах?

Если вы берете бюджетные соображения из картинки, то создание экземпляров в каждом регионе АЗ по всему миру и распространение географического трафика на них было бы большим удовольствием.

Или есть другой способ, как это сделать?

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

Akamai чудовищно дорого, но CloudFlare has some free and very cheap plans.

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

Например, если вы запрашиваете домашнюю страницу из Ирландии, она может быть отправлена ​​из ирландского края кэш-памяти, тогда как если я попрошу ее из Новой Зеландии, она может быть отправлена ​​из ловушки Australasian edge cache - это doesn ' t добавьте любую сложность в настройку AWS.

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

Если у меня будет больше экземпляров EC2, как следует развертывать обновления для каждого экземпляра?

Это во многом зависит от сложности вашего веб-приложения.

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

Для более сложных мероприятий вы можете использовать комбинацию CodeCommit, CodePipeline и CodeDeploy для достижения той же цели.

В-третьих, всегда существует возможность создать собственное средство развертывания с использованием комбинации пользовательских сценариев и вызовов API AWS. Или используйте a tool that has already been created for this purpose.

Каков наилучший способ сделать сайт AWS легким и доступным с небольшой задержкой со всех уголков мира?

Это довольно широкий и сложный вопрос.

Мои предложения состоят в том, чтобы использовать ленивую загрузку, где это возможно, кэшировать все, где угодно, настраивать конфигурацию вашего веб-сервера в пределах одного дюйма своей жизни (и использовать такие вещи, как Varnish, если вы на nginx), оптимизировать все ваши медиа-активы как можно больше и т. д.

Для медиа-активов вы можете использовать CDN (например, S3 или CloudFront) для обслуживания запросов вместо их хранения в экземплярах EC2.

Безусловно, самое важное, что вы могли бы сделать для этого, это было бы поместить в кэш-память (обсуждалось ранее). Если вы сделаете это, ваша производительность AWS будет гораздо меньше беспокоиться.

+1

«Некоторые службы AWS являются глобальными - параметры VPC не будут специфичными для региона, а S3 также является глобальной услугой». 1) Настройки VPC являются региональными. 2) S3 может быть глобальной услугой, но ведра являются региональными. В зависимости от приложения и того, как используются ведра, наличие ведомых областей может повысить производительность. –

+0

Добавление CloudFront для кэширования статических ресурсов может помочь совсем немного. –

+0

@MattHouser спасибо, хорошая точка. [Эта статья полезна] (https://aws.amazon.com/blogs/aws/new-cross-region-replication-for-amazon-s3/), чтобы узнать о репликации поперечной области для S3 –

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