
AWS Fargateとは
AWS Fargate は、
Amazon Elastic Container Service (ECS) と
Amazon Elastic Kubernetes Service (EKS) の両方で動作する、
コンテナ向けサーバーレスコンピューティングエンジンです。
ECSの中でEC2インスタンスの代わりにコンピュートエンジンとして利用されるもので、
コンテナー化されたアプリケーションの構築の際に利用されます。
言い換えると、
EC2を使わずサーバレス(AWSおまかせ)でコンテナを動かす起動タイプの1つです。
ECSを利用する際にコンテナの起動タイプを選ぶ必要があり、EC2とfargateの2つがあります。
fargate を使用すると、アプリケーションの構築に簡単に集中することができます。
つまり、EC2の管理を考えなくてよいのがメリットです。
fargate ではEC2のプロビジョンと管理が不要となり、
アプリケーションごとにリソースを指定してその分のみ料金を支払うことができ、
設計段階からのアプリケーション分離によりセキュリティを強化します。
EC2起動タイプと何が違う?
先ほど、述べたとおり、fargateはサーバレスでコンテナを動かす、ECSの起動タイプの1つです。
EC2のプロビジョニングなどの作業を省いてくれます。
fargateのメリット
- EC2の管理(プロビジョニング、負荷分散)など必要なし
- 自動的にスケーリングしてくれる
- 設定をすれば、コンテナを自動的に増やしてくれる
fargateのデメリット
コンテナ内でエラーが起きてもらわからない。
しかし、AWSが管理してくれるのでこの点は問題なし。
fargateの構成要素
- クラスター
- 複数作成が可能
- どういうコンテナをどこへ配置するのかがカギ
- サービス
- タスクをまとめて管理する単位
- クラスタ内に、複数作ることが可能
- 特定のコンテナの集合体(管理別のコンテナ集合体)
- サービス同士は依存しない
- タスク
- サービスの中に、1つ以上入っているもの
- 1つ以上の任意のコンテナ
- タスク定義から起動されたもの
- タスク同士は同じもの
- 負荷がかかるとfargateはタスクを増やす(自動スケーリング)
- タスク定義
- コンテナを起動するタスクを定義するもの
- タスク定義を見れば、どういうコンテナが動いているかわかる
- docker-compose.ymlと同じ役割を果たすもの
- 例:コンテナ1(MySQL)、コンテナ2(PHP)などを結びつける役割を果たす
- 定義するもの
- どんなコンテナなのか
- どんなスペックなのか
- ログは?
- マウントは?