Автоматическое развертывание приложения на инстансе AWS EC2 с помощью GitHub Actions

Деплой приложения на инстанс AWS EC2 с помощью GitHub Actions: руководство по развертыванию настраиваемого рабочего процесса длиной 70 символов.

Деплой приложения на инстанс AWS EC2 с помощью GitHub Actions

Введение

GitHub Actions - это мощная платформа для автоматизации рабочих процессов разработки программного обеспечения. Она позволяет разработчикам создавать настраиваемые рабочие процессы, которые могут быть запущены в ответ на различные события, такие как пуши в репозиторий, теги и запросы на вытягивание.

В этом руководстве мы продемонстрируем, как использовать GitHub Actions для автоматического развертывания приложения на инстансе AWS EC2. Мы будем использовать базовый рабочий процесс, который выполняет следующие задачи:

  • Инициализация инстанса EC2
  • Настройка веб-сервера и базы данных
  • Установка зависимостей приложения
  • Деплой приложения

Предварительные условия

  • Учетная запись GitHub
  • Учетная запись AWS с доступом к EC2
  • Инстанс EC2 с корневым доступом

Настройка GitHub Actions

  1. Создайте новый репозиторий GitHub или перейдите в существующий репозиторий, в котором размещено ваше приложение.
  2. Перейдите в настройки репозитория и включите GitHub Actions.
  3. Создайте новый файл ".github/workflows/deploy.yml" в своем репозитории. Это будет файл рабочего процесса, который определяет действия, которые будут выполняться при развертывании.
  4. Добавьте следующий код в файл ".github/workflows/deploy.yml":
name: Deploy to EC2

on:
  push:
    branches: [ "main" ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - name: Initialize EC2 instance
        uses: aws-actions/ec2-start-stop@v1
        with:
          aws-region: 
          instance-id: 
          state: running
      - name: Install web server and database
        run: |
          # Установите веб-сервер (например, Apache или Nginx)
          sudo apt-get update
          sudo apt-get install apache2
          # Настройте базу данных (например, MySQL или PostgreSQL)
          sudo apt-get install mysql-server
      - name: Install application dependencies
        run: |
          # Установите зависимости приложения (например, npm или composer)
          cd /var/www/html
          npm install
      - name: Deploy application
        run: |
          # Скопируйте файлы приложения на инстанс
          scp -r . user@:/var/www/html
          # Перезапустите веб-сервер
          sudo service apache2 reload

Замените фактическим регионом AWS, в котором размещается ваш инстанс EC2, и фактическим идентификатором вашего инстанса EC2.

Настройка переменных окружения

GitHub Actions использует переменные окружения для передачи параметров в рабочие процессы. Вам необходимо создать следующие секреты в репозитории:

  • AWS_REGION: Регион AWS, в котором размещается ваш инстанс EC2.
  • INSTANCE_ID: Идентификатор вашего инстанса EC2.
  • INSTANCE_PUBLIC_IP: Общедоступный IP-адрес вашего инстанса EC2.

Использование рабочего процесса

Чтобы запустить рабочий процесс, просто отправьте изменения в свою ветку main. GitHub Actions автоматически обнаружит изменения и запустит рабочий процесс.

Настройка веб-сервера и базы данных вручную

Если вы хотите настроить веб-сервер и базу данных вручную, вы можете удалить шаги установки из файла рабочего процесса. GitHub Actions предоставляет другие действия, которые можно использовать для управления EC2-инстансами, такими как:

  • aws-actions/ec2-start-stop для запуска, остановки и проверки состояния инстансов EC2.
  • aws-actions/ec2-ssh для выполнения команд на удаленных инстансах EC2.

Заключение

GitHub Actions - это мощный инструмент для автоматизации развертывания приложений. Использование GitHub Actions для развертывания на инстансах EC2 может сэкономить много времени и усилий, обеспечивая при этом надежный и последовательный процесс развертывания.

To leave a comment you need to Login / Create account