CodeCatalystのworkflowを用いてCDKのCICD環境を作ってみよう!

おはようございます!
最近DWSに入社した木村です!
これから、様々な技術に関して投稿をしていきたいと思いますので、よろしくお願いします!
今回は、CodeCatalystのworkflowを使ったCDKのCICD環境の作り方について記載したいと思います!
CodeCommitに変わるCodeCatalystについて知りたい方、CDKのCICD環境の作り方を知りたい方、ぜひ、拝見していっていただければと思います!
今回の構成図と環境について
構成図
ローカル環境
- CDKバージョン:2.1025.0
- npmバージョン:10.9.2
- nodeバージョン:v22.17.1
- AWS CLIバージョン:aws-cli/2.15.52
- TypeScriptバージョン:5.9.2
1. 前準備
1-1. CDKのセットアップ
こちらは下記記事が大変わかりやすかったので参考にしてください
※CDKコードは下記cdk-sample-codeをクリックし、インストールしてください。ローカルにインストール後はnpm install
コマンドをルートディレクトリで実行し、使用してください。
cdk-sample-code
1-2. CodeCatalystのリポジトリなどの作成
こちらも下記記事を参考にしてください
※リポジトリ作成後に、項番1-1でインストールしたcdk-sample-codeをpushしてください。
2. CodeCatalystへIAMロールを付与する
手順2-1 下記URLよりAWSアカウント内のCodeCatalystのコンソール画面へ移動する
https://us-west-2.console.aws.amazon.com/codecatalyst/home?region=us-west-2#/
手順2-2左ペインの「Spaces」 → 項番1-2 で作った「Space name」の順にクリックする
手順2-3「Add IAM role」をクリックする
手順2-4 Role nameをつけて、「Create development role」をクリックする
手順2-5 IAM Roleが作成され、CodeCatalystに紐付けば完了
3. Environmentsの設定
手順3-1「Go to Amazon CodeCatalyst」からBuilder IDのCodeCatalystのコンソール画面へ移動する
手順3-2 項番1-2で作成したプロジェクト名をクリックする
手順3-3 左ペインより「CI/CD」 → 「Environments」 → 「Create environment」の順にクリックする
手順3-4 以下の通り設定し、「Create environment」をクリックする
- Environment name:任意の名前
- AWS account connection:紐付けるアカウントID
- Default IAM role:項番2で作成したIAMロール
手順3-5 Environmentの作成が確認できれば完了
4.WorkflowでBootstrapのActionを作成する
手順4-1 左ペインより「Workflow」 → 「Create workflow」の順にクリックする
手順4-2 項番1-2で作ったリポジトリとブランチを選択し、「Create」をクリックする
手順4-3 「Actions」→AWS CDK bootstrapの「+」の順にクリックする
手順4-4 「Inputs」タブはデフォルトのままでOK
手順4-5 「Configuration」タブをクリックし、下記のように設定する
- Actions name:任意の名前
- Environment:項番3で作成したEnvironment
- CDK CLI version:作成したCDKのバージョン
※Optionalと書いているが定義しないとエラーになる - AWS region:CDKを展開するリージョン
※複数リージョンに展開するリソースがある場合は、もう一つBootstrapのActionを作成する必要がある
手順4-6 「Commit」ボタンを押す
手順4-7 Workflow filw nameをつけて、「Commit」ボタンを押す
手順4-8 Workflowが作成されれば完了
補足
workflowの作成が完了すれば、リポジトリに./codecatalyst/workflows/<項番4-7でつけたファイル名>.yaml
が作成されます。ローカルと差分が出ないよう、この時にgit pullも行ってください。
5. Workflowでcdk deployのActionを作成する
今回cdk-sample-codeにS3バケットをデプロイするS3BucketStackを用意しました。WorkflowでCICD環境を作成し、自動でデプロイできるようにしていきたいと思います。
手順5-1 左ペインより「Workflow」 → 「項番4で作成したworkflow」をクリックする
手順5-2 「Edit」ボタンをクリックする
手順5-3 「Actions」 → AWS CDK deployの「+」ボタンをクリックする
手順5-4 InputsタブのDepends onで項番4で作った BootstrapのActionを選択する
手順5-5 Configurationタブでは下記の内容を入力する
- Environment:項番3で作成したenvironment
- CDK CDK version:作成したCDKのバージョン
- AWS region:デプロイするリージョン
- Stack name:デプロイするStack名(コードをそのまま使うならS3BucketStackでOK)
手順5-6 「Commit」ボタンをクリックする
手順5-7 「Commit」ボタンをクリックする
手順5-8 Workflowの処理が完了し、全て緑色のチェックが入ればOK
手順5-9 AWSアカウントのCloudFormationスタックに移動し、目的のスタックがデプロイされていれば完了
まとめ
今回CodeCatalystのワークフローを使ったCDKのデプロイ方法について紹介させていただきました。
ワークフローを使えば、UI上で決まった値を入力していくだけで、デプロイのCICD環境が簡単に作成可能なのでおすすめです!
また、添付しているコードにVPCなどのネットワーク環境を用意するVpcNetworkStackの記載もございますので、復習を兼ねて追加のデプロイActionを作るチャレンジをしてみてください!