【AWS CodeDeploy】AWSの基礎を学ぼう 第六十回
宿題未提出が溜まっている!!
概要
「AWS エバンジェリストシリーズ AWSの基礎を学ぼう」で”AWS CodeDeployのおさらい”のイベントに参加した感想ページです。
「AWS エバンジェリストシリーズ AWSの基礎を学ぼう」とは
以下、Connpassページより引用
Amazon Web Services (AWS)は現在200を超えるサービスを提供し、日々サービスの拡充を続けています。
このAWS エバンジェリスト シリーズでは週次でAWSのサービスをひとつづつ取り上げながらその基礎を説明していく 初心者、中級者をターゲットとした講座です。午後の仕事前にスキルアップを一緒にしませんか?
毎週ありがとうございます!
整理
CodeDeploy?
AWS CodeBuild は、クラウド内の完全マネージド型の継続的統合サービスです。CodeBuild では、ソースコードのコンパイル、テストの実行、デプロイ可能なパッケージの生成を行えます。CodeBuild では自分のビルドサーバーをプロビジョニング、管理、スケールする必要がありません。CodeBuild が自動的にスケールし複数のビルドを同時に処理するため、ビルドはキューで待機する必要がありません。CodeBuild のパッケージ済みのビルド環境を使用するか、ご自分のビルドツールを使用するカスタムビルド環境を作成することによりすぐに開始できます。CodeBuild の課金は、分単位です。
コンピューティングプラットフォーム
コンピューティングプラットフォームとしては
- EC2/オンプレミス
- AWS Lambda
- Amazon ECS
が用意されています。
EC2で試す
構成図
EC2起動時のUserData
やりたいのは、httpdとcodedeploy-agentを入れる事
#!/bin/bash
sudo yum update -y
sudo yum install -y httpd
sudo systemctl start httpd
sudo echo `hostname`+ver.1 > /var/www/html/index.html
sudo yum install -y ruby
sudo yum install -y wget
cd /home/ec2-user
wget https://aws-codedeploy-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto
sudo service codedeploy-agent status
CurlでALB経由とEC2直接でアクセスする
実行cmd
while true
do
echo #########################
date
echo ### ALB ###
curl CodeDeploy-589250730.ap-northeast-1.elb.amazonaws.com;
echo ### IP143 ###
curl ec2-13-231-158-143.ap-northeast-1.compute.amazonaws.com;
echo ### IP162 ###
curl ec2-54-178-36-162.ap-northeast-1.compute.amazonaws.com;
echo ### IP74 ###
curl ec2-52-196-3-74.ap-northeast-1.compute.amazonaws.com;
echo ### IP243 ###
curl ec2-13-115-218-243.ap-northeast-1.compute.amazonaws.com;
sleep 5
done
実行結果
ALB、お呼びEC2にアクセスできることを確認
#########################
2021年 10月16日 土曜日 22時06分33秒 JST
### ALB ###
<h1>Ver1</h1>
### IP143 ###
<h1>Ver1</h1>
### IP162 ###
<h1>Ver1</h1>
### IP74 ###
<h1>Ver1</h1>
### IP243 ###
<h1>Ver1</h1>
デプロイを実施1
デプロイタイプ
インプレース
デプロイ設定
CodeDeployDefault.AllAtOnce
結果
流れとしては
- ALBのターゲットが外れる
- EC2が入れ替わる
- ALBが再接続される
#########################
2021年 10月17日 日曜日 00時32分43秒 JST
### ALB ###
<h1>Ver1</h1>
### IP143 ###
<h1>Ver1</h1>
### IP162 ###
<h1>Ver1</h1>
### IP74 ###
<h1>Ver1</h1>
### IP243 ###
<h1>Ver1</h1>
#########################
2021年 10月17日 日曜日 00時32分48秒 JST
### ALB ###
<html>
<head><title>503 Service Temporarily Unavailable</title></head>
<body>
<center><h1>503 Service Temporarily Unavailable</h1></center>
</body>
</html>
### IP143 ###
<h1>Ver1</h1>
### IP162 ###
<h1>Ver1</h1>
### IP74 ###
<h1>Ver1</h1>
### IP243 ###
<h1>Ver1</h1>
#########################
2021年 10月17日 日曜日 00時32分53秒 JST
### ALB ###
<html>
<head><title>503 Service Temporarily Unavailable</title></head>
<body>
<center><h1>503 Service Temporarily Unavailable</h1></center>
</body>
</html>
### IP143 ###
<h1>Ver2!!</h1>
### IP162 ###
<h1>Ver2!!</h1>
### IP74 ###
<h1>Ver2!!</h1>
### IP243 ###
<h1>Ver2!!</h1>
#########################
2021年 10月17日 日曜日 00時33分04秒 JST
### ALB ###
<h1>Ver2!!</h1>
### IP143 ###
<h1>Ver2!!</h1>
### IP162 ###
<h1>Ver2!!</h1>
### IP74 ###
<h1>Ver2!!</h1>
### IP243 ###
<h1>Ver2!!</h1>
デプロイを実施2
デプロイタイプ
インプレース
デプロイ設定
CodeDeployDefault.HalfAtOnce
結果
流れとしては
- ALBが旧Verに流れている間で、半分のインスタンスがデプロイされる
- ALBが新Verに流れている間で、残り半分のインスタンスがデプロイされる。
- ALBが全インスタンスのターゲットになる。
#########################
2021年 10月17日 日曜日 00時51分29秒 JST
### ALB ###
<h1>Ver3!!!</h1>
### IP143 ###
<h1>Ver3!!!</h1>
### IP162 ###
<h1>Ver3!!!</h1>
### IP74 ###
<h1>Ver3!!!</h1>
### IP243 ###
<h1>Ver3!!!</h1>
#########################
2021年 10月17日 日曜日 00時51分35秒 JST
### ALB ###
<h1>Ver3!!!</h1>
### IP143 ###
<h1>Ver4!!!</h1>
### IP162 ###
<h1>Ver3!!!</h1>
### IP74 ###
<h1>Ver4!!!</h1>
### IP243 ###
<h1>Ver3!!!</h1>
(略)
#########################
2021年 10月17日 日曜日 00時52分35秒 JST
### ALB ###
<h1>Ver4!!!</h1>
### IP143 ###
<h1>Ver4!!!</h1>
### IP162 ###
<h1>Ver3!!!</h1>
### IP74 ###
<h1>Ver4!!!</h1>
### IP243 ###
<h1>Ver3!!!</h1>
(略)
#########################
2021年 10月17日 日曜日 00時53分37秒 JST
### ALB ###
<h1>Ver4!!!</h1>
### IP143 ###
<h1>Ver4!!!</h1>
### IP162 ###
<h1>Ver3!!!</h1>
### IP74 ###
<h1>Ver4!!!</h1>
### IP243 ###
<h1>Ver4!!!</h1>
デプロイを実施3
デプロイタイプ
Blue/Green
デプロイ設定
CodeDeployDefault.AllAtOnce
結果
エラー中。
AutoScalingをせずにEC2を4台構成のままで、Blue/Greenがちゃんと理解できてないかも。
Discussion