Автоматизация развертывания кода с помощью AWS CodeCommit и CodeDeploy

Опубликовано: 2022-03-25

Automate Code Deployment with AWS CodeCommit & CodeDeploy

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

При использовании FTP вы, должно быть, перезаписали код вашего соразработчика, что довольно часто встречается у большинства из нас. Это руководство покажет вам автоматизацию развертывания кода с помощью сервисов AWS CodeCommit, CodeDeploy и Pipeline.

Технологический обзор:

  1. AWS CodeCommit : мы будем использовать CodeCommit для поддержки наших репозиториев (файлов веб-контента/кода), в которых будут храниться все файлы проекта и журналы коммитов.
  2. Сервер EC2 : мы будем использовать EC2 в качестве нашего производственного сервера, он будет содержать рабочий сайт и код для посетителей вашего сайта.
  3. AWS CodeDeploy : он будет содержать приложение для публикации вашего кода на сервере EC2. Мы также создадим группу развертывания, которая будет содержать имя/тег целевого экземпляра EC2, в котором мы хотим опубликовать наш код.
  4. Pipeline : мы выберем CodeCommit в качестве источника и CodeDeploy в качестве этапа развертывания. Таким образом, всякий раз, когда в CodeCommit обнаруживаются какие-либо изменения кода, конвейер запускается и передает эти изменения кода в CodeDeploy (экземпляр EC2).

Автоматизация развертывания кода: подробное объяснение :

Ищете ЭКСПЕРТОВ AWS? ЗАКАЗАТЬ ЗДЕСЬ

Создание пользователя IAM и Git для автоматизации развертывания кода

Сначала нам нужно создать пользователя IAM и пользователя Git, которые будут вносить изменения в код и публиковать их на сервере развертывания.

  1. Создать пользователя IAM
    1. Разрешить доступ к : AWSCodeCommitFullAccess, AWSCodeDeployFullAccess, AWSCodeCommitPowerUser. Вы найдете эту опцию на вкладке «Прикрепить существующие политики напрямую».
  2. Теперь войдите в систему с этим пользователем IAM.
  3. Нажмите « Учетные данные безопасности » в правом верхнем углу.
  4. Щелкните вкладку учетных данных AWS CodeCommit .
  5. В разделе «Учетные данные HTTPS Git для AWS CodeCommit» нажмите кнопку « Создать учетные данные» .
  6. Теперь скопируйте это имя пользователя и пароль в безопасное место. Это будет ваше основное имя пользователя и пароль Git для отправки/получения изменений кода.

Создание репозитория в CodeCommit

Теперь давайте создадим репозиторий, в котором будет храниться именно ваш код.

  1. Перейдите на панель управления CodeCommit от пользователя IAM.
  2. В правом верхнем углу выберите регион, в котором вы хотите создать репозиторий.
  3. Нажмите «Создать репозиторий», дайте ему имя, описание и нажмите «Создать».
  4. В разделе « Клонировать репозиторий » вы увидите URL-адрес вашего репозитория. Сохраните его в надежном месте. Это будет выглядеть так: https://git-codecommit.ap-south-1.amazonaws.com/v1/repos/HarryTest

Creating a Repository in CodeCommit

Ищете ЭКСПЕРТОВ AWS? ЗАКАЗАТЬ ЗДЕСЬ

Загрузка файла проекта в первый раз

  1. Откройте командную строку вашей локальной системы, где находится исходный код.
  2. В командной строке перейдите к пути, где находится ваш код.
  3. Теперь выполните следующие команды, чтобы впервые отправить свой код в репозиторий AWS:

git инициировать
git config –local init.defaultBranch основной
git config –global init.defaultBranch main
git добавить . ## это зафиксирует все файлы проекта
git commit –m «Первоначальная фиксация»
git push https://git-codecommit.ap-south-1.amazonaws.com/v1/repos/HarryTest – все

Uploading your project file for the first time

  • Создайте экземпляр EC2 и установите агент CodeDeploy
  1. Создать роль экземпляра
    1. Откройте консоль AWS IAM.
    2. Перейдите на вкладку Роли >> Создать роль.
    3. В разделе Выберите тип доверенного лица выберите Сервис AWS . В разделе «Выберите вариант использования» выберите EC2 . В разделе «Выберите вариант использования» выберите EC2. Выберите Далее: Разрешения .
    4. Найдите и выберите политику с именем AmazonEC2RoleforAWSCodeDeploy , а затем выберите Далее: Теги .
    5. Выберите Далее: Обзор. Введите имя роли (например, EC2InstanceRole ) и нажмите « Создать » .
  2. Создайте экземпляр EC2
    1. Перейдите в консоль EC2. Нажмите «Запустить экземпляр».
    2. Выберите образ машины Amazon (AMI), найдите Amazon Linux 2 AMI (HVM), тип тома SSD и нажмите «Выбрать». (Этот образ AMI помечен как «Подходящий для уровня бесплатного пользования» и находится в верхней части списка.)
    3. Выберите страницу «Тип экземпляра», выберите тип t2.micro, соответствующий уровню бесплатного пользования, в качестве аппаратной конфигурации для вашего экземпляра, а затем нажмите « Далее: настроить сведения об экземпляре» .
    4. На странице «Сведения об экземпляре» выполните следующие действия:
      1. В поле Количество экземпляров введите 1 .
      2. В разделе «Автоматическое назначение общедоступного IP-адреса» выберите «Включить » .
      3. В роли IAM выберите роль IAM, созданную в предыдущей процедуре (например, EC2InstanceRole ).
      4. Разверните Дополнительные сведения и в поле Данные пользователя введите следующее:

#!/бин/баш
ням -у обновление
ням установить -y рубин
yum установить -y aws-cli
cd /home/ec2-пользователь
wget https://aws-codedeploy-us-east-2.s3.us-east-2.amazonaws.com/latest/install
chmod +x ./установить
./установить авто

  1. Оставьте остальные элементы на странице «Шаг 3. Настройка сведений об экземпляре» без изменений. Выберите Далее: Добавить хранилище .
  2. Оставьте страницу Шаг 4: Добавить хранилище без изменений, а затем выберите Далее: Добавить теги.
  3. Выберите « Добавить тег» . В поле Key введите Name , а в поле Value введите MyCodePipelineDemo . Выберите «Далее: настроить группу безопасности». Позже вы создадите приложение CodeDeploy, которое развертывает образец приложения в этом экземпляре. CodeDeploy выбирает экземпляры для развертывания на основе тегов, прикрепленных к экземплярам.
  4. На странице «Настройка группы безопасности» выполните следующие действия:
      • Рядом с Назначить группу безопасности выберите Создать новую группу безопасности .
      • В строке SSH в разделе Источник выберите Мой IP .
      • Выберите « Добавить правило» , выберите « HTTP », а затем в разделе « Источник » выберите «Мой IP -адрес».
  5. Выберите «Просмотреть и запустить».
  6. На странице «Просмотр запуска экземпляра» выберите «Запуск». При запросе пары ключей выберите « Продолжить без пары ключей» .
  7. Выберите View Instances , чтобы закрыть страницу подтверждения и вернуться в консоль.
  8. Статус запуска можно посмотреть на странице Экземпляры . Когда вы запускаете экземпляр, его начальное состояние — «ожидание». После запуска экземпляра его состояние меняется на «работает», и он получает общедоступное DNS-имя. (Если столбец « Общедоступный DNS » не отображается, выберите значок «Показать/скрыть » , а затем выберите « Общедоступный DNS » .)
  9. Подготовка экземпляра к подключению может занять несколько минут. Просмотрите информацию в столбце « Проверки состояния », чтобы узнать, прошел ли ваш экземпляр проверки состояния.

Create an EC2 Instance

Ищете ЭКСПЕРТОВ AWS? ЗАКАЗАТЬ ЗДЕСЬ

Создайте приложение в CodeDeploy

  • Создание роли службы CodeDeploy
    • Откройте консоль IAM по адресу https://console.aws.amazon.com/iam/.
    • На панели управления консоли выберите Роли .
    • Выберите Создать роль .
    • В разделе Выберите тип доверенного лица выберите Сервис AWS . В разделе Выберите вариант использования выберите CodeDeploy . В разделе Выберите вариант использования выберите CodeDeploy. Выберите Далее: Разрешения. Управляемая политика AWSCodeDeployRole уже привязана к роли.
    • Выберите «Далее: Теги» и «Далее: Обзор».
    • Введите имя роли (например, CodeDeployRole), а затем выберите Создать роль.
  • Создайте приложение в CodeDeploy
    • Откройте консоль CodeDeploy по адресу https://console.aws.amazon.com/codedeploy.
    • Если страница Приложения не отображается, в меню выберите Приложения .
    • Выберите Создать приложение .
    • В имени приложения введите MyDemoApplication .
    • В Compute Platform выберите EC2/On-premises .
    • Выберите Создать приложение.

    Create an application in CodeDeploy

  • Создайте группу развертывания в CodeDeploy.
    • На странице, отображающей ваше приложение, выберите Создать группу развертывания .
    • В поле Имя группы развертывания введите MyDemoDeploymentGroup .
    • In-Service Role выберите созданную ранее роль службы (например, CodeDeployRole ).
    • В разделе Тип развертывания выберите На месте .
    • В разделе «Конфигурация среды » выберите «Инстансы Amazon EC2 ». В поле Ключ введите Имя . В поле «Значение» введите имя, которое вы использовали для тега экземпляра (например, MyCodePipelineDemo ).
    • В разделе Конфигурация развертывания выберите CodeDeployDefault.OneAtaTime .
    • В разделе «Балансировка нагрузки» убедитесь, что флажок «Включить балансировку нагрузки» не выбран . Для этого примера вам не нужно настраивать балансировщик нагрузки или выбирать целевую группу.
    • Разверните раздел «Дополнительно». В разделе «Тревоги», если в списке есть какие-либо тревоги, выберите «Игнорировать конфигурацию тревог».
    • Выберите Создать группу развертывания.

Create a deployment group in CodeDeploy

Ищете ЭКСПЕРТОВ AWS? ЗАКАЗАТЬ ЗДЕСЬ

Создать конвейер

    • Создать конвейер
    • Войдите в Консоль управления AWS и откройте консоль CodePipeline по адресу http://console.aws.amazon.com/codesuite/codepipeline/home.
    • Откройте консоль CodePipeline по адресу https://console.aws.amazon.com/codepipeline/.
    • Выберите Создать конвейер .
    • На шаге 1 : выберите параметры конвейера в поле имени конвейера введите MyFirstPipeline .
    • В роли службы выберите новую роль службы, чтобы позволить CodePipeline создать роль службы в IAM.
    • Оставьте параметры в разделе «Дополнительные параметры» по умолчанию, а затем нажмите «Далее».
    • На шаге 2 : добавьте этап исходного кода в поставщике исходного кода выберите CodeCommit .
      В поле Имя репозитория выберите имя репозитория CodeCommit, созданного на шаге 1: Создайте репозиторий CodeCommit. В поле Имя ветки выберите основной, а затем выберите Следующий шаг.
    • После выбора имени репозитория и ветви в сообщении отображается правило Amazon CloudWatch Events, которое необходимо создать для этого конвейера.
    • В параметрах «Обнаружение изменений» оставьте значения по умолчанию. Это позволяет CodePipeline использовать события Amazon CloudWatch для обнаружения изменений в исходном репозитории.
    • Выберите Далее .
    • На шаге 3 : Добавить стадию сборки выберите Пропустить стадию сборки , а затем примите предупреждающее сообщение, снова выбрав Пропустить . Выберите Далее .

    Примечание . В этом руководстве вы развертываете код, для которого требуется служба без сборки, поэтому этот шаг можно пропустить. Однако, если ваш исходный код необходимо собрать перед его развертыванием в экземплярах, вы можете настроить CodeBuild на этом шаге.

    • На шаге 4 : добавьте этап развертывания в поставщике развертывания выберите CodeDeploy .
      В имени приложения выберите MyDemoApplication . В группе Развертывание выберите MyDemoDeploymentGroup , а затем выберите Следующий шаг .
    • На шаге 5 : просмотрите информацию, а затем выберите « Создать конвейер » .
    • Конвейер начинает работать после его создания. Он загружает код из вашего репозитория CodeCommit и создает развертывание CodeDeploy в вашем экземпляре EC2. Вы можете просматривать сообщения о ходе выполнения, «успехе» и «сбое», когда пример CodePipeline развертывает веб-страницу в инстансе Amazon EC2 в развертывании CodeDeploy.

Create a Pipeline

Теперь все готово! Перейдите в Развертывание Развертывания. Вы увидите журналы всех успешных и неудачных развертываний.

Чтобы проверить изменения на сайте, откройте свой инстанс EC2, найдите общедоступный DNS, который будет выглядеть так: http://ec2-3-108-40-48.ap-south-1.compute.amazonaws.com .

Как только вы просмотрите его, вы увидите свои живые страницы.

Create an Option Group

Вы успешно завершили автоматизацию развертывания кода. Теперь вы можете отправлять новые изменения кода в свой репозиторий и автоматически публиковать их на своем сайте. Если вы все еще сталкиваетесь с какими-либо проблемами, не стесняйтесь комментировать здесь.

Ищете ЭКСПЕРТОВ AWS? ЗАКАЗАТЬ ЗДЕСЬ