【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 | ストレージ書き込みバイト |
| CPUUtilization | CPU使用率 |
| MemoryUtilization | メモリ使用率 |
制限値(固定値/ハードリミット/ソフトリミット)
| ハードリミット | 制限値 |
|---|
| タスクあたりの最大CPU | 16 vCPU |
| タスクあたりの最大メモリ | 120 GiB |
| ソフトリミット | 制限値 |
|---|
| 同時On-Demand タスク数 | 500(デフォルト) |
| 同時Spot タスク数 | 500(デフォルト) |
| タスク起動速度 | 100タスク(バースト)、20タスク/秒(持続) |
| RunTask API(Fargate) | 20呼び出し/秒 |
AWS CLIのサンプルコード
CloudFormationのサンプルコード
Terraformのサンプルコード
料金計算
| 課金項目 | 説明 |
|---|
| vCPU | 使用したvCPUの時間 |
| メモリ | 使用したメモリの時間 |
| ストレージ | エフェメラルストレージ(20GB超過分) |
料金計算ツール
公式ページ
AWSドキュメント Fargate