ecspresso advent calendar 2020 day 1 - ecspresso とは
Amazon ECS のデプロイツールである ecspresso の利用法をまとめていく ecspresso Advent calendar 1日目です。
ecspresso とは
ecspresso は、AWS(Amazon Web Services) のコンテナオーケストレーションサービス、Amazon ECS 用のデプロイツールです。「エスプレッソ」と読みます。
GitHub で開発しています。
特徴
- Go 言語で書かれた OSS です
- ECS service / task に関わる最小限のリソースをコード管理し、デプロイを実行するためのツールです
- ECS service / task が動作するにあたって必要な関連リソース(例: IAM Role, ELB target group, VPC, Subnet, Security gruop など)を作成/管理する機能はありません
- 既存の ECS service / task の情報を元に、構成ファイルを生成する機能があります
- AWS Console や他のツールでデプロイしている既存リソースを、あとから ecspresso で管理するように変更できます
参考: 第2回 AWS Fargate かんたんデプロイ選手権
こんな人におすすめ
ecspresso の開発思想は「ECS のデプロイに関わる最小限のリソースのみを管理するツール」です。ECS でコンテナを動作させるにあたっては、最低でも VPC, IAM Role 等を別途用意する必要がありますが、それらの周辺リソースの面倒は ecspresso は見ません。
そのため、AWS や ECS のことをあまり理解していない人が、試しに ECS でなにかを起動してみよう、という場合にはあまりお勧めしません。
周辺リソースの管理は CloudFormation や Terraform などの他の手法で管理できる人が、ECS のデプロイだけを別途管理したい場合、現在他のツールや AWS console で ECS を管理している人が、ECS の管理をコード化したくなった場合にお勧めします。
なぜ ECS のみを管理対象にしているのか
ECS の周辺リソースと ECS 上にデプロイするアプリケーションは、ライフサイクルが異なることが多いためです。
周辺リソースは一度運用が始まったらそれほど頻繁に構成変更しないが、アプリケーションは毎日何度もデプロイする、という運用はよくあります。その場合に1つのツールですべてを管理するよりは、管理対象として明確に分かれているほうが運用上好ましいことが多いと考えています。
2日目は ecspresso のインストールについて説明します。
Discussion