目次Category
1.はじめに
今回は、AWSでコンテナのCI/CD構築を行っていきます。
軽くCI/CDについてお話します。
CI/CDとは
アプリケーションの開発から本番環境への反映を自動化する仕組み
CI(Continuous Integration)
プログラムの変更を自動で統合し、問題がないか確認する仕組み
CD(Continuous Delivery / Continuous Deployment)
CIで作成したアプリを自動でデプロイする仕組み
要するに、コーディング後のビルド~デプロイまでの作業を楽にしてくれるものだと思ってもらえればいいです。
今回使用するAWSサービス
![]()
これらのサービスを使って、次のような流れでCI/CDを行います。

*オレンジの枠:CIの流れ / 紫の枠:CDの流れ
Dockerイメージ:コンテナを起動するためのテンプレートであり、アプリケーションの実行に必要なファイルや設定を含むパッケージ
構築手順へ移りましょう!
2.構築手順
*ECRとECSを作成している前提で進んでいきます。作成方法がわからない方は下記のブログを参照してください!
ECS(Fargate)+ALB Webアプリケーション構築ハンズオン
構築するにあたって
・サービスを作成する際、命名規則は下記とします。
[サービス名(英字)]-[name]-[採番]
(*別途指定があればそちらに従ってください)
・gitコマンドを使用するので、インストールしておいてください。
2-0.AWS CLI設定
本記事では、「SSO認証」を用いてAWS CLIの設定を行います。
*SSO認証が出来ていない方は、下記のブログを参照してください!
ECS(Fargate)+ALB Webアプリケーション構築ハンズオン
*IAMユーザー(アクセスキー)で進めたい方は、以下の公式ドキュメントや解説記事を参照の上、”aws configure” コマンド等で設定を行ってください。
2-1.CodeCommit設定
まずは、ソースコードを管理するためのリポジトリを作成していきます。
CodeCommitのページを開くと、”リポジトリの作成”があるのでクリックしましょう。
すると、下記の画面が出てきます。

① リポジトリ名を入力
② 右下の作成ボタンをクリック
(*他の設定は任意です)
ローカル環境にリポジトリをクローンしていきます。
③ ターミナルまたはコマンドプロンプトを開き,C直下のworkフォルダに移動
(Macでは、ルートディレクトリ直下)
④ 以下のコマンドを実行
Macの場合
・git config –global credential.helper ‘!aws codecommit credential-helper $@’
・git config –global credential.UseHttpPath true
Windowsの場合
・git config –global credential.helper “!aws codecommit credential-helper %*”
・git config –global credential.UseHttpPath true
ここでGitからAWS CodeCommitへHTTP接続する際の認証設定をしています。
1つ目:gitから認証情報の要求が来たらAWS CLIの機能を呼び出すように指定
2つ目:URLで認証情報を管理していて、パス名まで含めるかを指定
*デフォルトは、”https://git-codecommit.[リージョン名].amazonaws.com”
⑤ 以下のコマンドでリポジトリをクローン
・git clone [リポジトリURL]
リポジトリURLはHTTPSのクローンから取得してください。(下記画像参照)

2-2.CodeBuildの設定
① buildspec.ymlの準備
VSCode等のエディターを使用して、CodeBuildの設定に必要なbuildspec.ymlを
準備します。
新しくymlファイルを作成して、下記のコードを記載してください。
————————————————————————————————————————–
② gitにステージング、コミット、プッシュする
③ CodeBuildでビルドプロジェクトを作成



(画像2枚目キュータイムアウトの下)

を削除

④ サービスロールへのロール付与
作成したビルドプロジェクトの詳細を開いていください。

サービルロールをクリックしてください。

【許可ポリシー】
・許可を追加 -> ポリシーをアタッチ
・「AmazonEC2ContainerRegistryFullAccess」を検索して、付与
⑤ 作成したビルドプロジェクトで”ビルド開始”を実行
*エラーが出たら都度解決してください
ビルドが成功したら、次へ移りましょう!
2-3.CodePipelineの設定
新規パイプラインの作成を進めていきます。

【Category】
・”カスタムパイプラインを構築する”を選択

【パイプラインの設定】
・パイプライン名:pipeline-kamiyama-01
*サービスロールは、CodeBuildと同様の点に注意してください

【ソース】
・ソースプロバイダー:AWS CodeCommit
・リポジトリ名:codecommit-kamiyama-01(作成したCodeCommit名)
・ブランチ名:mainまたはmaster

【構築する】
・プロバイダーを構築する:その他のビルドプロバイダー
・プルダウンから”AWS CodeBuild”を選択
・プロジェクト名:codebuild-kamiyama-01(作成したCodeBuild名)
・リージョン:自分がいるリージョン(デフォルトでよいはず)
*以降はデフォルトのまま
何もせず次へ

【デプロイ】
・デプロイプロバイダー:Amazon ECS
・リージョン:自分がいるリージョン(デフォルトでよいはず)
・クラスター名:ecs-kamiyama-01 (作成したECSのクラスター名)
・サービス名:ecs-service-kamiyama-01(クラスターで作成したサービス名)
*以降はデフォルト
設定内容が問題ないか確認出来たら作成!!
作成できると自動で動き始めるので完了するまで待つ
*エラーが出たら修正しましょう!
2-4.動作確認
index.htmlを編集して、CodeCommitにプッシュして、パイプラインが動いて成功するか確認してみましょう。
3.最後に
コンテナのCI/CD構築はこれで以上になります。
今回作成/使用したサービスは最後に削除しましょう!
・Amazon ECS
・Amazon ECR
・CodeBuild
・CodePipeline
・CodeCommit
同じカテゴリーの記事
同じカテゴリの記事を読む