Capacity Provider
ECSのタスクを実行するインフラを決定するもの
Capacity Provider strategy
複数のCapacity Providerをタスクにどのように適用するかの組み合わせ方法
キャパシティープロバイダーを使用して、クラスター内のタスクで使用するインフラストラクチャを管理できます。各クラスターには、1 つ以上のキャパシティープロバイダーがあり、さらにオプションとして、デフォルトのキャパシティープロバイダー戦略がある。
キャパシティープロバイダー戦略は、
クラスターの複数のキャパシティープロバイダー間にタスクを分散する方法
を決定します。
スタンドアロンタスクを実行するか、サービスを作成するときは、クラスターのデフォルトのキャパシティープロバイダー戦略を使用するか、クラスターのデフォルト戦略をオーバーライドするキャパシティープロバイダー戦略を指定できます。
Capacity Providerの概念
Capacity Providerは以下のコンポーネントで構成されている
Capacity Provider
クラスターに関連付けられ、タスク実行時にタスクのインフラストラクチャを決定する役割をもつキャパシティプロバイダー戦略のなかで使用される。
Fargate
ECS on Fargate では、 FARGATE と FARGATE SPOT の2種類がキャパシティプロバイダーとして選択できる。
これらのキャパシティプロバイダーは事前にAWS側で作成されているものなので、削除はできず、作成する必要もない。
resource "aws_ecs_cluster" "terafform_cluster" {
name = "terraform_cluster"
}
# ここで、クラスターとキャパシティプロバイダーの関連づけをしている
resource "aws_ecs_cluster_capacity_providers" "provider" {
cluster_name = aws_ecs_cluster.terafform_cluster.name
capacity_providers = ["FARGATE", "FARGATE_SPOT"]
}
EC2
Amazon EC2 で Amazon ECS を使用している場合、キャパシティープロバイダーは、
- キャパシティープロバイダー名
- Auto Scaling グループ
- マネージドスケーリングおよびマネージド終了保護の設定
で構成される
マネージドスケーリングでは、Amazon ECS はクラスターのインフラストラクチャに自動スケーリングを提供する Auto Scaling グループのスケールインアクションとスケールアウトアクションを管理します。
詳細は、Auto Scaling グループキャパシティープロバイダー
デフォルトのキャパシティープロバイダー戦略
カスタムキャパシティープロバイダー戦略または起動タイプが指定されていない場合に、クラスター内でサービスの作成またはスタンドアロンタスクの実行に使用されるキャパシティープロバイダー戦略が決まる。
各クラスターのデフォルトのキャパシティープロバイダー戦略を定義することがベストプラクティスと考えられている。
タンドアロンタスク:サービスを作成せず、クラスター内で直接実行されるタスク
キャパシティープロバイダー戦略
デフォルトのキャパシティープロバイダーでは、ニーズが満たせない場合に、サービスまたはスタンドアロンタスクに指定するキャパシティプロバイダー戦略。
キャパシティープロバイダー戦略では、クラスターに既に関連付けられており、ACTIVE
または UPDATING
ステータスを持つキャパシティープロバイダーのみを使用できます。
キャパシティープロバイダー戦略は、1 つ以上のキャパシティープロバイダーで構成される。
BaseとWeightを指定することで、きめ細かいキャパシティプロバイダーの操作が可能。