AWS S3: Оценка запросов на аннулирование для React. Приложение JS, размещенное на S3 - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть веб-приложение, разработанное с использованием скриптов React.js, HTML и Java.Это веб-приложение react.js вызывает API-интерфейсы REST бэкенда.

Я разместил это веб-приложение на AWS S3.

Я могу получить доступ к веб-приложению по HTTP.

Чтобы включить доступ на основе HTTP, я планирую использовать облачный фронт AWS.

У меня не так много статического мультимедийного контента, но мало css, js и немного маленьких изображений.

Как японять, что цена облачного фронта основана на

  1. объем передачи данных
  2. нет.HTTP / HTTPS-запросов
  3. Invalidation Requests

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

Я хочу знать, обрабатывается ли этот каждый запрос к бэкэнду как "Invalidation Request"?

Или запросы на аннулирование применимы только тогда, когда статический контент (HTML, CSS, JS, изображения) изменены?

Есть ли другой экономически эффективный вариант для включения HTTP для веб-приложений на основе S3?

1 Ответ

1 голос
/ 25 апреля 2019

Вы можете создать invalidation request, только если хотите очистить кэш CloudFront кэшированного содержимого (т. Е. Старую версию файлов) и использовать новую версию.

С вашим проектом React / HTML / CSS вы поместите его в корзину S3 и установите свою корзину S3 в качестве источника для CloudFront. Когда CloudFront выбирает объекты из S3, он кэширует их в своем пограничном кеше для будущих запросов TTL (времени жизни) объекта. Объект останется там, и CloudFront не проверит ваш источник на наличие новой версии объекта, пока не истечет TTL.

Запрос на аннулирование скажет CloudFront очистить объекты из кэша, и, поскольку они больше не находятся в кэше, когда запрос поступит в CloudFront, он получит объект из вашей корзины S3.

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

Вы можете узнать больше о недействительности и стоимости недействительности здесь: https://aws.amazon.com/blogs/aws/simplified-multiple-object-invalidation-for-amazon-cloudfront/

Стоит отметить, что мы делаем 5-10 выпусков в день, и наша CodePipeline заботится о недействительности для нас. Мы никогда не платили за недействительность. Кроме того, просто напомнить, что, по моему опыту, в зависимости от количества объектов, которые были признаны недействительными, аннулирование может занять от нескольких минут до более 30 минут.

...