はじめに
Code Pipelineのチュートリアルをやってみたので記事にしようと思います。
やってみる
今回は「チュートリアル: シンプルなパイプラインを作成する (CodeCommit リポジトリ)」をやりました。
事前準備
前回の記事で紹介したように、IAMユーザを作成します。今回は、前回与えたポリシーに加えて、AWSCodeCommitFullAccess
も追加しました。
1. CodeCommitリポジトリを作成する
まずはリポジトリを作成します。
CodeCommitコンソールを開き、「リポジトリを作成」ボタンからリポジトリを作成します。
適当な名前を入力して、あとは特に何もいじりませんでした。
2. リポジトリをクローンする
先程作成したリポジトリを手元にクローンします。
まずは、こちらの記事の「ステップ 3: CodeCommit への HTTPS 接続用の Git 認証情報を作成する」を参考に、クローン出来るように、IAMユーザに設定を追加します。
使用しているIAMユーザの詳細を開き、「セキュリティ認証情報」タブを選択します。
「AWS CodeCommit の HTTPS Git 認証情報」の欄があるので、そこから認証情報を生成します。
ユーザ名とパスワードが生成されるので、メモするか認証情報をダウンロードします。
CodeCommitリポジトリに戻り、「URLのクローン」からHTTPS
を選択してクローンするためのURLをコピーします。
それを手元の任意のフォルダで実行し、手元にクローンします。
実行時にユーザ名とパスワードを聞かれるので生成した認証情報を入力します。
3. 手元のリポジトリにサンプルコードを展開する
こちらのリンクからサンプルコードをダウンロードして、先程クローンしたリポジトリに展開します。
CodeCommitリポジトリへのcommitやpushは、通常のGitと同じやり方です。
3. デプロイするインスタンスを作成する
サンプルコードをデプロイするためのインスタンスを作成します。
AMIはAmazon Linux 2 Kernel 5.10 SSD
を選択しました。
インスタンスプロフィールは、前回のチュートリアルで作成したものを利用します。
インスタンスタイプはt2.micro
を選択し、インスタンスを一台起動します。
4. CodeDeployでデプロイグループを作成する
こちらは前回のチュートリアルと同様の手順で行います。
サービスロール
サービスロールは、インスタンスに割り当てたIAMロールと同じように作成します。ユースケースでCodeDeploy
を選択すると自動的にAWSCodeDeployRole
ポリシーが含まれるようになるので、何もせず確認画面から作成を行います。
アプリケーション
アプリケーションはCodeDeployコンソールに移動し、アプリケーションタブからアプリケーションの作成を行います。
コンピューティングプラットフォームを選択するところではEC2/オンプレミス
を選択します。
デプロイグループ
先程作成したアプリケーションの画面からデプロイグループの作成を行います。
- Service role:先程作成したサービスロールを選択
-
Deployment type:
In-place
-
環境設定:
EC2インスタンス
を選択し、キーの部分にはName
、値の部分には先程作成したインスタンス名を入力。
インスタンスを作成する際につけた名前は、自動的に「Name: インスタンス名」というタグとしてインスタンスに付与されるので、これを指定します。 -
AWSSystems Manager によるエージェント設定:
今すぐアップデートをスケジュールする
-
デプロイ設定:
CodeDeployDefault.OneAtaTime
- ロードバランシングの有効化:なし(チェックを外す)
この設定でデプロイグループを作成します。
5. CodePipelineでパイプラインを作成する
こちらも前回のチュートリアルと同様の手順ですが、ソースステージのところは「CodeCommit」を選択します。
パイプラインの設定を選択する
適当な名前を入力し、サービスロールの作成を選択します。
高度な設定は特に変更しません。
ソースステージを追加する
ソースプロバイダーにCodeCommit
を選択します。
リポジトリには作成したものを、ブランチは表示されるものを選択します。(何も変更していなければmaster
が表示されるはずです)
検出オプションは特に変更せず、次に進みます。
ビルドステージを追加する
こちらはビルドステージをスキップ
ボタンを押してスキップします。
デプロイステージを追加する
デプロイプロバイダーにCodeDeploy
を、アプリケーションとデプロイグループは4.で作成したものを選択します。
ここまで設定したらパイプラインを作成し、パイプラインの実行が完了するのを待ちます(数分かかります)。
パイプラインが成功したら、インスタンスのパブリックDNS名にアクセスするとSuceessページが表示されるはずです!
6. コードを変更してみる
ローカルリポジトリでindex.html
を編集し、背景色を変えてブランチにpushしてみましょう!
パイプラインが再度実行されて、先程表示したページに変更が表示されるはずです。
おわりに
CodePipelineと仲良くなれそうな気がしてきました。