Lapis Lazuli

technical blog for web developer

AWSのデプロイサービス

Fargate運用するとなると、真っ先に整備しないといけないのがデプロイ周りです。
EC2のようにローカルから送ってデプロイという訳にはいかないので、導入するのならセットで導入する必要があります。
もし現状全くCIとか使ってない環境でしたら、導入する絶好のチャンスですね。

AWSのデプロイサービス

世間的にはCircleCIがメジャーな気がしますが、もちろんAWSのみで完結する事も可能です。
そこで使うことになるのが、CodeDeploy、CodeBuild、CodeDeployのいわゆるCode三兄弟と、それぞれを接続しマネージするCodePipelineの4つになります。
それぞれ見ていくと、

CodeCommit

いわゆるGithubみたいなホスティングサービスです。ここのリポジトリにPushしたソースをデプロイすることができます。
が、PipelineがGithubと連携できるので使う機会があまり無いかな・・・というのが正直な印象ですね。
最初から他のホスティングサービス使っているパターンが多いと思うので、わざわざこちらに移行ということは中々ないと思います。

CodeBuild

ソースをビルドしたりテストしたりするサービスです。
ビルドプロセスって結構モノによっては負荷が高くて時間かかるものもあるのですが、CodeBuildは完全マネージドなのでその部分を気にしなくても良いのがメリットですね。
buildspecに定義を記述してリポジトリに入れるだけなので使い方も簡単(S3においておく事も可能)

CodeDeploy

デプロイを管理するサービスです。
EC2やECS、lambdaなどに対応しています。定義ファイルappspecに定義してデプロイを進める形になります。
Fargateにデプロイするのにももちろん使えます。


以上Code3つをさっくりと説明しました。
CodePipelineがありませんが、これはこの3つを接続し、順次実行させるジョブのような役割を果たします。
触ってみるとこれが一番重要な役割で、パイプラインがどのbuildspecを使うのかなど指定するので、複数の定義を使い分ける場合はこれが担う形になります。
さらっと各サービスの紹介をしましたが、次回は具体的なデプロイの構築方法を書きたいと思います。