Skip to content
Latchkey

AWS Fargate とは?AWS のサーバーレスコンテナ

AWS Fargate はコンテナ向けのサーバーレス compute エンジンです。task ごとに CPU とメモリを指定すると、AWS が基盤となるキャパシティをプロビジョニングして実行します。

ECS や EKS では、通常は誰かがコンテナをホストするための EC2 インスタンスのフリートを管理します。Fargate はその仕事を取り除きます。各 task が必要とするものを定義すれば、Fargate が AWS のプロビジョニング・パッチ適用済みキャパシティ上で実行します。サイジング、スケール、セキュリティ確保が必要なノードはありません。

Fargate は EC2 launch とどう違うか

EC2 launch type ではインスタンスに料金を払い管理し、task をそこへ詰め込みます。Fargate では task が要求した CPU とメモリの分だけを task 単位で支払います。ノードのフリートがないため、キャパシティプランニング、OS のパッチ適用、bin-packing を気にする必要がありません。

task 単位の分離

各 Fargate task は独自のカーネル境界を持つ独立した環境で実行されるため、共有ホスト上の co-tenant なコンテナよりも強い分離が得られます。これはマルチテナントやセキュリティに敏感な workload にとって重要です。

トレードオフ

  • 運用のオーバーヘッドが少なく、管理するサーバーがない。
  • task 単位の料金は、密に詰め込んだ EC2 より高くつくことがある。
  • ホストやインスタンスタイプへの制御が少ない。
  • スパイクの多い、バースト的な、あるいは低運用の workload に最適。

ECS と EKS で動作する

Fargate は launch type であり、別個のオーケストレーターではありません。ECS の task definition や EKS の pod は引き続き定義し、Fargate はただ compute を供給します。つまり同じ cluster 内で Fargate と EC2 のキャパシティを混在させられます。

CI/CD での役割

パイプラインはイメージを ECR へプッシュし、Fargate 向けに構成された ECS サービスを更新します。AWS はデプロイ時に task の compute をプロビジョニングします。ノードのフリートがないためデプロイはより単純で、事前にスケールしておくものもありません。認証には通常の IAM/OIDC role を使います。

重要なポイント

  • Fargate はコンテナをサーバーレスに実行し、管理すべきノードなしで task 単位に compute をサイジングします。
  • 別個のシステムではなく、ECS と EKS の launch type として機能します。
  • パイプラインは ECR へプッシュし、Fargate ベースのサービスを更新することでデプロイします。

関連ガイド