Fargate

【VPC内リージョンサービス】

Fargateは、サーバーレスコンテナ の実行基盤であり、ECS(Elastic Container Service)/EKS(Elastic Kubernetes Service) の 起動タイプ のひとつとして利用できます。

インフラの管理を行うことなくタスクやPod(EKS上のコンテナ実行の最小単位)を起動し、タスクサイズ(CPU/メモリ単位) で課金されます。

オンデマンドスケーリングにより、負荷やリクエスト量に応じて自動的にスケールし、従量課金モデルで、使用した分だけコストが発生します。

IAM(Identity and Access Management)ロール によるアクセス制御、SG(Security Group)による通信制御を備え、EFS(Elastic File System) や EBS(Elastic Block Store) と連携して永続ストレージを利用できます。

アプリケーションの公開には ALB(Application Load Balancer)/NLB(Network Load Balancer) を通じたルーティングが可能で、App Mesh と統合することでサービス間通信の監視やトラフィック制御も行えます。

重要用語

関連サービス

ユースケース

サーバーレスなコンテナ実行基盤EC2インスタンスを自分で用意せずに、コンテナイメージだけを指定してアプリケーションを実行し、インフラ管理の負担を減らす。
スパイクトラフィック対応のAPI基盤アクセスが急増しやすいAPIをFargate上のECSやEKSで動かし、自動スケーリングによりピーク時のみリソースを増やす構成をとる。
短時間ジョブのオンデマンド実行数分〜数十分で終わるデータ変換やバッチ処理をFargateタスクとして必要なときだけ起動し、常時サーバーを立てっぱなしにしない。

ベストプラクティス

適切なvCPUとメモリ設定コンテナの負荷に応じてリソースサイズをチューニングし、コストと性能を最適化する。
タスクレベルのセキュリティグループタスクに専用のセキュリティグループを割り当てて通信制御を行う。
スポットFargateの活用検討中断許容ワークロードではFargate Spotでコスト削減を図る。

高可用性・バックアップ・リトライ

高可用性・バックアップ・リトライ設計のポイント
マルチAZ(複数 AZ にまたがるサブネットを選択、desiredCount を AZ 数以上)
Service Auto Scaling(ターゲット追跡/ステップスケーリング)

ログ・監視

ログ出力先ログの種類
CloudWatch Logsコンテナログ
CloudWatch Logs優先の原則
標準メトリクス
メトリクス名説明
NetworkRxBytes受信バイト
NetworkTxBytes送信バイト
StorageReadBytesストレージ読み取りバイト
StorageWriteBytesストレージ書き込みバイト
CPUUtilizationCPU使用率
MemoryUtilizationメモリ使用率

制限値(固定値/ハードリミット/ソフトリミット)

固定値制限値
タスク実行時間制限なし

ハードリミット制限値
タスクあたりの最大CPU16 vCPU
タスクあたりの最大メモリ120 GiB

ソフトリミット制限値
同時On-Demand タスク数500(デフォルト)
同時Spot タスク数500(デフォルト)
タスク起動速度100タスク(バースト)、20タスク/秒(持続)
RunTask API(Fargate)20呼び出し/秒

AWS CLIのサンプルコード

CloudFormationのサンプルコード

Terraformのサンプルコード

料金計算

課金項目説明
vCPU使用したvCPUの時間
メモリ使用したメモリの時間
ストレージエフェメラルストレージ(20GB超過分)
料金計算ツール

公式ページ

AWSドキュメント Fargate