AWS Fargate
サーバーレスコンテナ
EC2 を管理せずに ECS/EKS のコンテナを実行する基盤です。task ごとに CPU/RAM を宣言するだけです。
- コスト$$ ふつう
- 難易度●●●●●
- 未使用でも課金?はい
- サーバーレス
- 出題試験SAA · DVA · SOA
たとえるならトラックを自分で買う代わりに、宅配サービスで荷物を送るようなものです。
Fargate はシステムのどこにある?
Fargate を呼び出す
具体例でステップごとに
- 1 回の処理に約 40 分かかる動画処理ワーカーがあり、Lambda には長すぎます。
- ワーカーをコンテナにまとめ、タスクに 2 vCPU とメモリ 4 GB が必要だと定義します。
- 新しい動画が届くと ECS が Fargate でタスクを実行します。マシンの選択も OS のパッチもクラスターの管理も不要です。
- タスクが終わると停止し、料金は 2 vCPU・4 GB を 40 分使った分だけです。
- 急がない動画は Fargate Spot で実行し、たまに中断されてやり直すことを受け入れる代わりに大幅に安くします。
いつ使う?
✓ 使うべき場面
パッチ適用やサーバーの scale をせずにコンテナを実行したい場合。
✗ 避けるべき場面
特殊な GPU が必要、または非常に大きく安定した負荷でコストを最適化したい → EC2 上の ECS/EKS。
よくある使い方
- サーバーを管理せずにコンテナを実行
- コンテナ形式の短時間タスクや定期タスク
- 負荷が変動するワークロード、少人数の運用チーム
Fargate・Lambda・EC2 の違い
料金はいくら?
- 課金方式: vCPU 時間(約 $0.04048)とメモリ GB 時間(約 $0.004445)単位で、秒課金(最低 1 分)。Fargate Spot は最大約 70% 安くなります。
- 無料枠: なし。
大きく安定した負荷では EC2 より高い。NAT Gateway 経由で image を pull する。一時ストレージが 20 GB を超えると追加課金。
「コンテナ」+「サーバー管理不要」なら Fargate です。15 分を超える処理をサーバーレスで動かしたいなら Lambda ではなく Fargate です。GPU が必要な場合や、大規模で安定した負荷のコストを最適化したい場合は EC2 です。
本番の試験問題に挑戦
1A company is running a multi-tier web application on premises. The web application is containerized and runs on a number of Linux hosts connected to a PostgreSQL database that contains user records. The operational overhead of maintaining the infrastructure and capacity planning is limiting the company's growth. A solutions architect must improve the application's infrastructure. Which combination of actions should the solutions architect take to accomplish this? (Choose two.)
- AMigrate the PostgreSQL database to Amazon Aurora.
- BMigrate the web application to be hosted on Amazon EC2 instances.
- CSet up an Amazon CloudFront distribution for the web application content.
- DSet up Amazon ElastiCache between the web application and the PostgreSQL database.
- EMigrate the web application to be hosted on AWS Fargate with Amazon Elastic Container Service (Amazon ECS).
答えを見る
正解: A, E
データベースを Aurora(マネージドサービス)に移し、コンテナを ECS と Fargate で動かせば、運用するサーバーもキャパシティ計画も不要になります。EC2 に移すと、マシンの管理は自分で続けることになります。
2A company's near-real-time streaming application is running on AWS. As the data is ingested, a job runs on the data and takes 30 minutes to complete. The workload frequently experiences high latency due to large amounts of incoming data. A solutions architect needs to design a scalable and serverless solution to enhance performance. Which combination of steps should the solutions architect take? (Choose two.)
- AUse Amazon Kinesis Data Firehose to ingest the data.
- BUse AWS Lambda with AWS Step Functions to process the data.
- CUse AWS Database Migration Service (AWS DMS) to ingest the data.
- DUse Amazon EC2 instances in an Auto Scaling group to process the data.
- EUse AWS Fargate with Amazon Elastic Container Service (Amazon ECS) to process the data.
答えを見る
正解: A, E
Kinesis Data Firehose はサーバー管理なしでストリーミングデータを取り込みます。30 分かかるジョブは Lambda の 15 分の上限を超えるので、ECS と Fargate で処理します。EC2 の Auto Scaling はサーバーレスではありません。
よくある質問
Fargate と ECS の違いは何ですか?
ECS(または EKS)はコンテナを管理するオーケストレーターです。Fargate はサーバーを管理せずにコンテナを動かす実行環境です。つまり、何を動かすかを ECS で記述し、マシンの管理を AWS に任せるために Fargate を選びます。
Fargate を使うべきでないのはどんなときですか?
GPU や特殊なマシン構成が必要なとき、OS に深くアクセスする必要があるとき、または EC2(特に Savings Plans やスポット)で動かすほうが安くなる大規模で安定したワークロードのときです。
Fargate の料金はどのように決まりますか?
タスクやポッドが要求する vCPU とメモリに応じて、実行中の時間を秒単位で課金します。Fargate Spot は大幅に安くなりますが、AWS がキャパシティを必要とするとタスクが停止されることがあります。
AWS 認定試験では Fargate について何が問われますか?
サーバーを管理せずにコンテナを動かしたい場面や、Lambda との比較(15 分を超える処理には Fargate)、コストと制御の観点での EC2 起動タイプとの比較などです。