{Elastic BeansTalk}Elastic Beanstalk を使用したブルー/グリーンデプロイ

 

https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html

https://dev.classmethod.jp/articles/beanstalk-cname-swap/

https://qiita.com/toshihirock/items/af1b71c9e218a973943b


-- 1. コマンド等のインストール

-- 1.1 aws cli version 2 インストール

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

aws --version

-- 1.2 jqインストール
sudo yum -y install jq


-- 1.3 gitインストール
sudo yum -y install git

 

-- 2. EB CLIインストール

python3 --version
curl -O https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py --user

pip3 --version
pip3 install awsebcli --upgrade --user


eb --version

pip3 install awsebcli --upgrade --user

 

-- 3. アプリケーションを作成

mkdir ebapp
cd ebapp

git init

git config --local user.name hoge
git config --local user.email hoge@example.com


eb init

PHPアプリケーションを新規作成

git branch

-- 4. 最初のEnvironmentの作成

eb create

eb list


-- 5. アプリケーションを修正

vi index.php

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <?php echo '<p>Hello World!</p>'; ?> 
 </body>
</html> 

 


git add index.php
git commit -m "1st commit"


-- 6. アプリケーションをデプロイ


eb deploy
eb status --verbose


-- 7. 新バージョンのEnvironmentの作成

eb create

eb list
eb use ebapp-dev2
eb list


-- 8. アプリケーションを修正

vi index.php

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <?php echo '<p>Hello World!!</p>'; ?> 
 </body>
</html>


git add index.php
git commit -m "2nd commit"


-- 9. アプリケーションをデプロイ


eb deploy ebapp-dev2
 
eb status ebapp-dev2 --verbose

 

-- 10. ブルー/グリーンデプロイ

eb list

eb swap

 


-- 11. クリーンアップ

-- アプリケーションを終了する

eb terminate --all
eb list

 


-- バケットポリシーの削除

aws s3api delete-bucket-policy \
--bucket elasticbeanstalk-ap-northeast-1-999999999999

-- バケット削除
aws s3 ls

aws s3 rb s3://elasticbeanstalk-ap-northeast-1-999999999999 --force


-- CodeCommitの削除

aws codecommit list-repositories

aws codecommit delete-repository \
--repository-name ebapp