Снижение затрат на CloudFront при обслуживании веб-сайта stati c S3 через HTTPS - PullRequest
0 голосов
/ 06 мая 2020

У меня есть «хобби» веб-сайт, чтобы экспериментировать с технологиями AWS. Поскольку это чистое хобби, я стараюсь максимально снизить его расходы и использую только те услуги, которые абсолютно необходимы.

За несколько месяцев сайт начал генерировать некоторый трафик c, около 30-50 посещений в день, а в некоторые дни до 1000 обращений в день.

Я использую CloudFront (CF) с основной целью - иметь HTTPS и иметь способ подключить мой домен к корзине моего веб-сайта S3, но расходы на них растут в результате увеличения количества обращений.

Очевидно, что на данном этапе расходы управляемы (несколько долларов в месяц), но, как я уже сказал, моя цель - свести затраты к абсолютному минимуму, и CF начинает составлять львиную долю моих

Просматривая стоимость CF в деталях счета, покажите мне, что запросы HTTPS и особенно пропускная способность составляют львиную долю затрат.

Я ищу способ, который позволяет мне продолжать использовать CF для HTTPS и для того, чтобы иметь возможность указать мой домен для безопасного обслуживания из корзины S3, но для снижения затрат, связанных с запросами и пропускной способностью.

Веб-сайт имеет статус c и полностью размещен на S3. Он содержит:

  • индекс. html - автоматически обновляется каждый час
  • 10 страниц категорий (размером 250 килобайт каждая) - автоматически обновляется каждый час, они содержат ссылки на страницы сведений
  • <1000 страниц сведений (размером 100 килобайт каждая) - они создаются один раз, а затем больше никогда не меняются </li>
  • <1000 изображений (размером 50 килобайт каждое) - каждое страница подробных сведений имеет 1 изображение, их поведение такое же, как и на страницах сведений </li>

Моя конфигурация CF выглядит следующим образом:

  • нет исходных пользовательских заголовков
  • Поведение :
    • Шаблон пути: По умолчанию (*)
    • Политика протокола средства просмотра: Перенаправить HTTP на HTTPS
    • Кэш на основе выбранных заголовков запроса: Белый список
    • Заголовки белого списка : Referer
    • Кэширование объектов: Настроить
    • Мин. TTL: 0
    • Макс. TTL: 31536000
    • TTL по умолчанию: 0
    • Файлы cookie для пересылки: Нет
    • Перенаправление и кэширование строки запроса: Нет
    • Нет географических ограничений

Анализируя большую часть затрат CF на пропускную способность, это говорит мне, что это могут быть файлы страниц и изображений, которые вызывают это. То есть, когда люди загружают мои страницы и обслуживаются файлы изображений, это добавляет 100 кб + 50 кб на страницу.

Основываясь на моем исследовании CF, я подозреваю, что шаблон Path * Параметры 1062 * и TTL - вот что необходимо здесь оптимизировать, чтобы добиться снижения затрат. Было бы здорово, если бы кто-нибудь указал мне правильное направление.

1 Ответ

4 голосов
/ 06 мая 2020

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

  • Amazon S3: 9c/GB
  • Amazon CloudFront: 8.5c/GB to 17c/GB в зависимости от местоположения

Некоторые идеи по снижению ваших затрат:

  • Измените дистрибутив CloudFront, чтобы использовать Ценовой класс 100 , который обслуживает трафик c только из более дешевых локации. Пользователи из других мест будут иметь более медленный доступ, но вы сэкономите деньги!
  • Увеличьте TTL по умолчанию , чтобы контент оставался в кэше дольше, что приводит к меньшему количеству повторных запросов.
  • Активируйте и изучите Журналы доступа CloudFront для анализа входящего трафика c. Возможно, много запросов исходит от пауков и ботов. Вы можете ограничить такой доступ, создав файл robots.txt.
  • Уменьшите размер файлов изображений за счет снижения качества. Компромисс в качестве может стоить экономии средств.
  • Сделайте менее популярный веб-сайт . Это снизит ваши расходы! :)
...