はじめに
現在、受講しているITスクールのハッカソン活動の一環として、AWS環境への本番デプロイを行うことになりました。その際、EC2ではなく ECS on Fargate を採用することを決定しました。
前回の記事でも紹介しているので、ぜひ参考にしてみてください。
本記事は個人的な備忘録としてのメモですが、最後まで温かい目で見守っていただけると嬉しいです。
今回作成したAWS構成図について
詳細は割愛しますが、今回は受講しているITスクールで、以下のようなAWSインフラ構成をコード化しています。
Terraformによる実装も完了しており、以下の記事でコードの全体像をご紹介しています。
ECS on Fargateとは?
ECS on Fargateは、AWSが提供するサーバーレスコンテナ実行環境です。
引用画像:https://www.simform.com/blog/aws-fargate-pricing/
従来のECSではEC2インスタンスを管理する必要がありましたが、Fargateを利用するとEC2のプロビジョニングや管理が不要になります。
ECS on Fargateのメリット
インフラ管理不要
- EC2インスタンスの管理が不要になり、OSのパッチ適用やセキュリティ対応が不要
- 必要なリソースだけを指定すれば、自動的に適切なコンピューティングリソースが割り当てられる
スケーリングが容易
- タスク単位でのスケーリングが可能(EC2のようにインスタンスの起動・停止を気にする必要なし)
- AWS Auto Scaling と統合すれば、トラフィックに応じて自動でスケールアップ・ダウン
コスト最適化
- 使用した分だけ課金(EC2のようにインスタンスを常時起動する必要なし)
- 短時間のバッチ処理やイベント駆動型のワークロードにも最適
ネットワークのシンプル化
- タスクごとに ENI(Elastic Network Interface) を割り当て可能
- ALB(Application Load Balancer) や NLB(Network Load Balancer) と簡単に統合
CI/CDとの統合が簡単
- AWS CodePipeline、CodeBuild、CodeDeploy と連携し、コンテナの自動デプロイが可能
- Dockerイメージを ECR(Elastic Container Registry) に保存し、ECS on Fargateへ簡単にデプロイ
ECS on Fargateを使うべきケース
シナリオ | Fargateのメリット |
---|---|
EC2管理をなくしたい | サーバーレスで運用できる |
スケールを柔軟にしたい | タスク単位で自動スケール |
コストを最適化したい | 使用分のみの従量課金 |
CI/CDを導入したい | AWSのCI/CDサービスと統合可能 |
イベント駆動のワークロード | 短時間の処理に最適 |
結論:ECS on Fargateはどんなときに最適?
- EC2の管理負担をなくしたい
- スケーリングを自動化したい
- 一時的なワークロード(バッチ処理、イベント駆動)を効率的に実行したい
- AWSのマネージドサービスとの連携をスムーズにしたい
Fargateを使うことで、インフラ管理の負担を減らし、よりアプリ開発に集中できる環境を実現できます。
まとめ
ここまで読んでいただき、ありがとうございました。体系的にまとめることで、ECS on Fargateがどんなときに最適なのか を自分の中で明確に言語化できました。
今後も、このような基礎的な内容について わかりやすく整理していこう と思います。