AWS

AWS CodeDeploy Blue/Greenデプロイ

 

注意

  • ソースの更新は必ずGitやS3から行う
    直接EC2にファイルを追加してはいけない
    デプロイでこける
  • 最初のデプロイはin-place
  • 2回目以降は「Blue-Green」+ 「AllAtOnce」

 

 

ロードバランサ

  • ALBを用意しておく
    本番用と確認用の2つが必要
  • ターゲットグループの作成
    ・本番用ターゲット Honban-Target
    スティキーセッションの「維持」設定40分 ●重要
    ・確認用ターゲット Kakunin-Target

 

EC2をセットアップする

  • ミドルウェアの構成完了
  • ヘルスチェックファイルの設置
  • ALBに設置してみて動作を見る
  • AMIを作成
    →EC2を削除する

 

appspec.ymlをプロジェクトのルートに設置する

appspec.yml

version: 0.0
os: linux
files:
  - source: /
    destination: /var/www/

 

# vi /etc/httpd/conf.d/asg.example.net.conf


<VirtualHost *:80>
  ServerName   asg.example.net
  DocumentRoot /var/www/httpdocs
  Timeout 120
  KeepAlive On
  KeepAliveTimeout 120
  MaxKeepAliveRequests 100
  LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"" combined
</VirtualHost>

 

# vi /var/www/httpdocs/index.php

<?php

echo "v0";
echo "<hr/>";
echo gethostname();

 

# vi /var/www/httpdocs/healthcheck.html

ok

 

systemctl restart httpd
systemctl enable httpd

 

EC2にCodeDeploy Agentをインストール

$ sudo yum install ruby
$ sudo yum install wget

$ aws s3 cp s3://aws-codedeploy-ap-northeast-1/latest/install . --region ap-northeast-1
$ chmod +x ./install
$ sudo ./install auto


$ sudo service codedeploy-agent status
The AWS CodeDeploy agent is running as PID 3635

 

 

AutoScaling

 

  • 起動設定
    ・IAMロール:EC2Role ●重要
    ・CloudWatch 詳細モニタリングを有効化 ●重要
  • AutoScalingグループ
    ・Auto Scalingグループは作成しておく
    ・タグ
    ・Name = ASG-APP-v0-
    ・IPを降るように設定すること(デフォルト)
    →AutoScalingグループ作成後に、「編集」から
    ターゲットグループ「Honban-Target」に紐づける
  • AutoScalingグループによってEC2が自動作成される

 

CodeDeployにデプロイ

 

 

GitHubにリポジトリを用意してアプリをアップロードしておく

 

トークンの作成

Setting >> Developper Setting >> Personal access tokens

 

 

 

リポジトリ情報を控えておく

リポジトリ名
yuukanehiro/sampleapp

コミットID
d6a3ba3ehogehoge8d627dcb47a51

 

 

 

IAMロール作成

  • EC2ロール

「ロールの作成」から、「AWSサービス」「EC2」

  • CodeDeploy用ロール

インラインポリシーの編集

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:Describe*",
            "Resource": "*"
        }
    ]
}

 

 

EC2の作成

タグ

  • Name:deploy
  • Value:app-server

IAMロールの割り当て

EC2ロールを割り当てる

 

 

 

CodeDeploy

 

  • アプリケーションの作成
    デプロイタイプは「インプレースデプロイ」
    最初はBlue環境がない為
  • デプロイグループの作成
  • デプロイの作成

控えていた下記情報を入力する

  • トークンID
  • リポジトリ名
    yuukanehiro/sampleapp
  • コミットID
    d6a3ba3ehogehoge8d627dcb47a51

 

デプロイを実行する

CodeDeployから自動的にデプロイされていく、ファイルがアップロードされるだけでサーバはダウンしない。

 

 

更新の手順

  • ALBターゲットグループを新しく作成する v2-Target
  • AutoScalingグループを作成し、ターゲットグループv2-Targetと紐づける
  • CodeDePloy

 

 

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)