翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
サービス定義パラメータ
サービス定義は、Amazon ECS サービスの実行方法を定義します。サービス定義では、次のパラメータを指定できます。
起動タイプ
launchType
-
タイプ: 文字列
有効な値:
EC2
|FARGATE
|EXTERNAL
必須: いいえ
サービスを実行する起動タイプ。起動タイプを指定しない場合は、デフォルトで
capacityProviderStrategy
が使用されます。詳しくは、「Amazon ECS 起動タイプ」を参照してください。launchType
を指定した場合、capacityProviderStrategy
パラメータを省略する必要があります。
キャパシティープロバイダー戦略
capacityProviderStrategy
-
型: オブジェクトの配列
必須: いいえ
サービスに使用するキャパシティープロバイダー戦略。
キャパシティープロバイダー戦略は、1 つ以上のキャパシティープロバイダーと、それらに割り当てる
base
とweight
で構成されます。キャパシティープロバイダーは、キャパシティープロバイダー戦略で使用するクラスターに関連付ける必要があります。 PutClusterCapacityProviders API は、キャパシティープロバイダーをクラスターに関連付けるために使用されます。ACTIVE
またはUPDATING
ステータスのキャパシティープロバイダーのみを使用できます。capacityProviderStrategy
を指定した場合、launchType
パラメータを省略する必要があります。capacityProviderStrategy
またはlaunchType
を指定しない場合は、クラスターのdefaultCapacityProviderStrategy
が使用されます。Auto Scaling グループを使用するキャパシティープロバイダーを指定する場合は、キャパシティープロバイダーが既に作成されている必要があります。 CreateCapacityProvider API オペレーションを使用して、新しいキャパシティープロバイダーを作成できます。
AWS Fargate キャパシティープロバイダーを使用するには、
FARGATE
またはFARGATE_SPOT
キャパシティープロバイダーのいずれかを指定します。 AWS Fargate キャパシティープロバイダーはすべてのアカウントで利用でき、クラスターに関連付けるだけで使用できます。PutClusterCapacityProviders API オペレーションは、クラスターの作成後にクラスターで使用可能なキャパシティープロバイダーのリストを更新するために使用されます。
capacityProvider
-
型: 文字列
必須: はい
キャパシティープロバイダーの短縮名または完全な Amazon リソースネーム (ARN)。
weight
-
タイプ: 整数
有効な範囲: 0~1,000 の整数。
必須: いいえ
ウエイト値は、指定したキャパシティープロバイダーを使用する起動済みタスクの総数に対する相対的な割合を示します。
例えば、2 つのキャパシティープロバイダーを含む戦略があり、両方の重みが 1 であるとします。ベースが満たされると、タスクは 2 つのキャパシティープロバイダー間で均等に分割されます。同じロジックを使用して、capacityProviderA に 1 の重みを指定し、capacityProviderB に 4 の重みを指定するとします。その後、capacityProviderA を使用して実行される 1 つのタスクごとに、4 つのタスクが capacityProviderB を使用します。
base
-
タイプ: 整数
有効な範囲: 0~100,000 の整数。
必須: いいえ
ベース値は、指定されたキャパシティープロバイダーで実行するタスクの最小限の数を指定します。キャパシティープロバイダー戦略では、ベースを定義できるキャパシティープロバイダーは 1 つだけです。
タスク定義
taskDefinition
-
タイプ: 文字列
必須: いいえ
family
とrevision
(family:revision
)、またはサービスで実行されるタスク定義の完全な Amazon リソースネーム(ARN)。revision
を指定しない場合、指定したファミリーの最新のACTIVE
リビジョンが使用されます。ローリングアップデート (
ECS
) デプロイメントコントローラーを使用する場合は、タスク定義を指定する必要があります。
プラットフォームオペレーティングシステム
platformFamily
-
タイプ: 文字列
必須: 条件による
デフォルト: Linux
このパラメータは Fargate でホストされている Amazon ECS サービスに必要です。
Amazon EC2 でホストされている Amazon ECS サービスでは、このパラメータは無視されます。
サービスを実行するコンテナ上のオペレーティングシステム。有効な値は、
LINUX
、WINDOWS_SERVER_2019_FULL
、WINDOWS_SERVER_2019_CORE
、WINDOWS_SERVER_2022_FULL
、およびWINDOWS_SERVER_2022_CORE
です。サービスに指定するすべてのタスクの
platformFamily
値は、サービスplatformFamily
値と一致する必要があります。例えば、platformFamily
をWINDOWS_SERVER_2019_FULL
に設定すると、すべてのタスクのplatformFamily
値はWINDOWS_SERVER_2019_FULL
でなければなりません。
プラットフォームバージョン
platformVersion
-
タイプ: 文字列
必須: いいえ
サービス内のタスクが実行されているプラットフォームのバージョン。プラットフォームのバージョンは、Fargate 起動タイプを使用するタスクに対してのみ指定されています。指定されない場合、デフォルトで最新バージョン (
LATEST
) が使用されます。AWS Fargate プラットフォームのバージョンは、Fargate タスクインフラストラクチャの特定のランタイム環境を参照するために使用されます。プラットフォームのバージョンに
LATEST
を指定してタスクを実行またはサービスを作成すると、プラットフォームの最新バージョンをタスクで利用できるようになります。サービスをスケールアップする場合は、これらのタスクには、サービスの最新のデプロイで指定されたプラットフォームのバージョンが提供されます。詳細については、「Fargate Linux プラットフォームのバージョン」を参照してください。注記
プラットフォームのバージョンは、EC2 起動タイプを使用するタスクには指定されません。
クラスター
cluster
-
タイプ: 文字列
必須: いいえ
サービスを実行するクラスターの短い名前または完全な Amazon リソースネーム (ARN)。クラスターを指定しない場合は、
default
クラスターが使用されます。
サービス名
serviceName
-
タイプ: 文字列
必須: はい
サービスの名前。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。サービス名は同じクラスター内で一意になるようにしてください。ただし、リージョン内の複数のクラスター間や複数のリージョンにまたがるクラスター間では、同様の名前のサービスがあっても構いません。
スケジュール戦略
schedulingStrategy
-
タイプ: 文字列
有効な値:
REPLICA
|DAEMON
必須: いいえ
使用するスケジュール戦略。スケジュール戦略が指定されていない場合は、
REPLICA
戦略が使用されます。詳細については、「サービススケジューラの概念」を参照してください。利用できる 2 つのサービススケジューラ戦略があります。
-
REPLICA
- レプリカスケジュール戦略では、クラスター全体で必要数のタスクを配置して維持します。デフォルトでは、サービススケジューラによってタスクはアベイラビリティーゾーン間に分散されます。タスク配置の戦略と制約を使用すると、タスク配置の決定をカスタマイズできます。詳細については、「レプリカ」を参照してください。 -
DAEMON
- デーモンのスケジュール戦略では、指定したすべてのタスク配置制約を満たすクラスター内のアクティブなコンテナインスタンスごとに、1 つのタスクのみをデプロイします。この戦略を使用する場合、タスクの必要数や配置戦略、サービスの自動スケーリングポリシーを指定する必要はありません。詳細については、「デーモン」を参照してください。注記
Fargate タスクは
DAEMON
スケジュール戦略をサポートしていません。
-
必要数
desiredCount
-
タイプ: 整数
必須: いいえ
指定されたタスク定義のインスタンスをサービス内に配置し、実行し続ける数です。
このパラメータは、
REPLICA
スケジュール戦略を使用する場合に必要です。サービスがDAEMON
スケジュール戦略を使用する場合、このパラメータはオプションです。
デプロイ設定
deploymentConfiguration
-
タイプ: オブジェクト
必須: いいえ
デプロイ時に実行されるタスクの数と、タスクの停止および開始の順序を制御するオプションのデプロイパラメータ。
maximumPercent
-
タイプ: 整数
必須: いいえ
サービスでローリング更新 (
ECS
) のデプロイタイプが使用されている場合、maximumPercent
パラメータは、デプロイ時にRUNNING
、STOPPING
、またはPENDING
状態で許可されるサービスのタスクの上限数を表します。これは、最も近い整数に切り捨てられたdesiredCount
のパーセンテージ (%) として表されます。このパラメータを使用して、デプロイのバッチサイズを定義できます。例えば、サービスでREPLICA
サービススケジューラを使用して、desiredCount
が 4 タスク、maximumPercent
の値が 200% とすると、スケジューラは 4 つの古いタスクを停止する前に、4 つの新しいタスクを開始できます。そのために必要なクラスターリソースを使用できることが前提です。REPLICA
サービススケジューラを使用するサービスのデフォルトのmaximumPercent
値は 200% です。サービスで
DAEMON
サービススケジューラタイプを使用している場合、maximumPercent
は 100% のままにする必要があります。これは、デフォルト値です。デプロイ時のタスクの最大数は、
desiredCount
にmaximumPercent
/100 を乗算したもので、最も近い整数値に切り下げられます。サービスが blue/green (
CODE_DEPLOY
) またはEXTERNAL
デプロイのタイプと EC2 起動タイプを使用するタスクのいずれかを使用している場合、maximum percent 値はデフォルト値に設定され、コンテナインスタンスがDRAINING
状態のときにRUNNING
状態のままのタスクの上限数を定義するために使用されます。サービス内のタスクが Fargate 起動タイプを使用する場合、maximum percent 値はサービスを記述するときに返されますが、使用されません。 minimumHealthyPercent
-
タイプ: 整数
必須: いいえ
サービスでローリング更新 (
ECS
) のデプロイタイプが使用されている場合、minimumHealthyPercent
は、デプロイ時にRUNNING
状態に留まる必要があるサービスのタスクの下限数を表します。これは、最も近い整数に切り上げられたdesiredCount
のパーセンテージ (%) として表されます。このパラメータを使用して、追加のクラスターキャパシティーを使用せずにデプロイできます。例えば、サービスでdesiredCount
が 4 タスク、minimumHealthyPercent
が 50% とすると、サービススケジューラは 2 つの新しいタスクを開始する前に、2 つの既存のタスクを停止してクラスターのキャパシティーを解放できます。ロードバランサーを使用しないサービスの場合は、次のことを考慮してください。
-
サービスのタスク内のすべての必須コンテナがヘルスチェックに合格すると、サービスは正常と見なされます。
-
タスクにヘルスチェックが定義された必須コンテナがない場合、サービススケジューラは、タスクが
RUNNING
状態に達した後 40 秒間待ってから、正常性の最小割合の合計にカウントします。 -
タスクに、ヘルスチェックが定義された必須コンテナが 1 つ以上ある場合、サービススケジューラは、タスクが正常ステータスに達するのを待ってから、正常性の最小割合の合計にカウントします。タスク内のすべての必須コンテナがヘルスチェックに合格すると、タスクは正常と見なされます。サービススケジューラが待つことができる時間は、コンテナのヘルスチェックの設定によって決まります。詳細については、「ヘルスチェック」を参照してください。
ロードバランサーを使用するサービスについては、次のことを考慮してください。
-
タスクにヘルスチェックが定義されている必須コンテナがない場合、サービススケジューラは、ロードバランサーターゲットグループのヘルスチェックが正常ステータスを返すのを待ってから、正常性の最小割合の合計にカウントします。
-
タスクにヘルスチェックが定義されている必須コンテナがある場合、サービススケジューラは、タスクが正常なステータスになり、ロードバランサーターゲットグループのヘルスチェックが正常ステータスを返すのを待ってから、タスクを正常性の最小割の合計にカウントします。
レプリカサービスの
minimumHealthyPercent
のデフォルト値は 100% です。サービススケジュールを使用するDAEMON
サービスのデフォルト値はminimumHealthyPercent
、、 SDK AWS CLI、APIs では 0%、 では 50% です AWS Management Console。 AWS SDKsデプロイ時の正常なタスクの最小数は、
desiredCount
にminimumHealthyPercent
/100 を乗算したもので、最も近い整数値に切り上げられます。サービスが Blue/Green (
CODE_DEPLOY
) またはEXTERNAL
デプロイタイプのいずれかを使用していて、EC2 起動タイプを使用するタスクを実行している場合、最小ヘルス率の値はデフォルト値に設定され、コンテナインスタンスがDRAINING
状態のときRUNNING
状態のままのタスクの下限数を定義するために使用されます。サービスが Blue/Green (CODE_DEPLOY
) またはEXTERNAL
デプロイタイプのいずれかを使用していて、Fargate 起動タイプを使用するタスクを実行している場合、最小ヘルス率の値は使用されませんが、サービスの説明時に値が返されます。 -
デプロイメントコントローラー
deploymentController
-
タイプ: オブジェクト
必須: いいえ
サービスで使用するデプロイコントローラータイプ。デプロイメントコントローラーが指定されていない場合は、
ECS
コントローラーが使用されます。詳細については、「Amazon ECS デプロイタイプ」を参照してください。type
-
タイプ: 文字列
有効な値:
ECS
|CODE_DEPLOY
|EXTERNAL
必須: はい
使用するデプロイコントローラータイプ。次の 3 つのデプロイコントローラータイプを使用できます。
ECS
-
ローリング更新 (
ECS
) デプロイタイプでは、コンテナの現在実行されているバージョンを最新バージョンに置き換えられます。ローリング更新中に Amazon ECS がサービスに追加または削除するコンテナの数は、deploymentConfiguration で指定されるように、サービスのデプロイ中に許可される正常なタスクの最小数と最大数を調整することで制御されます。 CODE_DEPLOY
-
Blue/Green (
CODE_DEPLOY
) デプロイタイプは、 による Blue/Green デプロイモデルを使用します。これにより CodeDeploy、本番トラフィックを送信する前に、サービスの新しいデプロイを検証できます。 EXTERNAL
-
サードパーティーのデプロイコントローラーを使用して Amazon ECS サービスのデプロイプロセスを完全に制御することが必要な場合は、外部デプロイタイプを使用します。
タスクの配置
placementConstraints
-
型: オブジェクトの配列
必須: いいえ
サービスのタスクに使用する、配置制約オブジェクトの配列。タスクごとに最大 10 個の制約を指定できます。この制限数には、タスク定義内の制約と、実行時に指定される制約が含まれます。Fargate 起動タイプを使用している場合、タスク配置の制約事項はサポートされません。
type
-
タイプ: 文字列
必須: いいえ
制約のタイプ。特定のグループの各タスクが確実に別のコンテナインスタンスで実行されるようにするには、
distinctInstance
を使用します。選択対象を有効な候補グループに制約するには、memberOf
を使用します。値distinctInstance
はタスク定義ではサポートされていません。 expression
-
タイプ: 文字列
必須: いいえ
制約に適用されるクラスタークエリ言語表現。制約タイプが
distinctInstance
である場合は、式を指定できません。詳細については、「Amazon ECS タスクのコンテナインスタンスを定義する式を作成する」を参照してください。
placementStrategy
-
型: オブジェクトの配列
必須: いいえ
サービスのタスクで使用する配置戦略オブジェクト。サービスごとに最大 4 つの戦略ルールを指定できます。
type
-
タイプ: 文字列
有効な値:
random
|spread
|binpack
必須: いいえ
配置戦略のタイプ。
random
配置戦略は、タスクを利用可能な候補にランダムに配置します。spread
配置戦略は、field
パラメータに基づいて、利用可能候補間で均等にタスクを分散して配置します。binpack
戦略は、field
パラメータで指定したリソースの利用可能量が最も少ない利用可能候補にタスクを配置します。例えば、メモリの binpack 戦略を使用する場合、タスクは残りのメモリの量は最も少ないがタスクを実行するのに十分なインスタンスに配置されます。 field
-
タイプ: 文字列
必須: いいえ
配置戦略を適用するフィールド。
spread
配置戦略では、有効な値はinstanceId
(または同じ効果を持つhost
)、またはattribute:ecs.availability-zone
などのコンテナインスタンスに適用される任意のプラットフォームまたはカスタム属性です。binpack
配置戦略では、有効な値はcpu
およびmemory
です。random
配置戦略では、このフィールドは使用されません。
タグ
-
型: オブジェクトの配列
必須: いいえ
サービスに適用し、サービスの分類と整理に役立つメタデータ。タグはそれぞれ、1 つのキーとオプションの 1 つの値で設定されており、どちらもお客様側が定義します。サービスが削除されると、タグも削除されます。サービスには最大 50 個のタグを適用できます。詳細については、「 Amazon ECS リソースのタグ付け」を参照してください。
key
-
タイプ: 文字列
長さの制限: 最小長は 1 です。最大長は 128 です。
必須: いいえ
タグを構成するキーと値のペアの一部。キーは、より具体的なタグ値のカテゴリのように動作する、一般的なラベルです。
value
-
タイプ: 文字列
長さの制限: 最小長は 0 です。最大長は 256 です。
必須: いいえ
タグを構成するキーと値のペアのオプションの一部。値はタグカテゴリ (キー) の記述子として機能します。
-
型: ブール値
有効な値:
true
|false
必須: いいえ
サービスのタスクに Amazon ECS マネージドタグを使用するか否かを指定します。値を指定しない場合、デフォルトは
false
になります。詳細については、「請求用のリソースにタグを付ける」を参照してください。 propagateTags
-
タイプ: 文字列
有効な値:
TASK_DEFINITION
|SERVICE
必須: いいえ
タグをタスク定義またはサービスからサービスのタスクへコピーするかどうかを指定します。値を指定しない場合、タグはコピーされません。タグは、サービス作成中のサービス内のタスクにのみコピーすることができます。タグをサービス作成後またはタスク作成後のタスクに追加するには、
TagResource
API アクションを使用します。
ネットワーク構成
networkConfiguration
-
タイプ: オブジェクト
必須: いいえ
サービスのネットワーク構成。このパラメータは
awsvpc
ネットワークモードを使用して独自の Elastic Network Interface を受け取るタスク定義の場合に必要です。その他のネットワークモードではサポートされていません。Fargate 起動タイプを使用している場合、awsvpc
ネットワークモードが必要です。Amazon EC2 起動タイプのネットワークの詳細については、「」を参照してくださいAmazon EC2 インスタンス上のタスクのタスクネットワーキング。Fargate 起動タイプのネットワークの詳細については、「Fargate タスクネットワーキング」を参照してください。awsvpcConfiguration
-
タイプ: オブジェクト
必須: いいえ
タスクまたはサービスのサブネットとセキュリティグループを表すオブジェクト。
subnets
-
タイプ:文字列の配列
必須: はい
タスクまたはサービスに関連付けられたサブネット。
awsvpcConfiguration
に従って指定できるサブネットは 16 個に制限されています。 securityGroups
-
タイプ:文字列の配列
必須: いいえ
タスクまたはサービスに関連付けられたセキュリティグループ。セキュリティグループを指定しないと、VPC のデフォルトのセキュリティグループが使用されます。
awsvpcConfiguration
に基づいて指定できるセキュリティグループは 5 つに制限されています。 assignPublicIP
-
タイプ: 文字列
有効な値:
ENABLED
|DISABLED
必須: いいえ
タスクの Elastic Network Interface がパブリック IP アドレスを受け取るかどうかを示します。値を指定しない場合、デフォルト値の
DISABLED
が使用されます。
healthCheckGracePeriodSeconds
-
タイプ: 整数
必須: いいえ
Amazon ECS サービススケジューラが、タスクが
RUNNING
状態になった後で異常な Elastic Load Balancing ターゲットのヘルスチェック、コンテナのヘルスチェック、Route 53 のヘルスチェックを無視する期間 (秒単位)。これが有効であるのは、ロードバランサーを使用するようにサービスが設定されている場合のみです。サービスにロードバランサーを定義している場合、ヘルスチェックの猶予期間値を指定しないと、デフォルト値の0
が使用されます。サービスのタスクで、ヘルスチェックを開始して応答するまでに時間がかかる場合は、ヘルスチェックの猶予期間として最大 2,147,483,647 秒まで指定できます。この間は、ECS サービススケジューラはヘルスチェックのステータスを無視します。この猶予期間により、ECS サービススケジューラがタスクを異常とマークして時間より前に停止することがなくなります。
Elastic Load Balancing を使用しない場合、タスク定義のヘルスチェックパラメータの
startPeriod
を使用することをお勧めします。詳細については、[Health check] (ヘルスチェック) を参照してください。 loadBalancers
-
型: オブジェクトの配列
必須: いいえ
サービスで使用するロードバランサーを表すロードバランサーオブジェクト。Application Load Balancer または Network Load Balancer を使,用するサービスの場合、6 個以上のターゲットグループはアタッチできません。
サービスの作成後にロードバランサーの設定を AWS Management Consoleから変更することはできません。 AWS Copilot、 AWS CloudFormation、 AWS CLI または SDK を使用して、 AWS CodeDeploy ブルー/グリーンまたは外部ではなく、
ECS
ローリングデプロイコントローラーのみのロードバランサー設定を変更できます。ロードバランサー設定を追加、更新、削除すると、Amazon ECS は、更新された Elastic Load Balancing 設定で新しいデプロイを開始します。これにより、タスクがロードバランサーに登録およびロードバランサーから登録解除されます。Elastic Load Balancing 設定を更新する前に、テスト環境でこれを検証することをお勧めします。設定を変更する方法については、「Amazon Elastic Container Service API リファレンス」のUpdateService「」を参照してください。Application Load Balancer および Network Load Balancers では、このオブジェクトには、ロードバランサーターゲットグループ ARN、コンテナ名 (コンテナの定義に表示)、ロードバランサーからアクセスされるコンテナポートが含まれている必要があります。このサービスのタスクがコンテナインスタンスに配置されると、コンテナインスタンスとポートの組み合わせは、指定したターゲットグループのターゲットとして登録されます。
targetGroupArn
-
タイプ: 文字列
必須: いいえ
サービスに関連付ける Elastic Load Balancing ターゲットグループの完全な Amazon リソースネーム (ARN)。
ターゲットグループ ARN は、Application Load Balancer または Network Load Balancer を使用する場合にのみ指定します。
loadBalancerName
-
タイプ: 文字列
必須: いいえ
サービスに関連付けるロードバランサーの名前。
Application Load Balancer または Network Load Balancer を使用している場合は、ロードバランサーの名前パラメータを省略します。
containerName
-
タイプ: 文字列
必須: いいえ
ロードバランサーに関連付けるコンテナの名前 (コンテナ定義に表示)。
containerPort
-
タイプ: 整数
必須: いいえ
ロードバランサーに関連付けるコンテナのポート。このポートは、サービスのタスクが使用しているタスク定義の
containerPort
に対応する必要があります。EC2 起動タイプを使用するタスクの場合、コンテナインスタンスは、ポートマッピングのhostPort
でインバウンドトラフィックを許可する必要があります。
role
-
タイプ: 文字列
必須: いいえ
Amazon ECS によるロードバランサーの呼び出しを許可する IAM ロールの短縮名または完全な ARN。このパラメーターは、サービスの単一のターゲットグループでロードバランサーを使用していて、タスク定義が
awsvpc
ネットワークモードを使用していない場合にのみ許可されます。role
パラメータを指定する場合、loadBalancers
パラメータでロードバランサーのオブジェクトも指定する必要があります。指定したロールに
/
以外のパスがある場合は、完全なロール ARN を指定するか (推奨)、ロール名の前にパスを付ける必要があります。例えば、ロールの名前がbar
で、パスが/foo/
の場合、ロール名として/foo/bar
を指定します。詳細については、IAM ユーザーガイドの「わかりやすい名前とパス」を参照してください。重要
アカウントが既に Amazon ECS サービスリンクロールを作成している場合は、ここでロールを指定しない限り、そのロールがサービスにデフォルトで使用されます。タスク定義で awsvpc ネットワークモードを使用している場合はサービスにリンクされたロールが必要です。詳細については、「Amazon ECS のサービスリンクロールの使用」を参照してください。
serviceConnectConfiguration
-
タイプ: オブジェクト
必須: いいえ
このサービスがサービスを検出して接続し、名前空間内の他のサービスによって検出され接続されるための設定。
詳細については、「Service Connect」を参照してください。
enabled
-
型: ブール値
必須: はい
このサービスで Service Connect を使用するかどうかを指定します。
namespace
-
タイプ: 文字列
必須: いいえ
Service Connect で使用する AWS Cloud Map 名前空間の短縮名または完全な Amazon リソースネーム (ARN)。名前空間は、Amazon ECS サービスおよびクラスターと同じ AWS リージョン にある必要があります。名前空間のタイプは Service Connect に影響しません。の詳細については AWS Cloud Map、「 AWS Cloud Map デベロッパーガイド」の「 サービスの使用」を参照してください。
services
-
型: オブジェクトの配列
必須: いいえ
Service Connect サービスオブジェクトの配列。これらは、他の Amazon ECS サービスがこのサービスに接続するために使用する名前とエイリアスです (エンドポイントとも呼ばれます)。
名前空間のメンバーである「クライアント」 Amazon ECS サービスが名前空間内の他のサービスに接続するだけであれば、このフィールドは必要ありません。その一例が、サービスに接続されているロードバランサーまたは他の方法で受信リクエストを受け入れるフロントエンドアプリケーションです。
オブジェクトはタスク定義からポートを選択し、 AWS Cloud Map サービスの名前と、クライアントアプリケーションがこのサービスを参照するためのエイリアス (エンドポイントとも呼ばれます) とポートの配列を割り当てます。
portName
-
型: 文字列
必須: はい
portName
は、この Amazon ECS サービスのタスク定義内のすべてのコンテナからの、portMappings
のいずれかのname
と一致する必要があります。 discoveryName
-
タイプ: 文字列
必須: いいえ
discoveryName
は、Amazon ECS がこの Amazon ECS AWS Cloud Map サービス用に作成する新しいサービスの名前です。これは AWS Cloud Map 名前空間内で一意である必要があります。このフィールドを指定しない場合、
portName
が使用されます。 clientAliases
-
型: オブジェクトの配列
必須: いいえ
このサービス接続サービスのクライアントエイリアスのリストです。これらを使用して、クライアントアプリケーションで使用できる名前を割り当てます。このリストで使用できるクライアントエイリアスの最大数は 1 です。
各エイリアス (「エンドポイント」) は、他の Amazon ECS サービス (「クライアント」) がこのサービスに接続するために使用できる DNS 名とポート番号です。
名前とポートの組み合わせは、名前空間内で一意である必要があります。
これらの名前は、クライアントサービスの各タスク内で設定され、 AWS Cloud Mapでは設定されません。これらの名前を解決するための DNS リクエストはタスクから離れることはなく、Elastic Network Interface ごとの 1 秒あたりの DNS リクエストの割り当てにもカウントされません。
port
-
タイプ: 整数
必須: はい
サービス接続プロキシのリスニングポート番号です。このポートは、同じ名前空間内のすべてのタスク内で使用できます。
クライアント Amazon ECS サービスのアプリケーションが変更されないようにするには、クライアントアプリケーションがデフォルトで使用するのと同じポートを設定します。
dnsName
-
タイプ: 文字列
必須: いいえ
dnsName
は、このサービスに接続するためにクライアントタスクのアプリケーションで使用する名前です。この名前は有効な DNS ラベルでなければなりません。このフィールドが指定されない場合、デフォルト値は
discoveryName.namespace
になります。discoveryName
が指定されない場合、タスク定義からportName
が使用されます。クライアント Amazon ECS サービスのアプリケーションが変更されないようにするには、クライアントアプリケーションがデフォルトで使用するのと同じ名前を設定します。例えば、一般的な名前として
database
やdb
、またはmysql
やredis
などのデータベース名の小文字表記が挙げられます。
ingressPortOverride
-
タイプ: 整数
必須: いいえ
(オプション) Service Connect プロキシがリッスンするポート番号です。
このフィールドの値を使用して、このアプリケーションのタスク定義で
portMapping
という名称で指定されているポート番号のトラフィックに対してプロキシをバイパスしてから、Amazon VPC セキュリティグループでそのポート番号を使用して、この Amazon ECS サービスのプロキシへのトラフィックを許可します。awsvpc
モードでは、このアプリケーションのタスク定義でportMapping
という名称で指定されているコンテナポート番号がデフォルト値になります。bridge
モードでは、Service Connect プロキシの動的エフェメラルポートがデフォルト値になります。 logConfiguration
-
タイプ: LogConfiguration オブジェクト
必須: いいえ
これにより、Service Connect プロキシログの公開場所が定義されます。このログは、予期しないイベント発生時のデバッグに使用します。この設定は、この Amazon ECS サービスの各タスクの Service Connect プロキシコンテナに
logConfiguration
パラメータを設定します。タスク定義でプロキシコンテナが指定されていません。この Amazon ECS サービスのタスク定義のアプリケーションコンテナと同じログ設定を使用することをお勧めします。の場合 FireLens、これはアプリケーションコンテナのログ設定です。
fluent-bit
または コンテナイメージを使用する FireLens ログルーターfluentd
コンテナではありません。
serviceRegistries
-
型: オブジェクトの配列
必須: いいえ
サービスのサービス検出設定の詳細。詳細については、「サービス検出」を参照してください。
registryArn
-
型: 文字列
必須: いいえ
サービスレジストリの Amazon リソースネーム (ARN)。現在サポートされているサービスレジストリは です AWS Cloud Map。詳細については、AWS Cloud Map デベロッパーガイドの「サービスの使用」を参照してください。
port
-
タイプ: 整数
必須: いいえ
サービス検出サービスが SRV レコードを指定した場合に使用されるポート値。このフィールドは、
awsvpc
ネットワークモードと SRV レコードの両方が使用されている場合に必要です。 containerName
-
タイプ: 文字列
必須: いいえ
サービス検出サービスに使用されるコンテナ名の値。この値は、タスク定義で指定されます。サービスタスクが指定するタスク定義に
bridge
またはhost
ネットワークモードが使用されている場合は、タスク定義からのcontainerName
とcontainerPort
の組み合わせを指定する必要があります。サービスタスクが指定するタスク定義にawsvpc
ネットワークモードが使用され、SRV DNS タイプのレコードが使用されている場合は、containerName
とcontainerPort
の組み合わせを指定するか、port
値を指定する必要があります (両方は指定しないでください)。 containerPort
-
タイプ: 整数
必須: いいえ
サービス検出サービスに使用されるポートの値。この値は、タスク定義で指定されます。サービスタスクが指定するタスク定義に
bridge
またはhost
ネットワークモードが使用されている場合は、タスク定義からのcontainerName
とcontainerPort
の組み合わせを指定する必要があります。サービスタスクが指定するタスク定義にawsvpc
ネットワークモードが使用され、SRV DNS タイプのレコードが使用されている場合は、containerName
とcontainerPort
の組み合わせを指定するか、port
値を指定する必要があります (両方は指定しないでください)。
クライアントトークン
clientToken
-
タイプ: 文字列
必須: いいえ
リクエストのべき等のために割り当てる一意の識別子 (大文字と小文字を区別)。最大 32 文字の ASCII 文字を使用できます。
ボリューム設定
volumeConfigurations
-
タイプ: オブジェクト
必須: いいえ
サービスによって管理されるタスクのボリュームを作成するために使用される構成。サービス内のタスクごとに 1 つのボリュームが作成されます。このオブジェクトを使用して設定できるのは、タスク定義
configuredAtLaunch
で とマークされたボリュームのみです。このオブジェクトは、サービスによって管理されるタスクに Amazon EBS データボリュームをアタッチするために必要です。詳細については、「Amazon EBS ボリューム」を参照してください。name
-
型: 文字列
必須: はい
サービスを作成または更新するときに設定されるボリュームの名前。最大 255 文字の英字 (大文字と小文字)、数字、アンダースコア (
_
)、ハイフン (-
) を使用できます。この値は、タスク定義で指定されたボリューム名と一致する必要があります。 managedEBSVolume
-
タイプ: オブジェクト
必須: いいえ
サービスの作成または更新時にサービスによって管理されるタスクにアタッチされる Amazon EBS ボリュームのボリューム設定。
encrypted
-
型: ブール値
必須: いいえ
有効な値:
true
|false
サービスによって管理されるタスクにアタッチされている Amazon EBS ボリュームを暗号化するかどうかを指定します。アカウントで Amazon EBS 暗号化をデフォルトで有効にした場合、この設定は上書きされ、ボリュームは暗号化されます。デフォルトでの EBS 暗号化の詳細については、「Amazon EC2 ユーザーガイド」の「デフォルトでの暗号化」を参照してください。
kmsKeyId
-
タイプ: 文字列
必須: いいえ
Amazon EBS 暗号化に使用する AWS Key Management Service (AWS KMS) キーの識別子。このパラメータを指定しない場合、Amazon EBS AWS KMS key の が使用されます。
KmsKeyId
を指定する場合、暗号化された状態はtrue
である必要があります。KMS キーは、次のいずれかを使用して指定できます。
-
キー ID - 例えば、 です
1234abcd-12ab-34cd-56ef-1234567890ab
。 -
キーエイリアス – 例えば、 です
alias/ExampleAlias
。 -
キー ARN – 例えば、 です
arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab
。 -
エイリアス ARN – 例えば、 です
arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias
。
重要
AWS は KMS キーを非同期的に認証します。したがって、無効な ID、エイリアス、または ARN を指定すると、アクションは成功したように見えることがありますが、最終的には失敗します。詳細については、「Amazon EBS ボリュームアタッチメントの問題のトラブルシューティング」を参照してください。
-
volumeType
-
タイプ: 文字列
必須: いいえ
有効な値:
gp2
|gp3
|io1
io2
||sc1
|st1
||standard
EBS ボリュームタイプ。ボリュームタイプの詳細については、「Amazon EC2 ユーザーガイド」の「Amazon EBS ボリュームタイプ」を参照してください。 Amazon EC2 デフォルトのボリュームタイプは
gp3
です。注記
standard
ボリュームタイプは、Fargate タスクへのアタッチ用に設定された Amazon EBS ボリュームではサポートされていません。 sizeInGiB
-
タイプ: 整数
必須: いいえ
有効な範囲: 1~16,384 の整数
ギビバイト (GiB) 単位の EBS ボリュームのサイズ。ボリュームをアタッチ用に設定するスナップショット ID を指定しない場合は、サイズ値を指定する必要があります。スナップショットを使用してボリュームをアタッチ用に設定した場合、デフォルト値はスナップショットサイズです。その後、スナップショットサイズ以上のサイズを指定できます。
gp2
およびgp3
ボリュームタイプの場合、有効な範囲は 1~16,384 です。io1
およびio2
ボリュームタイプの場合、有効な範囲は 4~16,384 です。st1
およびsc1
ボリュームタイプの場合、有効な範囲は 125~16,384 です。standard
ボリュームタイプの場合、有効な範囲は 1~1,024 です。 snapshotId
-
タイプ: 文字列
必須: いいえ
ECS タスクにアタッチされた新しいボリュームの作成に使用される既存の EBS ボリュームのスナップショットの ID。
iops
-
タイプ: 整数
必須: いいえ
1 秒あたりの I/O 操作の数 (IOPS)。
gp3
、io1
、io2
ボリュームの場合、これはボリュームでプロビジョニングされている IOPS の数を表します。gp2
ボリュームの場合、この値は、ボリュームのベースラインパフォーマンスと、バーストのためにボリュームが I/O クレジットを蓄積するレートを表します。このパラメータは、io1
とio2
のボリュームに必須です。このパラメータは、gp2
、、st1
sc1
またはstandard
ボリュームではサポートされていません。gp3
ボリュームの場合、有効な値の範囲は 3,000~16,000 です。io1
ボリュームの場合、有効な値の範囲は 100~64,000 です。io2
ボリュームの場合、有効な値の範囲は 100~64,000 です。 throughput
-
タイプ: 整数
必須: いいえ
サービスによって管理されるタスクにアタッチされているボリュームにプロビジョニングするスループット。
重要
このパラメータは
gp3
ボリュームでのみサポートされます。 roleArn
-
型: 文字列
必須: はい
タスクの Amazon EBS リソースを管理するためのアクセス許可を Amazon ECS に付与するインフラストラクチャ AWS Identity and Access Management (IAM) ロールの Amazon リソース ARN (ARN)。詳細については、「Amazon ECS インフラストラクチャ IAM ロール」を参照してください。
tagSpecifications
-
タイプ: オブジェクト
必須: いいえ
serivce マネージド Amazon EBS ボリュームに適用するタグの仕様。
resourceType
-
型: 文字列
必須: はい
有効な値:
volume
作成時にタグ付けするリソースのタイプ。
-
型: オブジェクトの配列
必須: いいえ
ボリュームに適用し、ボリュームの分類と整理に役立つメタデータ。各タグはキーとオプションの値で構成され、どちらもユーザーが定義します。
AmazonECSCreated
とAmazonECSManaged
は、ユーザーに代わって Amazon ECS によって追加された予約済みタグであるため、独自のタグを最大 48 個指定できます。ボリュームを削除すると、タグも削除されます。詳細については、「 Amazon ECS リソースのタグ付け」を参照してください。key
-
タイプ: 文字列
長さの制限: 最小長は 1 です。最大長は 128 です。
必須: いいえ
タグを構成するキーと値のペアの一部。キーは、より具体的なタグ値のカテゴリのように動作する、一般的なラベルです。
value
-
タイプ: 文字列
長さの制限: 最小長は 0 です。最大長は 256 です。
必須: いいえ
タグを構成するキーと値のペアのオプションの一部。値はタグカテゴリ (キー) の記述子として機能します。
propagateTags
-
タイプ: 文字列
有効な値:
TASK_DEFINITION
|SERVICE
|NONE
必須: いいえ
タグをタスク定義またはサービスからボリュームにコピーするかどうかを指定します。
NONE
が指定されている場合、または値が指定されていない場合、タグはコピーされません。
fileSystemType
-
タイプ: 文字列
必須: いいえ
有効な値:
xfs
|ext3
|ext4
ボリューム上のファイルシステムのタイプ。ボリュームのファイルシステムタイプによって、データがボリュームに保存および取得される方法が決まります。スナップショットから作成されたボリュームの場合、スナップショットの作成時にボリュームが使用していたのと同じファイルシステムタイプを指定する必要があります。ファイルシステムタイプの不一致がある場合、タスクは開始できません。Linux タスクにアタッチされているボリュームのデフォルトは です
XFS
。
サービス定義テンプレート
以下に、Amazon ECS サービス定義の JSON 表現を示します。
Amazon EC2 起動タイプ
{ "cluster": "", "serviceName": "", "taskDefinition": "", "loadBalancers": [ { "targetGroupArn": "", "loadBalancerName": "", "containerName": "", "containerPort": 0 } ], "serviceRegistries": [ { "registryArn": "", "port": 0, "containerName": "", "containerPort": 0 } ], "desiredCount": 0, "clientToken": "", "launchType": "EC2", "capacityProviderStrategy": [ { "capacityProvider": "", "weight": 0, "base": 0 } ], "platformVersion": "", "role": "", "deploymentConfiguration": { "deploymentCircuitBreaker": { "enable": true, "rollback": true }, "maximumPercent": 0, "minimumHealthyPercent": 0, "alarms": { "alarmNames": [ "" ], "enable": true, "rollback": true } }, "placementConstraints": [ { "type": "distinctInstance", "expression": "" } ], "placementStrategy": [ { "type": "binpack", "field": "" } ], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "" ], "securityGroups": [ "" ], "assignPublicIp": "DISABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "EXTERNAL" }, "tags": [ { "key": "", "value": "" } ], "enableECSManagedTags": true, "propagateTags": "TASK_DEFINITION", "enableExecuteCommand": true, "serviceConnectConfiguration": { "enabled": true, "namespace": "", "services": [ { "portName": "", "discoveryName": "", "clientAliases": [ { "port": 0, "dnsName": "" } ], "ingressPortOverride": 0 } ], "logConfiguration": { "logDriver": "journald", "options": { "KeyName": "" }, "secretOptions": [ { "name": "", "valueFrom": "" } ] } }, "volumeConfigurations": [ { "name": "", "managedEBSVolume": { "encrypted": true, "kmsKeyId": "", "volumeType": "", "sizeInGiB": 0, "snapshotId": "", "iops": 0, "throughput": 0, "tagSpecifications": [ { "resourceType": "volume", "tags": [ { "key": "", "value": "" } ], "propagateTags": "NONE" } ], "roleArn": "", "filesystemType": "" } } ] }
Fargate 起動タイプ
{ "cluster": "", "serviceName": "", "taskDefinition": "", "loadBalancers": [ { "targetGroupArn": "", "loadBalancerName": "", "containerName": "", "containerPort": 0 } ], "serviceRegistries": [ { "registryArn": "", "port": 0, "containerName": "", "containerPort": 0 } ], "desiredCount": 0, "clientToken": "", "launchType": "FARGATE", "capacityProviderStrategy": [ { "capacityProvider": "", "weight": 0, "base": 0 } ], "platformVersion": "", "platformFamily": "", "role": "", "deploymentConfiguration": { "deploymentCircuitBreaker": { "enable": true, "rollback": true }, "maximumPercent": 0, "minimumHealthyPercent": 0, "alarms": { "alarmNames": [ "" ], "enable": true, "rollback": true } }, "placementConstraints": [ { "type": "distinctInstance", "expression": "" } ], "placementStrategy": [ { "type": "binpack", "field": "" } ], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "" ], "securityGroups": [ "" ], "assignPublicIp": "DISABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "EXTERNAL" }, "tags": [ { "key": "", "value": "" } ], "enableECSManagedTags": true, "propagateTags": "TASK_DEFINITION", "enableExecuteCommand": true, "serviceConnectConfiguration": { "enabled": true, "namespace": "", "services": [ { "portName": "", "discoveryName": "", "clientAliases": [ { "port": 0, "dnsName": "" } ], "ingressPortOverride": 0 } ], "logConfiguration": { "logDriver": "journald", "options": { "KeyName": "" }, "secretOptions": [ { "name": "", "valueFrom": "" } ] } }, "volumeConfigurations": [ { "name": "", "managedEBSVolume": { "encrypted": true, "kmsKeyId": "", "volumeType": "", "sizeInGiB": 0, "snapshotId": "", "iops": 0, "throughput": 0, "tagSpecifications": [ { "resourceType": "volume", "tags": [ { "key": "", "value": "" } ], "propagateTags": "NONE" } ], "roleArn": "", "filesystemType": "" } } ] }
このサービス定義テンプレートは、次の AWS CLI コマンドを使用して作成できます。
aws ecs create-service --generate-cli-skeleton