CodePipelineのECRソースのユースケースについて考えてみた

こんにちは。koarakkoです。re:invent期間中に発表されたサービスからピックアップしています。
CodePipelineがECRをソースとして発火できるようになりました。
そこで、今回はCodePipelineがECRソースの利用を想定したユースケースを紹介したいと思います。

環境

以下の環境を基に説明したいと思います。

  • ソースコード管理: GitLab
  • デプロイ先: ECS
  • デプロイJSON: S3
    ※ ECRアウトプットアーティファクトを基にしてECSへデプロイできないため、デプロイ先を示す情報をJSONファイルとしてS3に格納しておく必要があります。

ユースケース1: デプロイのみCodePipelineでやりたい

GitLabのようなCodePipelineと直接連携できないようなソースコード管理を行っていた場合、S3かCodeCommitにソースコードをアップする必要がありました。
ECRソースの場合、GitLabからECRにPushすることでパイプラインを発火させることが可能になります。

----------2018-12-26-10.53.19-1

ユースケース2: 複数アカウントに跨ったパイプラインを構築

テスト用アカウント/本番用アカウントというように、AWSアカウントを分けている環境があるとします。
この場合、ステージングでテストしてから本番へデプロイするパイプラインが構築できます。

----------2018-12-26-11.12.51

ユースケース3: パイプライン自体のテストを短縮

ECRはそのままで、デプロイされるかのみをテストしたい場合があります。
CodeCommitなどをコンソール画面から手動発火させる方法でしたが、Dockerイメージをビルド、デプロイすると待ち時間が長くなってしまいました。

ECRソースを利用することで、Dockerイメージのビルドを省くことができる分、パイプライン自体の検証が捗ると思います。

----------2018-12-26-11.15.18

終わりに

いかがでしたか。今回の発表で、これまで不便と感じてたところが、便利に使えるようになったと思います。
個人的にはECRのアウトプットアーティファクトからECS,Fargateへデプロイできれば、S3にデプロイ用のJSONファイルを置かずに済むので、今後のアップデートを楽しみにしています。

Author image
About koarakko
expand_less