Как я могу настроить CloudFront, чтобы он стоил мне немного дешевле? - PullRequest
0 голосов
/ 03 апреля 2020

У меня очень статичный c сайт, в основном HTML и немного Javascript на S3. Я подаю это через Cloudfront. Мое использование возросло, плюс один из моих Javascript файлов довольно большой.

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

Это использование для вчерашнего дня:

enter image description here

Глядя на другие вопросы, кажется, что смена заголовков может помочь, но я подумал У меня уже было включено кэширование. Это то, что curl возвращает, если я получаю один из этих файлов:

* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
< HTTP/2 200
< content-type: text/html
< content-length: 2246
< date: Fri, 03 Apr 2020 20:28:47 GMT
< last-modified: Fri, 03 Apr 2020 15:21:11 GMT
< x-amz-version-id: some string
< etag: "83df2032241b5be7b4c337f0857095fc"
< server: AmazonS3
< x-cache: Miss from cloudfront
< via: 1.1 somestring.cloudfront.net (CloudFront)
< x-amz-cf-pop: some string
< x-amz-cf-id: some string

Это то, для чего настроен кэш, как в CloudFront:

enter image description here

Это то, что S3 говорит, когда я использую curl для запроса файла:

< HTTP/1.1 200 OK
< x-amz-id-2: some string
< x-amz-request-id: some string
< Date: Fri, 03 Apr 2020 20:27:22 GMT
< x-amz-replication-status: COMPLETED
< Last-Modified: Fri, 03 Apr 2020 15:21:11 GMT
< ETag: "83df2032241b5be7b4c337f0857095fc"
< x-amz-version-id: some string
< Accept-Ranges: bytes
< Content-Type: text/html
< Content-Length: 2246
< Server: AmazonS3

Так что я могу сделать? Я не часто обновляю файлы, и когда я делаю это, я не возражаю, если для распространения изменения требуется день или два.

Спасибо.

1 Ответ

0 голосов
/ 04 апреля 2020

Если ваша цель - сократить расходы на CloudFront, то стоит пересмотреть, как он взимается:

  • Региональная передача данных в Inte rnet (за ГБ): От 0,085 до 0,170 долларов (в зависимости от местоположения ваших пользователей)
  • Региональная передача данных в исходное состояние (за ГБ): От 0,020 до 0,160 долларов (данные возвращаются в ваше приложение)
  • Запрос цены для всех методов HTTP (на 10000): От 0,0075 до 0,0090

Сравните это с Amazon S3 :

  • GET-запросы: $ 0,0004 за 1000
  • Передача данных: $ 0,09 за ГБ (также относится к трафикам c из экземпляров Amazon EC2)

Поэтому некоторые варианты экономии денег:

  • Выберите более низкий класс цен , ограничивающий, из каких регионов отправляется трафик c "out" , Например, Price Class 100 отправляет только трафик c из США и Европы, где расходы на передачу данных ниже. Это сократит затраты на передачу данных в других местах, но обеспечит им более низкое качество обслуживания (большую задержку).
  • Прекратите использование CloudFront и обслуживайте контент напрямую из S3 и EC2. Это сэкономит немного на запросах (примерно вдвое дешевле), но передача данных будет стоить аналогично ценовому классу 100.
  • Увеличьте продолжительность кэширования для ваших объектов. Тем не менее, отчет показывает 99,9% + количество попаданий, так что это мало поможет.
  • Настройте объекты так, чтобы они сохранялись дольше в пользовательских браузерах, чтобы было меньше запросов. Тем не менее, это работает только для «повторить траффи c» и может не сильно помочь. Это зависит от использования приложения. (Я не знаком с этой частью. Она может не работать в сочетании с CloudFront. Надеемся, что другие читатели могут комментировать.)

Как правило, затраты на мошенничество связаны с объемом трафика c. Если ваше приложение популярно, эти затраты на передачу данных возрастут go.

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

...