Статические веб-приложения очень популярны в наши дни, но их развертывание все еще может быть проблемой. Пользователю необходимо обеспечить масштабирование, распространение, хранение объектов, SSL и развертывание с нулевым временем простоя. Этого можно добиться на AWS с помощью S3, Cloudfront и Route53, но все они требуют правильной настройки.

В этом посте я хотел бы продемонстрировать, как мы можем упростить этот процесс, используя проект с открытым исходным кодом Опта.

Opta — это структура Infrastructure as Code, в которой пользователь указывает свои потребности на высоком уровне абстракции, а Opta генерирует терраформу/руль, необходимые для достижения этих целей. С Opta пользователям не нужно быть экспертами в области облачных вычислений/инфраструктуры, поскольку она включает в себя надежные, готовые к работе модули для большинства облачных служб и позволяет пользователям быстро составить свой идеальный стек инфраструктуры.

Мы создадим готовую к работе установку статического веб-приложения — менее чем за 10 минут!

Архитектура

Как описано выше, наши пользователи будут использовать Cloudfront, который будет извлекать активы из S3. В качестве нашей цели развертывания мы будем использовать этот забавный клон 2048 года!

Опта Конфигурация

Во-первых, давайте проверим проект 2048:

git clone https://github.com/gabrielecirulli/2048.git

Вы управляете Opta, записывая файлы конфигурации yaml. Для этого конкретного примера нам нужны Cloudfront и модуль S3. Итак, создайте следующий файл и назовите его opta.yaml.

Убедитесь, что вы используете правильный путь к извлеченной кодовой базе 2048.

Обратите внимание, как просто в Opta настроить Cloudfront и S3. Аналогичная настройка в консоли AWS или через Terraform может занять несколько часов!

Как только этот файл будет готов, мы можем установить Opta и запустить приложение.

Установка:

/bin/bash -c "$(curl -fsSL https://docs.opta.dev/install.sh)"

Более подробная инструкция.

Применить:

opta apply -c opta.yaml

Вот и все! Вы можете получить cloudfront_domain, запустив opta output, и веб-сайт должен быть там виден!

Добавление домена

Чтобы добавить домен + SSL к этой настройке, вам нужно выполнить еще несколько шагов:

  1. Запросить сертификат в ACM для доменного имени. Мы используем 2048.runx.dev, но вы можете выбрать любой домен, которым владеете.

2. Следуйте инструкциям ACM, чтобы подтвердить право собственности на домен, создав запись CNAME. (Инструкции для доменов Google)

3. Обновите opta.yaml, чтобы указать ARN сертификата и имя домена.

4. Добавьте запись CNAME, чтобы ваш домен (2048.runx.dev) указывал на cloudfront_domain (тот, который вы получаете через opta output). (Инструкция для Route53)

Вот и все! Теперь ваш сайт должен быть доступен по доменному имени!

Что дальше

Это был краткий обзор того, как мы можем использовать Opta для развертывания статического веб-приложения на AWS. Нам удалось настроить надежную рабочую среду с минимальными затратами!

Обязательно ознакомьтесь с документами для дальнейшей настройки.

Opta может гораздо больше! Ознакомьтесь с этими примерами или сайтом документации. Если у вас возникнут какие-либо проблемы или у вас есть предложения, для чего еще вы хотели бы использовать Opta, сообщите нам об этом в комментариях или в нашем слэке :))