Розгортання гри 2048 за допомогою Docker та AWS Elastic Beanstalk

pic

Посилання: Jabir Ahammed

У цьому посібнику ми розглянемо, як розгорнути популярну гру з числами 2048 за допомогою контейнеризації через “Docker” і “AWS Elastic Beanstalk”. Посібник буде поділений на дві частини:

  1. Контейнеризація додатку та розгортання за допомогою Docker.
  2. Розгортання за допомогою AWS Elastic Beanstalk.

Репозиторій на GitHub для проєкту, що буде розгорнуто, 2048 Game, можна знайти за посиланням нижче.

[

GitHub - jabir000/2048

Сприяйте розвитку jabir000/2048, створивши акаунт на GitHub.

github.com

](https://github.com/jabir000/2048?source=post_page-----3a79d6738916--------------------------------)

Контейнеризація веб-додатку 2048 за допомогою Docker.

Тут я використовую EC2 Instance, вже створений на AWS, як мою хост-машину. Якщо ви не знайомі з EC2 Instances, можете ознайомитись з моєю статтею тут щодо того, як створити EC2 інстанс та підключитись до нього. Після створення EC2 інстанса на AWS я увійшов у віртуальну машину за допомогою інструмента SSH “PuTTy”

pic

Успішний вхід у EC2 інстанс.

Тепер переходимо до контейнеризації додатку за допомогою Docker на працюючому EC2 інстансі.

  1. Спочатку встановіть Docker і Docker runtime на EC2 інстанс.

P.S: Встановлення Docker виходить за межі цієї статті, але ви можете знайти детальну інструкцію тут.

Після встановлення Docker, запустіть наступну команду, щоб переконатися, що Docker працює успішно на вашому EC2 інстансі. Ви повинні отримати повідомлення, подібне до того, що на зображенні нижче, де буде зазначено, що Docker “активний (працює)”.

sudo systemctl status docker

pic

  1. Тепер створіть файл у папці під назвою “2048". Цей файл буде використовуватися як Dockerfile, в якому знаходяться команди для створення Docker образу.
mkdir 2048  
cd 2048  
nano Dockerfile
  1. Команда “nano” створить Dockerfile і відкриє його одночасно. Далі введіть наступний скрипт у Dockerfile.
FROM ubuntu:22.04  
RUN apt-get update  
RUN apt-get install -y nginx zip curl  
RUN echo "daemon off;">>/etc/nginx/nginx.conf  
RUN curl -o /var/www/html/master.zip -L https://codeload.github.com/jabir000/2048/zip/master  
RUN cd /var/www/html/ && unzip master.zip && mv 2048-master/* . && rm -rf 2048-master master.zip  
EXPOSE 80  
CMD ["/usr/sbin/nginx", "-c", "/etc/nginx/nginx.conf"]
  1. Збережіть і вийдіть з файлу

  2. Тепер побудуємо наш Docker образ, виконавши наступну команду

docker build -t "docker image name" .

pic

Успішне створення Docker образу

  1. Перевірте, чи Docker образ успішно побудовано
sudo docker images

pic

  1. Тепер ми запустимо контейнер із цього Docker образу на порту 80.
docker run -d -p 80:80 "container id"

pic

8.
Перевірте, чи ваш контейнер був успішно створений.

docker ps

Якщо контейнер було створено успішно, ви побачите щось подібне.

pic

Перейдіть до доступу до вашого додатку за адресою http://:80

pic

Ми успішно розгорнули гру 2048 за допомогою контейнеризації через Docker.

Розгортання гри 2048 за допомогою AWS Elastic Beanstalk

AWS Elastic Beanstalk — це один з багатьох повністю керованих сервісів у хмарі AWS, який допомагає легко розгортати та масштабувати веб-додатки та сервіси, розроблені за допомогою Python, Ruby, Go, Java, PHP, .NET та Node.js. Завдяки AWS Elastic Beanstalk, розробники можуть швидко розгорнути та керувати додатками в хмарі AWS, не турбуючись про інфраструктуру, на якій буде розгорнуто додаток.

AWS Elastic Beanstalk пропонує багато переваг для розробників щодо швидкого розгортання та зручності керування. Серед них:

  • Автоматичне розгортання.
  • Автоматичне масштабування.
  • Автоматичне та детальне надання потужностей.
  • Моніторинг здоров’я веб-додатку.
  • Автоматичне балансування навантаження.

Для додаткової інформації та навчання ви можете ознайомитись з офіційною документацією тут.

У цій частині ми розгорнемо гру 2048 за допомогою AWS Elastic Beanstalk.

Нагадаємо, що ми вже розгортали той самий веб-додаток за допомогою Docker в першій частині цього посібника. Це працюючий React додаток.

Крок 1: Налаштування середовища.

  1. Перейдіть до вашої AWS Management Console та шукайте Elastic Beanstalk у меню сервісів. Потім натисніть кнопку Create Application на головній сторінці сервісу AWS Elastic Beanstalk.

pic

Сервіс Elastic Beanstalk

pic

  1. Виберіть Web server environment як тип середовища і відповідно надайте ім’я вашому додатку. З ім’ям додатку заповниться і ім’я середовища, після чого ви можете додати опис середовища.

pic

pic

  1. Перейдіть до налаштування платформи як “Managed Platform” та типу платформи “Docker”, потім виберіть рекомендовану версію Docker.

pic

  1. Переміщуємось до розділу з кодом додатку. Використовуючи ваш VS Code, відтворіть Docker файл, що використовувався в першій частині, на вашому локальному ПК. Після цього він буде завантажений як код додатку.

Виберіть опцію Upload your code і додайте мітку версії для кожного розгортання, яке ви робите в AWS Elastic Beanstalk.

pic

  1. Виберіть “Single Instance (Free Tier Eligible)” як налаштування конфігурації.

Крок 2: Налаштування доступу до сервісу.

  1. Виберіть “Use an existing service role”, а потім створіть профіль EC2 Instance в консолі IAM з необхідними дозволами для AWS Elastic Beanstalk, як зазначено нижче.

a. AWSElasticBeanstalkWebTier

b. AWSElasticBeanstalkWorkerTier

c.
AWSElasticBeanstalkMulticontainerDocker

У цьому випадку я створив профіль EC2 Instance з ім'ям “aws-elasticbeanstalk-ec2-role”

pic

Крок 3: Налаштування мережі, баз даних та тегів.

P.S. Не використовуйте стандартний VPC, тому переконайтесь, що ви створили власний кастомний VPC з необхідними вхідними правилами в групі безпеки, що дозволяють HTTP/HTTPS трафік.

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

pic

Залиште всі інші опції за замовчуванням, потім натискайте Skip to review.

Крок 4: Огляд ваших налаштувань

pic

Перегляньте налаштування, а потім натисніть Submit.

Крок 5: Моніторинг процесу створення середовища

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

pic

Якщо середовище було успішно створено, завантажте домен для доступу до веб-додатку.

pic

Гру 2048 було успішно розгорнуто за допомогою AWS Elastic Beanstalk.

Дякуємо за читання!

Простою мовою

Дякуємо, що ви стали частиною нашої спільноти! Перед тим, як піти:

Перекладено з: Deployment of the 2048 Game using Docker and AWS Elastic Beanstalk

Leave a Reply

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