まとめと次のステップ

まとめ

全モジュールを通して、以下の内容を体験していただきました。

  • ECS で複数のタスクを稼働させるアプリケーションのデプロイ

  • タスク間のサービスディスカバリ

  • CodeDeploy、ALB を利用した ECS の Blue/Green デプロイメント

  • CodePipeline を利用した ECS 環境における CI/CD による自動デプロイ

次のステップ

おめでとうございます!これで今回のハンズオンはすべて完了しました。次のモジュールで、後片付けを行ってください。

buildspec.yml の解説

  • pre_build フェーズ

    • ECR レジストリへログイン

    • Docker イメージを保管する ECR リポジトリを変数に設定

    • ビルド ID の Prefix を Docker イメージのタグに指定するために、イメージタグの変数を設定

    pre_build:
      commands:
        - aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin <AWS アカウント ID>.dkr.ecr.ap-northeast-1.amazonaws.com
        - REPOSITORY_URI=<先ほど作成した ECR リポジトリの URI>
        - IMAGE_TAG=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
  • build フェーズ

    • Docker イメージをビルド

    • pre_build フェーズで設定したイメージタグを利用して、ビルドした Docker イメージにタグ付け

    build:
      commands:
        - docker build -t $REPOSITORY_URI:latest .
        - docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
  • post_buildフェーズ

    • ビルドした Docker イメージを ECR リポジトリに Push

    • イメージの情報を imageDetail.json に出力

    post_build:
      commands:
        - docker push $REPOSITORY_URI:latest
        - docker push $REPOSITORY_URI:$IMAGE_TAG
        - printf '{"Version":"1.0","ImageURI":"%s"}' $REPOSITORY_URI:$IMAGE_TAG > imageDetail.json
  • artifact

    • CodePipeline で後続のフェーズにイメージ情報を渡すため、imageDetail.json をアウトプットアーティファクトとして指定
    artifacts:
      files: imageDetail.json