AWS CodePipelineを使用してgit pushでAmazon ECSをデプロイする | SEEDS Creators' Blog | 株式会社シーズ
ECS > クラスター > 該当のサービスを選択 > 「デプロイメント」タブ > パイプラインを作成
# Step1 パイプラインの設定を選択する パイプライン名: nuxt-fargate-pipeline サービスロール: 新しいサービスロール ロール名: AWSCodePipelineServiceRole-ap-northeast-1-nuxt-fargate-pipeline # Step2 ソースステージを追加する ソースプロバイダー: GitHub(バージョン2) 接続 → 接続名: 任意のもの リポジトリ: 該当リポジトリ ブランチ名: master ソースコードの変更時にパイプラインを開始する: チェック # Step3 ビルドステージを追加する プロバイダーを構築する: AWS CodeBuild リージョン: アジアパシフィック(東京) ## ビルドプロジェクト プロジェクト名: nuxt-fargate-build オペレーティングシステム: Amazon Linux ランタイム: Standard イメージ: 最新のもの イメージのバージョン: 最新のもの 環境タイプ: Linux Docker権限付与: チェック サービスロール: 新しいサービスロール ロール名: codebuild-nuxt-fargate-build-service-role ## 環境変数 AWS_ACCOUNT_ID: <アカウントID> AWS_DEFAULT_REGION: ap-northeast-1 REPOSITORY_NAME: nuxt-fargate_app REPOSITORY_URI: 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com IMAGE_TAG: latest # Step4 デプロイステージを追加する デプロイプロバイダー: Amazon ECS(ブルー/グリーン) リージョン: アジアパシフィック(東京) 入力アーティファクト: BuildArtifact AWS CodeDeploy アプリケーション名: nuxt-fargate-deploy AWS CodeDeploy デプロイグループ: nuxt-fargate-deploy-group Amazon ECS タスク定義: BuildArtifact AWS CodeDeploy AppSpec ファイル: BuildArtifact 入力アーティファクトを持つイメージの詳細: BuildArtifact タスク定義のプレースホルダー文字: IMAGE1_NAME
ECRにアクセスできるようにCodeBuildのサービスロールを設定する。
CodeBuild > ビルドプロジェクト > 該当のプロジェクト > 「ビルドの詳細」タブ > 環境 > サービスロール
のARNをクリックし、 AmazonEC2ContainerRegistryPowerUser
ポリシーをアタッチする。
参考: 【備忘録】CodeBuildでaws ecr get-login
コマンド実行時にエラーが発生する - Qiita
ビルドしてみて、エラー参考にググってみたいにしてなんとかビルド成功しました。
雰囲気はGitHub ActionsやNetlifyと同じですが、コンソール内の権限周りが悪いのか、コードの記述が分からなくてハマってしまいました。
10回もしないうちにDockerのRate Limitに引っかかったので、下記の対策を行うなどを推奨します。
参考: Docker Hub の Rate Limitに引っかかったのでdocker loginで対策した - fu3ak1's tech days
以上の手順でパイプライン作成。
masterにプッシュしたら、ECRリポジトリにプッシュされ、ビルドしたイメージがALBにデプロイされる。
次回はこれまでのまとめを兼ねて構成図等で振り返りをして終わりにしようと思います。