#概要
CodeDeployが気になっていたのでAWS公式のチュートリアルをやってみた。
何もしないと忘れそうなので、作業メモとして残す。
##作業環境・使用サービス
- 作業端末
- chromebook (ASUS C101PA)
- Secure Shell App (SSH接続用)
- AWSサービス(東京リージョン)
- EC2(Amazon Linux 2 AMI (HVM), SSD Volume Type)
- AWS CodeDeploy
- AWS CodePipeline
- github
##1. IAM準備
EC2用とCodeDeploy用のIAMロールを準備する。
・EC2用
IAMロール作成画面でAWSサービス > EC2を選択。
↓
ポリシーに”AmazonEC2RoleforAWSCodeDeploy”を指定。
↓
タグは飛ばす。
↓
任意のロール名を入力し、ロールの作成。
・CodeDeploy用
IAMロール作成画面でAWSサービス > CodeDeployを選択。
↓
ユースケースの選択でCodeDeployを指定。
↓
ポリシーにAWSCodeDeployRoleが表示される。(変更なし)
↓
任意のロール名を入力し、ロールの作成。
##2. EC2準備
EC2インスタンスの作成のクイックスタートで、
Amazon Linux 2 AMI (HVM), SSD Volume Type - ami-06ad9296e6cf1e3cf (64 ビット x86)
を選択し、下記以外は適当な設定で作成。(すべて無料枠で作成した。)
・「ステップ3:インスタンスの詳細の設定」のIAMロールに1で作成したEC2用ロールを割り当てる。
・同画面最下部のユーザーデータに下記記入
sudo yum install ruby
sudo yum install aws-cli
aws s3 cp s3://aws-codedeploy-ap-northeast-1/latest/install . --region ap-northeast-1
chmod +x ./install
sudo ./install auto
↓
・タグはあとで使用するのでメモ残しておくこと。
↓
起動
↓
Secure Shell Appで接続
↓
・AWS CLIインストール??(←不要?要確認)
・gitインストール
$ sudo yum update
$ sudo yum install git
$ git version
##4. github準備
GitHubの自分のアカウントで下記設定でニューレポジトリ作成。
[レポジトリ名] CodeDeployGitHubDemo
[Public]
[Initialize this repository with a README] チェックボックスをオフ
↓
ターミナルで下記コマンドを1行ずつ実行
$ mkdir /tmp/CodeDeployGitHubDemo
$ cd /tmp/CodeDeployGitHubDemo
$ touch README.md
$ git init
$ git add README.md
$ git commit -m "My first commit"
$ git remote add origin https://github.com/user-name/CodeDeployGitHubDemo.git
$ git push -u origin master
$ aws s3 cp s3://aws-codedeploy-ap-northeast-1/samples/latest/SampleApp_Linux.zip . --region ap-northeast-1
$ unzip SampleApp_Linux.zip
$ rm SampleApp_Linux.zip
$ git add .
$ git commit -m "Added sample app"
$ git push
##5. CodeDeploy準備
・アプリケーションおよびデプロイグループの作成
$ aws deploy create-application --application-name CodeDeployGitHubDemo-App
$ aws deploy create-deployment-group --application-name CodeDeployGitHubDemo-App --ec2-tag-filters Key=ec2-tag-key,Type=KEY_AND_VALUE,Value=ec2-tag-value --deployment-group-name CodeDeployGitHubDemo-DepGrp --service-role-arn service-role-arn
ec2-tag-key:作成したEC2インスタンスのタグ
ec2-tag-value:作成したEC2インスタンスのタグ値
service-role-arn:CodeDeploy用のIAMロールのARN
##6. アプリケーションをデプロイ
GitHubへの権限付与にコンソールを使用するのでそのままコンソールで設定しきる。
サービスからCodeDeploy画面へ移動
↓
アプリケーション>作成したデプロイグループ>[デプロイの作成]
↓
[リビジョンタイプ] で [GitHub] を選択
リビジョンの場所:自分のGitHubアカウント名
リポジトリ名:アカウント名/リポジトリ名
Commit ID:コミット(基本的に最新のID)
↓
デプロイの作成
7.CodePipeline設定
サービスからCodePipeline画面へ移動。
↓
パイプラインを作成する
↓
パイプライン名:適当
サービスロール:自動
↓
ソース:GitHub
リポジトリ:紐付けたリポジトリ
を選択
ブランチ:master
↓
ビルドステージをスキップする。
↓
デプロイプロバイダー:AWS CodeDeploy
リージョン:アジアパシフィック(東京)
アプリケーション名:作成したアプリケーション
デプロイグループ:作成したデプロイグループ
↓
パイプラインを作成する
インスタンスのパブリックIPをブラウザ入力すると、水色の画面が表示されるはず。
GitHubのリポジトリのhtmlファイルのカラーコードを「#000000」に変更して、画面が黒色に変わることを確認する。
所感
CodeDeploy用のIAMロール作成が抜けていて、解決までに時間がかかった。
また、awsconfigの設定等、基本的なところで詰まってしまったので、スムーズに
設定できるように作成で順などまとめるようにしようと思う。