ECSへのデプロイをサポートしました。(先日発表されたばかりのFargateも)https://aws.amazon.com/jp/about-aws/whats-new/2017/12/aws-codepipeline-adds-support-for-amazon-ecs-and-aws-fargate/これによりコンテナ上で稼働するアプリケーションの継続的デリバリーがより簡単に実装できるようになります。チャレンジしてみました。今回のテスト用のリポジトリを作成します。後ほどリポジトリのURIを使用しますので、メモしておきます。今回は公式ドキュメントのhello-worldを流用しました。基本的にはこちらの手順を踏襲します。012345678910.dkr.ecr.ap-northeast-1.amazonaws.com/ecs-test-repo:latestECSへのデプロイ以下のようなタスク定義ファイルを作成します。CLIでタスク定義の登録を行います。./imagedefinitions.jsonコンソールでタスク定義が登録されていることを確認します。新規サービスを作成し、登録したタスクを起動します。Worldが表示されます。長くなりましたが、以上で事前準備が完了しました。作成し、CodeCommitのリポジトリに追加します。リポジトリの作成リポジトリ名を指定して、新規作成します。今回、Eメール通知の設定はスキップします。リポジトリへの接続ローカルに作成したリポジトリをcloneします。リポジトリへの接続には適切な権限をもったIAMユーザおよびGit認証情報が必要ですのであらかじめ作成しておきます。repository.buildspec.ymlの作成REPOSITORY_URIにはECRのURIを設定します。イメージタグにソースコードのコミットIDを追加するようにします。して事前準備で作成したタスク定義ファイルを指定します。パイプラインの中でタスク定義の新しいリビジョンが作成され、サービスが更新されます。CodeCommitへプッシュします。Dockerfileの中身を少しだけ編集しています。CodePipelineから新規パイプラインを作成します。CodeCommitに設定し、先程作成したリポジトリを指定します。ビルドの設定で以下のように、選択/入力し、ビルドプロジェクトを保存します。選択し、展開先のクラスタ名、サービス名を指定します。サービスロールを選択します。必要に応じて新規作成もできます。レビュー画面で設定値を確認し、パイプラインを作成します。作成直後にパイプラインが起動します。初期の状態ではECRに対する権限が不足しているため、以下のようにビルドが失敗します。そのためIAM管理画面で、作成したサービスロールに対し、AmazonEC2ContainerRegistryPowerUserポリシーを追加します。Buildステージを再実行すると今度はステージングまで処理が完了します。結果確認タスク定義を確認すると新しいリビジョンが作成されています。※途中メモリの設定などを誤り複数回デプロイしているため、以下の画面ショットではリビジョンが4まで増えています。同様にサービスも新しいタスク定義のリビジョンで更新されています。最後にブラウザで確認します。worldのメッセージが更新されていることを確認できました!最後に以上の手順でCodePipelineでECSへのデプロイを行うことができました。参考になれば幸いです。requestStockLike22@hayao_kインフラ大好きです。掲載内容は個人の見解であり、所属する企業を代表するものではありません。Follow株式会社セゾン情報システムズモード1(守りのIT)・モード2(攻めのIT)を兼ね備えたバイモーダル・インテグレーターとしてFintechプラットフォーム、流通ITサービス、HULFT事業およびセンターマネジメントサービスを提供します。upLoginユーザーは見つかりませんでした。