- Домашнее задание состоит из обязательной части, которую нужно выполнить на провайдере Yandex Cloud, и дополнительной части в AWS (выполняется по желанию).
- Все домашние задания в блоке 15 связаны друг с другом и в конце представляют пример законченной инфраструктуры.
- Все задания нужно выполнить с помощью Terraform. Результатом выполненного домашнего задания будет код в репозитории.
- Перед началом работы настройте доступ к облачным ресурсам из Terraform, используя материалы прошлых лекций и домашних заданий.
Что нужно сделать
- Создать бакет Object Storage и разместить в нём файл с картинкой:
- Создать бакет в Object Storage с произвольным именем (например, имя_студента_дата).
- Положить в бакет файл с картинкой.
- Сделать файл доступным из интернета.
- Создать группу ВМ в public подсети фиксированного размера с шаблоном LAMP и веб-страницей, содержащей ссылку на картинку из бакета:
- Создать Instance Group с тремя ВМ и шаблоном LAMP. Для LAMP рекомендуется использовать
image_id = fd827b91d99psvq5fjit
. - Для создания стартовой веб-страницы рекомендуется использовать раздел
user_data
в meta_data. - Разместить в стартовой веб-странице шаблонной ВМ ссылку на картинку из бакета.
- Настроить проверку состояния ВМ.
- Подключить группу к сетевому балансировщику:
- Создать сетевой балансировщик.
- Проверить работоспособность, удалив одну или несколько ВМ.
- (дополнительно)* Создать Application Load Balancer с использованием Instance group и проверкой состояния.
Полезные документы:
-
Конфигурация Бакета
Полученная ссылка для скачивания - http://panarin-netology-bucket.storage.yandexcloud.net/netology.png
-
Конфигурация Instance Group
-
Конфигурация load-balancer
-
Проверка работоспособности при удалении одной машины
- Все созданные ресурсы
Terraform apply
terraform apply -auto-approve
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
Apply complete! Resources: 11 added, 0 changed, 0 destroyed.
Outputs:
bucket_domain_name = "http://panarin-netology-bucket.storage.yandexcloud.net/netology.png"
external_load_balancer_ip = "158.160.172.141"