Посібник: Розгортання контейнера на AWS Elastic Beanstalk

pic

Я б сказав, що успішне розгортання Docker контейнера в Elastic Beanstalk — це перший крок до чудового майбутнього з Amazon Web Services. Elastic Beanstalk абстрагує деталі масштабування, балансування навантаження та надання ресурсів від розробника, щоб ми могли зосередитись на написанні чистого коду. Базовий код для цієї статті буде таким самим, як для серії статей Guid to Deploying K8S on AWS. Замість розгортання кількох контейнерів, ми будемо розгортати лише образ клієнта.

[

kirtfieldk/BC_API

В цьому API користувач зможе додавати, видаляти, оновлювати та отримувати заявки стажерів, які подають заявки…

github.com

](https://github.com/kirtfieldk/BCAPI?source=postpage-----f586f02c5de5--------------------------------)

Щоб цей підручник працював гладко, необхідно виконати такі передумови.

Ми працюватимемо в директорії /bc_api/client/. Загалом, всі команди eb повинні виконуватись у директорії, де знаходиться Dockerfile. Усередині цієї директорії виконайте команду

eb init -p docker — region

щоб створити інстанс Elastic Beanstalk з платформою docker. Це створить папку ./elasticbeanstalk, яка налаштовує наш інстанс. Для зміни платформи виконайте команду

eb platform select

це буде потрібно, якщо виникне помилка щодо неправильного платформи. Це має більше шансів на виникнення, якщо замість цього буде виконано команду

eb init

і налаштовано на значення за умовчанням. Щоб протестувати це локально, виконайте команду

eb local run — port

щоб побудувати та одразу запустити UI на порту client_port. Це значно швидше, щоб перевірити, чи контейнер працює локально, ніж чекати довго на розгортання контейнера. Якщо екземпляр eb local запускається, ми можемо почати розгортати його на Elastic Beanstalk. Команда

eb create

щоб назвати нове середовище (як гілка) або виконайте

eb create

щоб пройти через запитання налаштування. Ця команда створить низку сервісів, необхідних для підтримки нашого додатку.

pic

eb create

Цей вивід показує, що наш Elastic Beanstalk створив групу безпеки, балансувальник навантаження та налаштування автоскейлінгу для запуску, і буде створено ще кілька сервісів.

Після завершення налаштування, команда

eb open

відкриє наш стандартний браузер на користувацький кінцевий AWS ендпоінт для відображення додатку.

pic

Успішне розгортання

Як бачимо — успіх!!

Основні команди

eb list

показує всі наші імена середовищ, схоже на git branch -a.

eb use

перемикає між середовищами, схоже на git checkout .

eb status

показує стан здоров'я та деталі інстансу Elastic Beanstalk.

Підводні камені

Щоб eb працював коректно, наша директорія повинна містити хоча б Dockerfile або Dockerrun.aws.json у кореневій директорії. Це не включає dockerfile. Хоча ці два імені файлів відрізняються великою літерою D, наше розгортання не відбудеться.

AWS Elastic Beanstalk не підтримує багатоступеневі побудови Docker образів. Тому dockerfiles, як той, що нижче, не працюватимуть.

pic

клієнтський dockerfile

Це тому, що eb намагатиметься завантажити образи as та builder, які не є образами. Тому eb отримає помилки cannot find image. Щоб виправити цю сумну проблему, нам просто потрібно змінити наш dockerfile на наступний.

pic

У цьому новому dockerfile перший етап просто позначений його індексом, 0.
Етап перший більше не має псевдоніму, і ми використовуємо команду COPY --from=0.

Приємно бачити, що AWS не ускладнює розгортання одиночних контейнерів; натомість це веселий процес.

Перекладено з: Guide: Deploying Container on AWS Elastic BeanStalk

Leave a Reply

Your email address will not be published. Required fields are marked *