Створено репозиторій в Amazon ECR через AWS Management Console.
Створено користувача IAM та прикріплено політики з повними правами доступу до ECR (бо можу).
Створено ключі доступу для користувача IAM у AWS Management Console.
Налаштовано AWS CLI з використанням облікових даних користувача IAM за допомогою команди
aws configure
Завантажено Docker зображення командою з https://gallery.ecr.aws.
docker pull nginx:latest
Автентифіковано Docker до AWS ECR за допомогою команди:
aws ecr get-login-password --region [регіон] | docker login --username AWS --password-stdin [номер-облікового-запису].dkr.ecr.[регіон].amazonaws.com
Присвоєно тег Docker зображенню для ECR за допомогою команди:
docker tag nginx:latest [номер-облікового-запису].dkr.ecr.[регіон].amazonaws.com/my-repository:my-tag
Завантажено теговане зображення до ECR за допомогою команди:
docker push [номер-облікового-запису].dkr.ecr.[регіон].amazonaws.com/my-repository:my-tag
Створено ECS кластер через AWS Management Console, вибравши необхідний тип запуску задач.
У ECS створено новий Task Definition, де обрано Docker зображення з нашого ECR репозиторію та налаштовано перевірку здоров'я контейнера:
{
"portMappings": [
{
"containerPort": 80,
"hostPort": 80
}
],
"healthCheck": {
"command": [
"CMD-SHELL",
"curl -f http://localhost/ || exit 1"
],
"interval": 30,
"timeout": 5,
"retries": 3,
"startPeriod": 0
}
]
}
Створено нову target group у EC2 Management Console, вибравши протокол HTTP і вказавши порт 80. Для типу цілей вибрано "ip", а не "instance".
У EC2 Management Console створено Application Load Balancer, який використовує раніше створену target group. Load balancer налаштовано на прийом вхідного трафіку HTTP на порт 80.
У ECS cluster створено новий service, вибравши task definition, Application Load Balancer, і target group. Вказано кількість бажаних реплік задачі. Service автоматично розпочне моніторинг здоров'я контейнерів і управління доступом до них через DNS ім'я Application Load Balancer.