{"componentChunkName":"component---src-templates-post-template-js","path":"/posts/ecs-on-fargate-deployment-tools-ver-2022","result":{"data":{"markdownRemark":{"id":"e8003846-a9be-57a1-b337-87d2d4042ee8","html":"<p>ECS on Fargate は AWS のアプリケーション実行環境として近年定番の選択肢です。\nそんな ECS on Fargate について、Infrastructure as Code や CI/CD などを含めて環境を整えようとすると、何かしらのツールが必要になります。</p>\n<p>2020 年時点の情報としては AWS Dev Day Japan の「<a href=\"https://speakerdeck.com/toricls/the-easiest-deployment-championship-2020-find-your-winner-for-aws-fargate\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">第2回 AWS Fargate かんたんデプロイ選手権</a>」という資料があり、ECS on Fargate のデプロイツールを比較するうえでとても参考になるのですが、AWS のアップデートはとても早いです。</p>\n<p><strong>2022 年 12 月の時点で ECS on Fargate のデプロイツールをいくつか試してみた</strong>ので、得られた知見をまとめておきます。</p>\n<h2 id=\"調査したツール\" style=\"position:relative;\"><a href=\"#%E8%AA%BF%E6%9F%BB%E3%81%97%E3%81%9F%E3%83%84%E3%83%BC%E3%83%AB\" aria-label=\"調査したツール permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>調査したツール</h2>\n<p>今回 ECS on Fargate のデプロイツールを調査した理由は、実際に ECS on Fargate で本番環境を構築するためです。</p>\n<p>その際前提として、「CPU・メモリの割り当てや環境変数といったタスクの基本的な設定は、AWS の知識が豊富ではないアプリケーションエンジニアが変更できる」ようにしたかったので、その条件を満たしてくれそうなツールを中心に調査しました。</p>\n<p>候補として、以下の 3 つのツールにしぼって、実際にさわって検証してみました。</p>\n<ul>\n<li>Docker Compose ECS Integration</li>\n<li>AWS Copilot CLI</li>\n<li>ecspresso</li>\n</ul>\n<h2 id=\"docker-compose-ecs-integration\" style=\"position:relative;\"><a href=\"#docker-compose-ecs-integration\" aria-label=\"docker compose ecs integration permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Docker Compose ECS Integration</h2>\n<p>公式ドキュメント: <a href=\"https://docs.docker.com/cloud/ecs-integration/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://docs.docker.com/cloud/ecs-integration/</a></p>\n<h3 id=\"概要\" style=\"position:relative;\"><a href=\"#%E6%A6%82%E8%A6%81\" aria-label=\"概要 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>概要</h3>\n<p>Docker Compose の ECS 統合機能は、2020 年 11 月に GA されました。</p>\n<p>基本的な設定ファイルの書き方は Docker Compose と同じで、一部 ECS 特有の設定を書いて <code class=\"language-text\">docker-compose up -d</code> するだけで ECS にコンテナをデプロイできます。<sup id=\"fnref-1\"><a href=\"#fn-1\" class=\"footnote-ref\">1</a></sup></p>\n<h3 id=\"良かった点\" style=\"position:relative;\"><a href=\"#%E8%89%AF%E3%81%8B%E3%81%A3%E3%81%9F%E7%82%B9\" aria-label=\"良かった点 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>良かった点</h3>\n<p>実際にさわってみた所感として、たしかに <strong>Docker Compose の延長で使うことができるため、とっかかりの学習コストが非常に低く、とても素晴らしいツールだと思いました</strong>。</p>\n<p>そして、<strong>ドキュメントがとても分かりやすく、試してみるのも簡単でした</strong>。</p>\n<p>また、docker-compose.yaml ファイルをもとに CloudFormation のテンプレートが生成されるのですが、その <a href=\"https://docs.docker.com/cloud/ecs-integration/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">CloudFormation のテンプレートを一部調整可能な機能</a> もあります。\nこの機能によって<strong>ある程度のカスタマイズ性もあります</strong>。</p>\n<h3 id=\"弱点\" style=\"position:relative;\"><a href=\"#%E5%BC%B1%E7%82%B9\" aria-label=\"弱点 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>弱点</h3>\n<p>しかし、ECS でのコンテナへの機密情報の受け渡しによく使われる、<strong>「パラメータストアから取得した値を環境変数に設定する」という機能がサポートされておらず、採用は断念しました</strong>。<sup id=\"fnref-2\"><a href=\"#fn-2\" class=\"footnote-ref\">2</a></sup></p>\n<p>また、<a href=\"https://github.com/docker/compose-cli\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">GitHub リポジトリ</a> を見てみると、<strong>最近はあまり力を入れて開発されていないようで、今後積極的に採用するのは難しそうかもしれないと感じました</strong>。</p>\n<p>代替ツールとして、<a href=\"https://docs.compose-x.io/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ECS Compose-X</a> というものを開発している方もいるようでした。</p>\n<h2 id=\"aws-copilot-cli\" style=\"position:relative;\"><a href=\"#aws-copilot-cli\" aria-label=\"aws copilot cli permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>AWS Copilot CLI</h2>\n<p>公式サイト: <a href=\"https://aws.github.io/copilot-cli/ja/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://aws.github.io/copilot-cli/ja/</a></p>\n<p>続けて、AWS Copilot CLI についてです。\n(Copilot と言うと GitHub Copilot を想像する方が多いと思うので、略さずに AWS Copilot CLI と書くことにします。)</p>\n<h3 id=\"概要-1\" style=\"position:relative;\"><a href=\"#%E6%A6%82%E8%A6%81-1\" aria-label=\"概要 1 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>概要</h3>\n<p>AWS Copilot CLI も Docker Compose ECS Integration と同じく 2020 年 11 月に GA されたツールで、こちらは AWS 公式が提供しています。</p>\n<p>設定ファイルは AWS Copilot CLI 独自の書き方となります。</p>\n<h3 id=\"良かった点-1\" style=\"position:relative;\"><a href=\"#%E8%89%AF%E3%81%8B%E3%81%A3%E3%81%9F%E7%82%B9-1\" aria-label=\"良かった点 1 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>良かった点</h3>\n<p>GA よりも半年ほど前、<a href=\"https://www.kanzennirikaisita.com/posts/aws-copilot-v0-1-0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">最初に公開された時点で少しさわってみたとき</a> は、簡単にデプロイできるものの、不足している機能がかなり多いという印象でした。\nしかし、2022 年時点では、<strong>ECS on Fargate のデプロイツールとして、かなりおすすめできる</strong>ものになっていました。</p>\n<p><strong>最小限の設定で ECS on Fargate の環境を CI/CD 含め構築することができ、環境変数やオートスケーリングなど、よくある各種設定が簡単に可能です</strong>。</p>\n<p>2022 年 12 月現在、<strong>Infrastructure as Code や CI/CD が整った、ある程度しっかりした ECS on Fargate の環境を構築したい場合、AWS Copilot CLI を使うのが一番簡単だと思います</strong>。</p>\n<p>少し調べてみた範囲でも、最近は導入事例もかなり多いようでした。</p>\n<h3 id=\"弱点-1\" style=\"position:relative;\"><a href=\"#%E5%BC%B1%E7%82%B9-1\" aria-label=\"弱点 1 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>弱点</h3>\n<p>AWS Copilot CLI の弱点だと思ったのは、学習コストが高めなことです。\nしっかり理解して使おうとすると、<strong>ECS の基礎知識に加えて、AWS Copilot CLI 特有の概念もキャッチアップする必要があります</strong>。\n(少しクセがあるなと感じました)</p>\n<p>AWS Copilot CLI は ECS などを「抽象的に扱えるツール」のように言われることがありますが、自分がさわった感想としては「<strong>ECS を抽象的に扱えるツールというよりも、ECS の設定をおおよそ理解したうえで、少ない記述量で使えるツール</strong>」という印象でした。</p>\n<p>そして、こういったツールにはよくあることですが、<strong>一部の設定は細かく調整できなかったりします</strong>。\n自分の場合だと、ALB の設定の細かい調整が難しかったという理由で、今回は採用を見送ることになりました。</p>\n<h2 id=\"ecspresso\" style=\"position:relative;\"><a href=\"#ecspresso\" aria-label=\"ecspresso permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>ecspresso</h2>\n<p>公式リポジトリ: <a href=\"https://github.com/kayac/ecspresso\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://github.com/kayac/ecspresso</a></p>\n<h3 id=\"概要-2\" style=\"position:relative;\"><a href=\"#%E6%A6%82%E8%A6%81-2\" aria-label=\"概要 2 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>概要</h3>\n<p>ecspresso は、面白法人カヤックさんが提供している、ECS のデプロイツールです。</p>\n<p>ECS の薄いラッパーのようなツールとなっています。</p>\n<h3 id=\"良かった点-2\" style=\"position:relative;\"><a href=\"#%E8%89%AF%E3%81%8B%E3%81%A3%E3%81%9F%E7%82%B9-2\" aria-label=\"良かった点 2 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>良かった点</h3>\n<p>ecspresso をさわってみた感想としては、<strong>学習コストが低く、とにかく使いやすかったです</strong>。\nデプロイだけでなく、<strong>ログの表示や ECS Exec などもサポートされており、aws cli では不便な点を解決してくれている素晴らしいツールだと思いました</strong>。</p>\n<p>タスク定義やサービスの設定は、<strong>むやみに抽象化されていないため自由度が高く、様々な場面で使えると思います</strong>。</p>\n<p>そして、<strong>Terraform と組み合わせて使うことが想定されており、設定ファイルから tfstate を参照することができ、とても便利です</strong>。</p>\n<p>開発も積極的に行われていて、最近 v2 がリリースされています。</p>\n<h3 id=\"弱点-2\" style=\"position:relative;\"><a href=\"#%E5%BC%B1%E7%82%B9-2\" aria-label=\"弱点 2 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>弱点</h3>\n<p>ecspress は、ECS のサービス・タスク定義の管理に特化したツールであり、VPC・ALB・IAM Role など、<strong>タスク定義やサービスから紐付ける先のリソースは、別途作成する必要があります</strong>。\nそのあたりを Infrastructure as Code したいのであれば、<strong>Terraform などと組み合わせて使うことになります</strong>。</p>\n<p>なので、<strong>何もない状態から Infrastructure as Code や CI/CD がある程度整った環境を作ろうとすると、実装コストはある程度かかります</strong>。</p>\n<p>そして、<strong>ecspresso 自体が実質的に 1 名で開発されているので、場合によっては不安を感じるかもしれません</strong>。</p>\n<p>(と言いつつ、今回は ecspresso を使わせていただくことにしました！)</p>\n<h2 id=\"その他\" style=\"position:relative;\"><a href=\"#%E3%81%9D%E3%81%AE%E4%BB%96\" aria-label=\"その他 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>その他</h2>\n<p>その他、ECS on Fargate のデプロイツールとして、</p>\n<ul>\n<li>ecs-deploy</li>\n<li>CDK</li>\n</ul>\n<p>の 2 つは、状況によっては良さそうだと思いました。</p>\n<p>ecs-deploy は、簡易的なツールで十分な場面であれば、良い選択肢になりそうです。\nですが、Infrastructure as Code したいとなったりすると、Terraform などでたくさんコードを書くことになりそうです。</p>\n<p>CDK は、ある程度の AWS の知識が前提になりそうなので、今回私の状況には適さない気がしてあまり深く調べませんでした。\nただ、AWS の知識がある程度あるメンバーが使う前提なら、かなり良さそうな気もしています。</p>\n<h2 id=\"まとめ\" style=\"position:relative;\"><a href=\"#%E3%81%BE%E3%81%A8%E3%82%81\" aria-label=\"まとめ permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>まとめ</h2>\n<p>以上、ECS on Fargate のデプロイツールを調べて得られた知見を書いてきました。</p>\n<p>まとめると、以下のようになります。</p>\n<ul>\n<li>Docker Compose ECS Integration … 開発状況を踏まえると、採用は難しそう</li>\n<li><strong>AWS Copilot CLI … ある程度整った環境を一番サクッと作れる。少しクセがある</strong></li>\n<li><strong>ecspresso … とにかく使いやすい。周辺リソースを作る手間はかかる</strong></li>\n</ul>\n<p>CDK に感じた良さそうな雰囲気も、実際どうなのか遠くないうちにさわってみたいと思います。</p>\n<div class=\"footnotes\">\n<hr>\n<ol>\n<li id=\"fn-1\">\n<p>設定内容によっては、-d オプションをつけないとエラーになります (<a href=\"https://github.com/docker/compose-cli/issues/2086\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://github.com/docker/compose-cli/issues/2086</a>)</p>\n<a href=\"#fnref-1\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-2\">\n<p>CloudFormation のテンプレートを調整する機能を使っても、容易には実現できませんでした</p>\n<a href=\"#fnref-2\" class=\"footnote-backref\">↩</a>\n</li>\n</ol>\n</div>","fields":{"slug":"/posts/ecs-on-fargate-deployment-tools-ver-2022","tagSlugs":["/tag/aws/","/tag/ecs/"],"autoRecommendPosts":["udemy-aws-container","aws-copilot-v0-1-0","how-to-study-aws-basics","4295010650"]},"frontmatter":{"date":"2022-12-16T13:39:56.426Z","description":"ECS on Fargate は AWS のアプリケーション実行環境として近年定番の選択肢です。\nそんな ECS on Fargate について、Infrastructure as Code や CI/CD などを含めて環境を整えようとすると、何かしらのツールが必要になります。\n2022 年 12 月の時点で ECS on Fargate のデプロイツールをいくつか試してみたので、得られた知見をまとめておきます。","tags":["aws","ecs"],"title":"ECS on Fargate のデプロイツールを調べてみた【ver2022】","socialImage":null,"recommendPosts":null}}},"pageContext":{"slug":"/posts/ecs-on-fargate-deployment-tools-ver-2022"}},"staticQueryHashes":["251939775","3942705351","401334301"]}