ECRへのPushでECSをデプロイするだけのシンプルなCodePipelineを試す

80件のシェア(ちょっぴり話題の記事)

はじめに

瀬田@大阪オフィスです。1年に一つ、何か新しいことに手を出すことを目標にしているんですが、理解の浅いCode兄弟に入門してみることにしました。だってCodePipeline楽しそうなんだもの。

今回の構成

シンプルにECRへのPushでCodePipelineを発火させ、ECSにデプロイするだけの構成を作ります。 CodeCommitもCodeDeployも使用せず、S3から設定ファイルを取得します。

前提

ECRのリポジトリと、ECSは構成されているものとします。

手順

CodePipelineでSorceを作る(ECR+S3)

ソースステージの編集からECRのソースを作成します。

ソースステージの編集から「アクションの追加」を押してS3のソースを作成します。

ポイントは、「S3 object key」に「imagedefinitions.json.zip」を入力しておくこと。あとで解説します。

こうなります。

CodePipelineでデプロイを作る

デプロイステージでECSへのデプロイを作ります。 入力アーティファクトをS3のソースアクションの出力アーティファクトにしてください。「S3OutArtifuct」のところですね。

ECRとECSを繋ぐ設定ファイルを作成します。

ファイル名 imagedefinitions.json
内容 [{"name":"コンテナ名","imageUri":"ECRのリポジトリ内のImage URI"}]
これをzip圧縮して、imagedefinitions.json.zipを作成してください。

S3に設置ファイルを格納する。

S3のソースで指定したS3バケットの直下にimagedefinitions.json.zipを置きます。

(※バケットはバージョニングを有効にしておく必要があります。)

試してみる

ECRにイメージをpushしてみると、Piplineが起動し、デプロイされました。

OKですね。

最後に

これは便利。 Code兄弟は苦手意識があったわけですが、やれることはシンプルなので一回使ってみれば仲良くやっていけそうです。 他の兄弟達も触ってみようと思います!