普通はロードバランサ+AutoScaling+Blue/Greenデプロイですが、今回はシンプルに。
もくじ
GitHubにリポジトリを用意してアプリをアップロードしておく
トークンの作成
Setting >> Developper Setting >> Personal access tokens
appspec.ymlをプロジェクトのルートに設置する
appspec.yml version: 0.0 os: linux files: - source: / destination: /var/www/
リポジトリ情報を控えておく
リポジトリ名 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ロールを割り当てる
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
CodeDeploy
- アプリケーションの作成
デプロイタイプは「インプレースデプロイ」 - デプロイグループの作成
- デプロイの作成
控えていた下記情報を入力する
- トークンID
- リポジトリ名
yuukanehiro/sampleapp - コミットID
d6a3ba3ehogehoge8d627dcb47a51
デプロイを実行する
CodeDeployから自動的にデプロイされていく、ファイルがアップロードされるだけでサーバはダウンしない。