AWS Fargate によるサーバーレスコンテナ - ECS と EKS での活用パターン

Fargate による ECS ・ EKS でのサーバーレスコンテナ実行、リソース設定、ネットワーキングの設計を解説します。

Fargate の実行モデル

Fargate はコンテナ向けのサーバーレスコンピュートエンジンで、EC2 インスタンスのプロビジョニングや管理が不要です。ECS on Fargate ではタスク定義で vCPU (0.25 - 16 vCPU) とメモリ (0.5 - 120 GB) の組み合わせを指定します。EKS on Fargate では Fargate プロファイルを作成し、namespace とオプションのラベルセレクターで Fargate で実行する Pod の条件を定義します。条件に合致する Pod がスケジュールされると、Fargate が自動的にコンピュートリソースをプロビジョニングします。各タスクまたは Pod は独立した Firecracker マイクロ VM で実行され、カーネルレベルの分離を提供します。

ネットワーキングとコスト最適化

Fargate タスクは awsvpc ネットワークモードで動作し、各タスクに専用の ENI が割り当てられます。これによりタスク単位でセキュリティグループを適用でき、VPC 内の他のリソースとプライベート通信が可能です。Fargate Spot はスポットインスタンスと同様の仕組みで、中断耐性のあるバッチ処理やキュー処理ワークロードを最大 70% 割引で実行できます。ECS のキャパシティプロバイダー戦略で Fargate と Fargate Spot の比率を指定し、コストと可用性のバランスを制御します。エフェメラルストレージは最大 200 GB まで拡張可能です。

まとめ

Fargate は ECS と EKS の両方でサーバーレスコンテナ実行を提供し、インフラ管理の負荷を排除します。awsvpc ネットワークモードによるタスク単位のネットワーク制御と、Fargate Spot によるコスト最適化が設計のポイントです。

AWS の優位点

  • EC2 インスタンスの管理が不要で、タスクまたは Pod 単位で CPU とメモリを指定するだけでコンテナを実行できる
  • ECS on Fargate ではタスク定義で vCPU とメモリの組み合わせを指定し、Fargate が自動的にインフラをプロビジョニングする
  • EKS on Fargate では Fargate プロファイルで namespace とラベルセレクターを定義し、条件に合致する Pod を自動的に Fargate で実行する
  • awsvpc ネットワークモードで各タスクに ENI が割り当てられ、セキュリティグループによるタスク単位のネットワーク制御が可能になる
  • Fargate Spot で中断耐性のあるワークロードを最大 70% 割引で実行できる

この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

同じテーマの記事

コンテナデプロイの簡素化 - AWS App Runner で実現するゼロ設定デプロイ AWS App Runner を使ったコンテナ Web アプリケーションのデプロイ方法を解説。ECS/Fargate との使い分け、自動スケーリング、VPC 統合、CI/CD パイプラインとの連携まで実践的に紹介します。 AWS App Runner で最速のコンテナデプロイ - ソースコードから本番環境まで数分で App Runner によるソースコードまたはコンテナイメージからの自動デプロイ、オートスケーリング、VPC 接続の設定を解説します。 AWS App Runner でコンテナ Web アプリを即座にデプロイ - ソースコードからの自動ビルドと HTTPS 公開 App Runner によるコンテナアプリケーションのデプロイ、自動スケーリング、カスタムドメインの設定を解説します。 コンテナ最適化 OS - Bottlerocket でコンテナホストのセキュリティと運用を強化する AWS Bottlerocket を使ったコンテナホストの最適化を解説。最小限の OS 設計、自動更新、不変インフラ、ECS/EKS との統合を紹介します。 Amazon ECR のコンテナイメージ管理 - ライフサイクルポリシーとイメージスキャン ECR のプライベートリポジトリ管理、ライフサイクルポリシーによるイメージクリーンアップ、イメージスキャンの運用を解説します。 Amazon ECS によるコンテナオーケストレーション - タスク定義とサービス設計 ECS のタスク定義、サービス設計、デプロイ戦略、Auto Scaling の設定パターンを解説します。 コンテナオーケストレーション - Amazon EKS で実現する Kubernetes 運用の最適化 Amazon EKS を活用した Kubernetes のマネージド運用を解説します。 AWS Fargate によるサーバーレスコンテナ運用 - ECS と EKS での活用パターン Fargate によるサーバーレスコンテナの運用、ECS と EKS での使い分け、タスクサイジングとコスト最適化の手法を解説します。