Настройка базы дистрибуции Amazon CloudFront для Amazon S3
Amazon CloudFront эффективно работает с простым сервисом хранения данных Amazon (Amazon S3), ускоряя доставку веб-контента и снижая нагрузку на серверы источника. Amazon S3 — отличный выбор для тех, кто хочет хранить данные в облаке и доставлять их в виде веб-контента. Если вы предпочитаете доставлять функциональность или динамический контент, узнайте, как настроить дистрибуцию Amazon CloudFront для эластичного облака вычислений Amazon (Amazon EC2).
Каковы преимущества настройки дистрибуции Amazon CloudFront с помощью Amazon S3?
Дистрибуция сети доставки контента Amazon CloudFront (CDN) дает пользователям S3 множество преимуществ.
Высокая скорость передачи данных
CloudFront позволяет быстро предоставлять контент пользователям по всему миру. Множество периферийных местоположений CloudFront кэшируют и доставляют контент ближе к пользователям, сокращая задержки и разгружая мощность сервера источника.
Улучшенная безопасность и производительность
CloudFront также ограничивает доступ к корзине S3. За счет предоставления доступа к контенту только адресам CloudFront ваши приложения станут более безопасными и адаптивными.
Экономичная передача данных
Ценовая политика CloudFront позволяет настроить доставку в соответствии с вашим бюджетом. AWS не взимает плату за передачу данных между размещенным на AWS источником, таким как S3, и CloudFront, поэтому загрузка данных из источника станет экономичным вариантом.
Как ускорить загрузку динамического контента с помощью CloudFront и S3
В этом видео показано, как настроить источник и начать тестирование дистрибуции CloudFront CDN всего за 15 минут.
Шаг 1. Перейдите в консоль AWS | Шаг 2. Создайте корзину Amazon S3 | Шаг 3. Создайте дистрибуцию CloudFront | Шаг 4. Укажите настройки дистрибуции | Шаг 5. Настройте источник | Шаг 6. Настройте удостоверения доступа к источнику | Шаг 7. Настройте режим кэширования по умолчанию | Шаг 8. Настройте время жизни (TTL) | Шаг 9. Настройте дополнительные функции | Шаг 10. Протестируйте дистрибуцию CloudFront
Шаг 1. Перейдите в Консоль AWS
Сначала войдите в Консоль управления AWS и выберите Amazon S3 из списка сервисов.
Шаг 2. Создайте корзину Amazon S3
Для этого:
- Создайте корзину S3, если у вас ее еще нет, выбрав «Создать корзину».
- Укажите имя корзины, совместимое с DNS.
- Выберите регион, в котором вы хотите разместить корзину.
После описанных шагов вы сможете создать корзину. Используя консоль или API S3, вы можете добавить в корзину больше файлов или создать новые корзины. Когда вы в первый раз создаете корзину S3, на распространение изменений DNS-имени уходит некоторое время — обычно до 15 минут.
Шаг 3. Создайте дистрибуцию CloudFront
Затем перейдите в CloudFront из раздела Сетевая конфигурация и доставка контента, расположенного в списке сервисов консоли AWS. Если вы уже открывали CloudFront, зайдите в историю для быстрого доступа. Здесь вы можете создать новую веб-дистрибуцию, нажав Создать дистрибуцию.
Шаг 4. Укажите настройки дистрибуции
Теперь вы можете начать вводить настройки дистрибуции. Для начала укажите созданный вами домен S3 в поле Доменное имя источника.
Шаг 5. Настройте источник
Введите доменное имя источника. Если вы создали корзину S3 в том же аккаунте AWS, она должна появиться в раскрывающемся списке внутри поля. Если она находится в другом аккаунте, проверьте настройки корзины, чтобы предоставить CloudFront разрешения на доступ.
Предоставление разрешений на доступ позволяет CloudFront читать объекты из вашей корзины. Можно также указать путь к источнику, поместив все объекты во вложенную папку.
Шаг 6. Настройте удостоверения доступа к источнику
Здесь вы можете ограничить доступ к источнику Amazon S3. Если вы выберете «Да», система попросит вас создать новое удостоверение доступа к источнику или выбрать существующее, что позволит CloudFront читать объекты из вашей корзины. Вы также можете разрешить CloudFront обновлять политику корзины за вас.
Если вы решите не ограничивать доступ, пользователи смогут обойти CloudFront и получить доступ к контенту напрямую через URL-адрес корзины S3. Для любого конфиденциального контента важно установить правильные ограничения доступа.
В этом разделе вы также можете указать путь к источнику, если все объекты хранятся во вложенной папке. Вы можете предоставить настраиваемый заголовок источника с указанным значением, которое CloudFront будет пересылать источнику при каждом запросе. Это полезно для настраиваемых источников, поскольку показывает, какой запрос поступил от CloudFront, а какой — от другого клиента.
Шаг 7. Настройте режим кэширования по умолчанию
Вы можете выбрать различные параметры в разделе настройки режима кэширования по умолчанию.
Политика протоколов пользователя позволяет выбрать способ обработки протоколов HTTP и HTTPS. Например, можно выбрать перенаправление запросов HTTP на HTTPS, что позволит поддерживать запросы по любому из этих протоколов. Вы также можете указать поддержку только HTTPS, в этом случае трафик HTTP будет удален. Это гарантирует соответствие передовым рекомендациям в области веб-безопасности.
CloudFront позволяет указать, какие методы HTTP вы хотите принять. Настройка по умолчанию — GET, HEAD. Выбрав любой из других вариантов (GET, HEAD, OPTIONS или GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE), вы сможете настроить метод кэширования CloudFront.
Затем можно указать, какие заголовки HTTP необходимо переслать в источник. Обычно рекомендуется разрешать заголовки согласно соответствующему режиму запроса и ответа для вашего источника Amazon S3. В частности, если ваш источник изучает определенные заголовки HTTP, чтобы решить, какой объект возвращать, вам следует разрешить их использование. Если вы пересылаете все заголовки HTTP, CloudFront фактически обойдет уровни кэширования и вообще не попытается кэшировать объект.
Шаг 8. Настройте время жизни (TTL)
В следующем разделе вы можете указать время жизни (TTL), определяющее, как долго контент остается в кэше до истечения срока его действия. По умолчанию выбрано Использовать заголовки кэша источника. Кроме того, можно настроить верхние и нижние временные рамки хранения объектов в кэше CloudFront.
Если вы решите изменить эти настройки, вам будет предложено ввести минимальное и максимальное значение TTL в секундах. Таким образом, если заголовок возвращает значение, которое выходит за указанные пределы, CloudFront будет использовать минимальное или максимальное значение TTL. Если же значение находится в этих пределах, CloudFront будет использовать значение, возвращенное из вашего источника.
Если ваш источник не возвращает заголовок управления кэшем, вместо него будет использоваться TTL по умолчанию. В нашем видео-примере значение по умолчанию равно 86 400 секундам, что эквивалентно 24 часам.
Шаг 9. Настройте дополнительные функции
В следующем разделе вы можете выбрать кэширование контента на основе файлов cookie и параметров строки запроса.
Как и в случае с заголовками HTTP, рекомендуется использовать только те файлы cookie или значения строки запроса, которые соответствуют вашему источнику. Вы также можете переслать их, и CDN все равно попытается их кэшировать. При пересылке всех данных будьте внимательны — если CloudFront перешлет все данные, то это может значительно снизить частоту попадания в кэш. В результате может произойти многократное кэширование большого количества объектов из-за различных возможных вариантов запросов и значений файлов cookie.
После этого у вас будет больше вариантов в следующих полях:
- Вы можете выбрать режим Smooth Streaming, если доставляете видео по запросу (VOD) с помощью CloudFront.
- Вы можете ограничить доступ пользователей, если им будет открыт конфиденциальный контент в CloudFront.
- Вы можете выбрать автоматическое сжатие объектов, если CloudFront будет размещать сжатые файлы.
- В разделе События Lambda@Edge можно создавать различные функции для вызова. Дополнительные сведения см. в разделе Настройка на периферии с помощью Lambda@Edge.
В разделе Настройки дистрибуции вы можете указать, какие части сети CloudFront необходимо использовать. По умолчанию CloudFront использует все периферийные местоположения для обеспечения максимальной производительности. Это поможет вам как можно быстрее разместить свой контент по всему миру.
Если вы ожидаете пользователей только в определенных регионах, таких как США, Канада и Европа, вы можете указать только эти регионы, поскольку цена в них ниже. Это не означает, что пользователи за пределами этих регионов не смогут получить доступ к вашему контенту — CloudFront просто направит их к ближайшему периферийному местоположению. Если вы собираетесь использовать брандмауэр веб-приложений AWS (AWS WAF) с CloudFront, можно настроить эти параметры здесь.
Перед сохранением дистрибуции важно настроить сертификат уровня защищенных сокетов (SSL). Здесь есть два варианта:
- Используйте сертификат CloudFront по умолчанию.
- Загрузите или запросите настраиваемый сертификат SSL в менеджере сертификатов AWS (ACM) и свяжите его со своей дистрибуцией CloudFront; это удобно, если вы используете собственный домен.
Наконец, вы можете использовать остальные настройки, чтобы указать:
- Какие поддерживаемые версии HTTP необходимо использовать.
- Будете ли вы использовать ведение журнала и какую корзину для журналов должен использовать CloudFront для хранения журналов доступа.
- Активировано ли ведение журнала файлов cookie.
Теперь можно ввести описание и создать дистрибуцию. После сохранения развертывание дистрибуции по всему миру займет примерно 15 минут.
Шаг 10. Протестируйте дистрибуцию CloudFront
Как только дистрибуция будет готова, нажмите на нее, чтобы просмотреть настройки. На первом экране вы увидите ряд вкладок и заданные вами параметры конфигурации. При необходимости можно добавить дополнительные источники и несколько режимов кэширования.
CloudFront также позволяет создавать собственные страницы ошибок или изменять продолжительность хранения сообщений об ошибках в кэше; для этого выберитеСоздать пользовательское сообщение об ошибке. Эти настройки можно адаптировать для каждого кода ошибки HTTP. Допустим, вы хотите повторить попытку при каждом появлении ошибки 403; для этого укажите минимальное значение TTL, равное 0 секундам. По умолчанию CloudFront кэширует все данные в течение 300 секунд, чтобы снизить нагрузку на источник. При желании вы также можете создавать собственные сообщения об ошибке для каждого кода ошибки.
На вкладке Ограничения можно включить географические ограничения, чтобы разрешить или запретить пользователям в определенных регионах просматривать ваш контент. На вкладке Инвалидации можно удалить настраиваемые объекты из периферийных кэшей CloudFront. Наконец, вы можете использовать вкладку Теги для применения настраиваемых тегов, которые помогут упорядочить и идентифицировать ваши дистрибуции.
После завершения скопируйте домен и вставьте его в браузер, чтобы увидеть дистрибуцию в действии. Вы также можете узнать, как доставлять динамический контент вашего приложения с помощью CloudFront на инстансе веб-сервера Amazon EC2.
Шаблон Amazon CloudFormation, который поможет вам начать работу с CloudFront
Шаблон Amazon CloudFormation также поможет вам начать работу с CloudFront. Этот шаблон запустит корзину S3 для хранения статических файлов в нужном масштабе, а затем доставит их пользователям через CloudFront CDN.
Чтобы узнать больше, ознакомьтесь с публикацией в блоге под названием Amazon S3 + Amazon CloudFront: идеальная пара, и получите шаблон CloudFormation.
Дополнительные ресурсы по доставке контента с помощью CloudFront
Не знаете, как начать работу с CloudFront? Ознакомьтесь с нашим руководством по началу работы с сетями доставки контента или обратитесь в Центр документации Amazon Web Services по сетям доставки контента.
Ознакомьтесь со следующими ресурсами по управлению дистрибуцией CloudFront на S3 в нашем Центре знаний премиум-поддержки:
Дополнительные ресурсы
Дополнительные ресурсы по Amazon CloudFront