Назад | Перейти на главную страницу

Должен ли я использовать CloudFront перед API / Web только потому, что я хочу, чтобы они были в одном домене?

Обычно я разрабатываю свои приложения с помощью внешнего одностраничного приложения на S3 и внутренних API на сервере, как правило, с эластичным beanstalk (например, ELB + EC2). Я не понимаю, что лучше поставить перед моим ELB и S3 - в основном CloudFront или API Gateway. Моя основная потребность сейчас - это кеширование и производительность (снижение нагрузки на серверы). Конечно, расходы тоже будут бонусом. В моем случае трафик часто ограничен одним регионом / страной (Сингапур).

Итак, если я хочу работать в одном домене, думаю, мне обязательно понадобится CloudFront? Таким образом, CloudFront будет иметь 2 источника S3 и ELB. Источник S3 может быть настроен с длинным TTL кеша, а ELB - с более коротким, только для обработки всплесков. Это хорошая идея?

Но что, если некоторые API, особенно API листинга, не следует кэшировать. Если я установлю TTL равным 0, он не будет кэшироваться, но, насколько я понимаю, он медленнее? Как лучше всего с этим справиться?

Тем не менее, когда мне использовать API Gateway? Предполагая, что мне не нужен весь этот SDK, и мои текущие системы все еще находятся на ELB / EC2. Вроде все, что будет в моем случае, будет прокси и система кеширования, как у cloudfront?

При выборе между CloudFront и APi Gateway CloudFront является правильным решением. API Gateway не совсем подходит для размещения всего сайта, и есть сложности, связанные с большими полезными нагрузками и двоичным контентом.

Оба могут использоваться в качестве обратных прокси-серверов, но CloudFront более прост для случаев использования, помимо API, и имеет неограниченное хранилище кеша.

он не будет кэшироваться, но я понимаю, что он медленнее

Он только «медленнее» в том смысле, что не так быстр, как кэшированные ответы. Но использование CloudFront для контента, который не кэшируется, допустимо и поддерживается. Обычно он улучшает производительность для всего контента, поскольку оптимизирует соединение между браузером и сервером ... но этот эффект наиболее заметен по мере увеличения расстояния ... поэтому неясно, какое преимущество может быть у ваших зрителей, обычно находящихся в такой непосредственной близости. как и должно быть, если они тоже в Сингапуре.

Конечно, расходы тоже будут бонусом.

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

В Сингапуре:

  • Трафик из EC2 или S3 в Интернет составляет 0,12 доллара США / ГБ.
  • Трафик из EC2 или S3 в CloudFront составляет 0,00 USD / ГБ.
  • Трафик из CloudFront в Интернет составляет 0,14 доллара США за ГБ.

Итак, у вас есть инверсия стоимости. В некоторых регионах использование CloudFront стоит столько же или меньше, чем использование CloudFront (например, в us-east-2 использование CloudFront фактически стоит на 0,005 долл. США / ГБ меньше, чем использование CloudFront). Сингапур - не одна из таких областей.

Учитывая ваше желание хранить все в одном домене, CloudFront по-прежнему кажется хорошим вариантом.