Оновлення до цього посту, щоб використовувати Elastic Container Registry (ECR) від Amazon для запуску ваших власних образів на Elastic Beanstalk (ELB).
Додатки, які я зробив, дозволяють вам отримати доступ до образу ECR з вашого образу ELB і надають SSL для балансувальника навантаження ELB.
Elastic Container Registry (ECR)
Це досить простий код Terraform, який створює репозиторій AWS ECR. local.common_name
буде використано пізніше в цьому пості.
Dockerfile
Цей приклад будує застосунок на Golang, але ви можете робити все, що хочете.
Побудова і завантаження образу в ECR
Наступний код побудує і завантажить ваш Docker образ в ECR. Зверніть увагу, що потрібно замінити REGION
, ECR_URL
і ECR_NAME
на ваші власні значення.
Dockerrun.aws.json
Elastic Beanstalk традиційно працює з .zip файлом, який знаходиться в S3 бакеті. Однак він може просто працювати з файлом Dockerrun.aws.json
, що також знаходиться в S3. Цей файл вказує ELB, як завантажити і запустити ваш образ з ACR. Я буду управляти цим через Terraform. Тому ми почнемо з створення шаблону
і S3 бакету, а також об'єкта, що містить шаблонний файл.
Це дозволить замінити наше ECR URL у файлі Dockerrun.aws.json
і дозволить поширити будь-які зміни до нашого ECR URL в aws_s3_object
.
Дозволи
Ключ до цього всього посту в тому, щоб ваші контейнери могли отримати доступ до і завантажити Docker образ з ECR.
Застосунок Elastic Beanstalk
Це знайоме з посту Гастона. Спочатку ми створюємо застосунок ELB, версію, а потім середовище. Версія використовує файл з S3, який ми створили раніше. Дуже важливо, щоб на середовищі Elastic Beanstalk було вказано version_label
, інакше застосунок не буде знати, яку версію використовувати.
Route 53 і сертифікати
Це переспрямовує трафік з вашого домену на балансувальник навантаження ELB і також надає SSL сертифікат для шифрування запитів. Зверніть увагу, що сертифікат має бути створений в us-east-1
. Тому, якщо ваша інфраструктура знаходиться в іншому регіоні, вам знадобиться модуль для створення сертифікату.
Variables.tf
Цей пост припускає, що ви вже створили свій VPC та підмережі.
Вибачте за стислий виклад цього посту. Мені знадобилося певний час, щоб розібратися з наявною літературою, і я сподіваюся, що це допоможе і вам.
Перекладено з: Docker, ECR, Elastic Beanstalk, & Terraform