前回の記事で書いたCodeDeploy以外にもCI/CD絡みで色々と使用するサービスがあるので自分用にメモ。
Code兄弟なっていうようで・・・・
各サービス
CodeCommit
AWS上のGitHubみたいなもの。後述するサービスと連携させることができる。
CodePipeline
CircleCIのようにビルドやテスト、デプロイなど各タスクの手続きなどを、まとめて記載することができる。CodeBuildとCodeDeployの連携など。
CodeBuild
Docker環境でソースのビルドやS3へのアップロードを行うことができる(CircleCIのビルド部分を自動化するイメージ?)
処理のイメージ
- ソースがcodeCommitにプッシュされ、S3に配置される(CodePipelineのSource)
- S3からソースを取得して、CodeBuildでビルド実行(ライブラリのインストールなど)し、ビルド結果をS3に再度アップロード
- CodeDeployでビルドされたものをEC2上にデプロイ
上記の流れをCodePipelineで統括しているイメージ
実際の構築作業
- CIツールからcodeCommitに繋ぐ場合は、入口となるCodeCommitユーザーの作成(鍵登録+IAMの付与)
- buildspec.yamlファイル(実際にCodeBuildで実行されるビルドプロセス)を実装
- CodePipelineへのソース(CodeCommit)とビルド(CodeBuild)の登録
- CodePipelineへのデプロイ(CodeDeploy)の登録
ちなみに、上記に関しても前回同様の以下の記事の7章にものすごく詳細に書かれてます。スゴイ・・・