はじめに
こんにちは。アメリカ在住で独学エンジニアを目指している Taira です。
本日は ECS について記事を書いていきたいと思います。
AWS で CD を考えている方は必ず知っておく必要がある内容です。
✅ ECS とは?
ECS (Elastic Container Service) は、AWS が提供する コンテナ実行・管理サービス です。Docker などで作成したコンテナイメージを ECS 上でスケーラブルに動かせることができます。
主な特徴
| 特徴 | 内容 |
|---|---|
| マネージド | ECS 自体のインストールや運用は不要 |
| スケーラブル | タスク数やインスタンス数を自由に変更可能 |
| 実行機構 | EC2 もしくは Fargate で実行 |
| AWS 連携 | IAM、CloudWatch、ALB などとの連携が容易 |
💠 ECS の実行モード
EC2 モード
- EC2 を自分で管理
- コスト抜きに遅延があるが、詳細設定可能
Fargate モード
- EC2 不要!サーバーレスな実行
- (実行したいコンテナの CPU、メモリを指定するだけ)
- 最初は早く簡単に始められる
料金のことを考えなければ Fargate を使用するべきですが、無料枠の中で作業したい方は ECS on EC2 のほうがよさそうです
🔄 ECS の構成要素
| 用語 | 概要 |
|---|---|
| タスク定義 | 実行するコンテナのレシピ (Docker イメージや環境変数など) |
| タスク | タスク定義から生まれる実行単位 |
| サービス | タスクを定数立ち上げ管理する |
| クラスタ | タスクやサービスをまとめる単位 |
📦 コンテナ実行の流れ
- Docker イメージを ECR に Push
- ECS でタスク定義を作成
- サービスを作って定数起動
- ALB やセキュリティグループの設定
- デプロイ完了
🤔 ECS と EKS の違い
| 項目 | ECS | EKS |
|---|---|---|
| 提供元 | AWS 独自 | Kubernetes 基盤 (OSS) |
| 学習コスト | 低め | 高め (クラスター、Pod などの理解が必要) |
| 自由度 | 限定あり | 高い (プラグイン等の実装可) |
| コスト | 低め (Fargate 利用時) | 高め |
| 初心者向け | ⭐⭐⭐⭐⭐ | ⭐⭐ |
【補説】EKS とは
EKS (Elastic Kubernetes Service) は、AWS が提供する「マネージド Kubernetes サービス」です。
- 複数クラウドやオンプレ間での運用に適す
- より高度な構成とカスタマイズが可能
- ただし、学習コストや運用コストは高め
🏆 ECS はこんな人にオススメ
- Rails や Node.js のアプリを Docker 化して動かしたい
- サーバーレスに近い構成をとりたい
- AWS 上で完結させたい
- 初めてコンテナを扱う
📝 まとめ
| ポイント |
|---|
| ECS は、AWS のコンテナ管理サービス |
| EC2/Fargate の 2 モードがある |
| Fargate はサーバーレスで手軽 |
| EKS は、より高度な運用向け Kubernetes サービス |
| 初心者には ECS (Fargate) がおすすめ |