Обычно я разрабатываю свои приложения с помощью внешнего одностраничного приложения на 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 для контента, который не кэшируется, допустимо и поддерживается. Обычно он улучшает производительность для всего контента, поскольку оптимизирует соединение между браузером и сервером ... но этот эффект наиболее заметен по мере увеличения расстояния ... поэтому неясно, какое преимущество может быть у ваших зрителей, обычно находящихся в такой непосредственной близости. как и должно быть, если они тоже в Сингапуре.
Конечно, расходы тоже будут бонусом.
Есть еще одна деталь, которую вам нужно понять, поскольку вы говорите, что ваш трафик будет ограничен Сингапуром.
В Сингапуре:
Итак, у вас есть инверсия стоимости. В некоторых регионах использование CloudFront стоит столько же или меньше, чем использование CloudFront (например, в us-east-2 использование CloudFront фактически стоит на 0,005 долл. США / ГБ меньше, чем использование CloudFront). Сингапур - не одна из таких областей.
Учитывая ваше желание хранить все в одном домене, CloudFront по-прежнему кажется хорошим вариантом.