MENU

AWS Fargate — サーバを意識しないコンテナ実行基盤

AWS Fargate アイキャッチ
AWS Fargate

AWS Fargateは、2017年11月のre:Inventで発表されたサーバレスコンテナ実行サービスで、ECSとEKSの「起動タイプ」のひとつとして提供されています。従来のコンテナ運用ではEC2インスタンスを自分で用意し、OSのパッチやキャパシティ計画を行う必要がありましたが、Fargateを選ぶとAWSがその下回りを完全に隠蔽し、利用者はvCPUとメモリサイズだけを指定して使えるようになります。課金は1秒単位の利用時間ベースで、Spot価格相当のFargate Spotも提供されており、開発からバッチまで幅広い場面で「ノード管理から解放されたい」需要に応える基盤です。

目次

この記事の目次

  1. Firecrackerと隔離単位の設計
  2. 2017年発表から標準オプションへ
  3. ノード管理を消すための主な使い方
  4. EC2モード・Lambdaとの比較
  5. まとめ

Firecrackerと隔離単位の設計

Firecrackerと隔離単位の設計

Fargateは内部で、AWSが2018年に公開したオープンソースの軽量仮想化技術Firecrackerを使い、タスクごと(あるいはPodごと)に独立した軽量VMを起動する仕組みになっています。コンテナをVM境界で隔離するため、マルチテナント環境でも他顧客との干渉を心配せずに使える点が、従来のEC2上Dockerと大きく異なるところです。Firecrackerは125msほどでVMを起動でき、Fargateの「秒単位で立ち上がるサーバレス感」を技術的に支えています。

ECS版FargateはECSのタスク単位、EKS版FargateはKubernetesのPod単位で1つの軽量VMが対応します。そのため、同じノード上に複数Podを詰め込んで密に配置する従来のK8sノードと比べると、リソース効率はやや落ちる代わりに、隔離性とノード管理の不要さが大きな利点となっています。vCPUは0.25〜16コア、メモリは0.5〜120GiBの範囲で1秒単位で課金され、必要なだけ確保して使える設計です。

2017年発表から標準オプションへ

2017年発表から標準オプションへ

Fargateは2017年11月のre:Inventで、ECSの新しい起動タイプとして発表されました。発表当時はAWS Lambdaがすでに人気を集めていましたが、Lambdaは関数単位・15分制限・実行環境制約が強かったため、「コンテナイメージそのままでサーバレスを使いたい」需要に応える位置付けで投入されました。

2019年12月にはEKS対応が発表され、Kubernetes利用者もノード管理なしでPodを動かせるようになります。2020年にはFargate Spotが追加され、最大70%安い価格で割り込み可能なタスクとして使えるようになり、バッチ用途への普及が加速しました。2024年以降はAWS製ArmプロセッサGravitonベースのFargateが選択肢として広まり、コストパフォーマンス比をさらに改善しています。ECS・EKSの双方で標準的に利用される起動タイプとなり、「サーバレスコンテナ」という言葉はAWSの世界ではFargateを指すのが半ば常識化しました。

ノード管理を消すための主な使い方

ノード管理を消すための主な使い方

Fargateの代表的な使い方は、トラフィックの予測が難しいAPIサーバや、夜間だけ走るバッチ処理です。Auto Scalingでタスク数を増減するだけで、裏側のサーバ容量を心配する必要がなく、コストもタスクが動いた時間分だけに収まります。ステージング環境やPoCでは「使わないときは止めれば良い」割り切りが効くため、Fargateで立ち上げてSpotで動かすパターンも一般的です。

セキュリティ要件が厳しいマルチテナント基盤でも、Firecrackerによる強い隔離が安心材料になります。他テナントのコンテナと同居しているEC2を共有することへの懸念がなくなり、コンプライアンス審査も通しやすくなります。AWS Step Functionsと組み合わせてイベント駆動でタスクを起動するパターンや、SQSキューにメッセージが入ったときだけFargateタスクで処理する構成も典型例で、Lambdaでは扱えない長時間処理(最大数時間)にちょうど良い守備範囲を持ちます。

EC2モード・Lambdaとの比較

EC2モード・Lambdaとの比較

EC2起動タイプはノードを自前で管理する代わりに、Spotを含む多様なインスタンスタイプを使え、1ノードに多数のタスクを詰め込めるためコスト効率は最も良いケースが多くなります。ただし、AMI管理・パッチ適用・キャパシティ計画の運用コストが乗ります。Fargateはこの運用負担を消す代わりに、リソース単価が若干高く、コンテナを密に詰めることはできません。

Lambdaは関数単位の超短時間処理(15分以内)で更に運用が軽く、Fargateの守備範囲(数分〜数時間の処理)とは住み分けています。「短く済む処理はLambda、それより長いコンテナ処理はFargate、コスト最適化が最重要ならEC2モード」という三層構造で選べば、AWSのコンテナ運用は概ね整理できます。Beanstalkはアプリのデプロイ体験寄りで、内部でEC2/コンテナを束ねるためFargateとは抽象レイヤーが異なる選択肢です。

まとめ

AWS Fargateは2017年発表のサーバレスコンテナ実行基盤で、ECS・EKS双方の起動タイプとして使えます。内部のFirecracker軽量VMによる強い隔離と、vCPU・メモリの秒単位課金により、ノード管理から解放されたコンテナ運用を実現しました。SpotやGravitonの追加でコスト面も改善し、「サーバレスコンテナ」の代名詞として現在のAWSコンテナ運用の標準オプションに位置付けられています。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次