

# Amazon ECS サービス定義パラメータ
<a name="service_definition_parameters"></a>

サービス定義は、Amazon ECS サービスの実行方法を定義します。サービス定義では、次のパラメータを指定できます。

## 起動タイプ
<a name="sd-launchtype"></a>

`launchType`  
タイプ: 文字列  
有効な値: `EC2` \$1 `FARGATE` \$1 `EXTERNAL`  
必須: いいえ  
サービスを実行する起動タイプ。起動タイプを指定しない場合は、デフォルトで `capacityProviderStrategy` が使用されます。  
サービスを更新すると、このパラメータは新しいサービスのデプロイをトリガーします。  
`launchType` を指定した場合、`capacityProviderStrategy` パラメータを省略する必要があります。

## キャパシティプロバイダー戦略
<a name="sd-capacityproviderstrategy"></a>

`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`  <a name="capacityProvider"></a>
タイプ: 文字列  
必須: はい  
キャパシティープロバイダーの短縮名または完全な Amazon リソースネーム (ARN)。  
`weight`  <a name="weight"></a>
タイプ: 整数  
有効な範囲: 0～1,000 の整数。  
必須: いいえ  
ウエイト値は、指定したキャパシティープロバイダーを使用する起動済みタスクの総数に対する相対的な割合を示します。  
例えば、2 つのキャパシティープロバイダーを含む戦略があり、両方の重みが 1 であるとします。ベースが満たされると、タスクは 2 つのキャパシティープロバイダー間で均等に分割されます。同じロジックを使用して、*capacityProviderA* に 1 の重みを指定し、*capacityProviderB* に 4 の重みを指定するとします。その後、*capacityProviderA* を使用して実行される 1 つのタスクごとに、4 つのタスクが *capacityProviderB* を使用します。  
`base`  <a name="base"></a>
タイプ: 整数  
有効な範囲: 0～100,000 の整数。  
必須: いいえ  
ベース値は、指定されたキャパシティープロバイダーで実行するタスクの最小限の数を指定します。キャパシティープロバイダー戦略では、ベースを定義できるキャパシティープロバイダーは 1 つだけです。

## タスク定義
<a name="sd-taskdefinition"></a>

`taskDefinition`  
タイプ: 文字列  
必須: いいえ  
`family` と `revision` (`family:revision`)、またはサービスで実行されるタスク定義の完全な Amazon リソースネーム（ARN）。`revision` を指定しない場合、指定したファミリーの最新の `ACTIVE` リビジョンが使用されます。  
サービスを更新すると、このパラメータは新しいサービスのデプロイをトリガーします。  
ローリングアップデート (`ECS`) デプロイメントコントローラーを使用する場合は、タスク定義を指定する必要があります。

## プラットフォームオペレーティングシステム
<a name="platform-os"></a>

`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` でなければなりません。

## プラットフォームバージョン
<a name="sd-platformversion"></a>

`platformVersion`  
タイプ: 文字列  
必須: いいえ  
サービス内のタスクが実行されているプラットフォームのバージョン。プラットフォームのバージョンは、Fargate 起動タイプを使用するタスクに対してのみ指定されています。指定されない場合、デフォルトで最新バージョン (`LATEST`) が使用されます。  
サービスを更新すると、このパラメータは新しいサービスのデプロイをトリガーします。  
AWS Fargate プラットフォームのバージョンを使って、Fargate タスクインフラストラクチャの特定のランタイム環境を参照できます。プラットフォームのバージョンに `LATEST` を指定してタスクを実行またはサービスを作成すると、プラットフォームの最新バージョンをタスクで利用できるようになります。サービスをスケールアップする場合は、これらのタスクには、サービスの最新のデプロイで指定されたプラットフォームのバージョンが提供されます。詳細については、「[Amazon ECS 向け Fargate プラットフォームバージョン](platform-fargate.md)」を参照してください。  
プラットフォームのバージョンは、EC2 起動タイプを使用するタスクには指定されません。

## クラスター
<a name="sd-cluster"></a>

`cluster`  
タイプ: 文字列  
必須: いいえ  
サービスを実行するクラスターの短い名前または完全な Amazon リソースネーム (ARN)。クラスターを指定しない場合は、`default` クラスターが使用されます。

## サービス名
<a name="sd-servicename"></a>

`serviceName`  
タイプ: 文字列  
必須: はい  
サービスの名前。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。サービス名は同じクラスター内で一意になるようにしてください。ただし、リージョン内の複数のクラスター間や複数のリージョンにまたがるクラスター間では、同様の名前のサービスがあっても構いません。

## スケジュール戦略
<a name="sd-schedulingstrategy"></a>

`schedulingStrategy`  
タイプ: 文字列  
有効な値: `REPLICA` \$1 `DAEMON`  
必須: いいえ  
使用するスケジュール戦略。スケジュール戦略が指定されていない場合は、`REPLICA` 戦略が使用されます。詳細については、「[Amazon ECS サービス](ecs_services.md)」を参照してください。  
利用できる 2 つのサービススケジューラ戦略があります。  
+ `REPLICA` - レプリカスケジュール戦略では、クラスター全体で必要数のタスクを配置して維持します。デフォルトでは、サービススケジューラによってタスクはアベイラビリティーゾーン間に分散されます。タスク配置の戦略と制約を使用すると、タスク配置の決定をカスタマイズできます。詳細については、「[レプリカスケジューリング戦略](ecs_service-options.md#service_scheduler_replica)」を参照してください。
+ `DAEMON` - デーモンのスケジュール戦略では、指定したすべてのタスク配置制約を満たすクラスター内のアクティブなコンテナインスタンスごとに、1 つのタスクのみをデプロイします。この戦略を使用する場合、タスクの必要数や配置戦略、サービスの自動スケーリングポリシーを指定する必要はありません。詳細については、「[デーモンスケジューリング戦略](ecs_service-options.md#service_scheduler_daemon)」を参照してください。
**注記**  
Fargate タスクは `DAEMON` スケジュール戦略をサポートしていません。

## 必要数
<a name="sd-desiredcount"></a>

`desiredCount`  
タイプ: 整数  
必須: いいえ  
指定されたタスク定義のインスタンスをサービス内に配置し、実行し続ける数です。  
サービスを更新しても、このパラメータは新しいサービスのデプロイをトリガーしません。  
このパラメータは、`REPLICA` スケジュール戦略を使用する場合に必要です。サービスが `DAEMON` スケジュール戦略を使用する場合、このパラメータはオプションです。  
サービスの自動スケーリングを使用する場合、現在実行中のサービスを、現在実行中のタスク数よりも少ない `desiredCount` で更新すると、サービスは指定された `desiredCount` までスケールダウンされます 

## デプロイ設定
<a name="sd-deploymentconfiguration"></a>

`deploymentConfiguration`  
タイプ: オブジェクト  
必須: いいえ  
デプロイ時に実行されるタスクの数と、タスクの停止および開始の順序を制御するオプションのデプロイパラメータ。  
サービスを更新しても、このパラメータは新しいサービスのデプロイをトリガーしません。    
`maximumPercent`  <a name="maximumPercent"></a>
タイプ: 整数  
必須: いいえ  
サービスでローリング更新 (`ECS`) のデプロイタイプが使用されている場合、`maximumPercent` パラメータは、デプロイ時に `RUNNING`、`STOPPING`、または `PENDING` 状態で許可されるサービスのタスクの上限数を表します。これは、最も近い整数に切り捨てられた `desiredCount` のパーセンテージ (%) として表されます。このパラメータを使用して、デプロイのバッチサイズを定義できます。例えば、サービスで `REPLICA` サービススケジューラを使用して、`desiredCount` が 4 タスク、`maximumPercent` の値が 200% とすると、スケジューラは 4 つの古いタスクを停止する前に、4 つの新しいタスクを開始します。そのために必要なクラスターリソースを使用できることが前提です。`REPLICA` サービススケジューラを使用するサービスのデフォルトの `maximumPercent` 値は 200% です。  
Amazon ECS スケジューラはこのパラメータを使用して、置き換えタスクを開始するためのクラスターリソースが使用可能である限り、最初に置き換えタスクを開始してから、異常なタスクを停止することで、異常なタスクを置き換えます。スケジューラが異常なタスクを置き換える仕組みの詳細については、「[Amazon ECS サービス](ecs_services.md)」を参照してください。  
サービスで `DAEMON` サービススケジューラタイプを使用している場合、`maximumPercent` は 100% のままにする必要があります。これは、デフォルト値です。  
デプロイ時のタスクの最大数は、`desiredCount` に `maximumPercent`/100 を乗算したもので、最も近い整数値に切り下げられます。  
サービスで Blue/Green (`CODE_DEPLOY`) または `EXTERNAL` のいずれかのデプロイタイプと EC2 起動タイプを使用するタスクが使用されている場合、**最大パーセント**の値はデフォルト値に設定されます。この値は、コンテナインスタンスが `DRAINING` 状態にある間、サービス内で `RUNNING` 状態を保つタスクの数の上限を定義する目的で使用されます。  
ブルー/グリーン (`CODE_DEPLOY`) または `EXTERNAL` デプロイタイプのいずれかを使用し、EC2 を使用するタスクがあるサービスのカスタム `maximumPercent` 値を指定することはできません。
サービスがブルー/グリーン (`CODE_DEPLOY`) または `EXTERNAL` デプロイタイプのいずれかを使用し、サービス内のタスクが Fargate を使用する場合、最大パーセント値は使用されません。サービスを説明する際にも、この値は返されます。  
`minimumHealthyPercent`  <a name="minimumHealthyPercent"></a>
タイプ: 整数  
必須: いいえ  
サービスでローリング更新 (`ECS`) のデプロイタイプが使用されている場合、`minimumHealthyPercent` は、デプロイ時に `RUNNING` 状態に留まる必要があるサービスのタスクの下限数を表します。これは、最も近い整数に切り上げられた `desiredCount` のパーセンテージ (%) として表されます。このパラメータを使用して、追加のクラスターキャパシティーを使用せずにデプロイできます。  
例えば、サービスで `desiredCount` が 4 タスク、`minimumHealthyPercent` が 50%、`maximumPercent` が 100% とすると、サービススケジューラは 2 つの新しいタスクを開始する前に、2 つの既存のタスクを停止してクラスターのキャパシティを解放できます。  
 いずれかのタスクに異常があり、`maximumPercent` が Amazon ECS スケジューラによる置き換えタスクの開始を許可しない場合、スケジューラは `minimumHealthyPercent` を制約として使用して、置き換えタスクを起動するためのキャパシティを解放するために、異常なタスクを 1 つずつ停止します。スケジューラが異常なタスクを置き換える仕組みの詳細については、「[Amazon ECS サービス](ecs_services.md)」を参照してください。  
ロードバランサーを使用*しない*サービスの場合は、次のことを考慮してください。  
+ サービスのタスク内のすべての必須コンテナがヘルスチェックに合格すると、サービスは正常と見なされます。
+ タスクにヘルスチェックが定義された必須コンテナがない場合、サービススケジューラは、タスクが `RUNNING` 状態に達した後 40 秒間待ってから、正常性の最小割合の合計にカウントします。
+ タスクに、ヘルスチェックが定義された必須コンテナが 1 つ以上ある場合、サービススケジューラは、タスクが正常ステータスに達するのを待ってから、正常性の最小割合の合計にカウントします。タスク内のすべての必須コンテナがヘルスチェックに合格すると、タスクは正常と見なされます。サービススケジューラが待つことができる時間は、コンテナのヘルスチェックの設定によって決まります。詳細については、「[ヘルスチェック](task_definition_parameters.md#container_definition_healthcheck)」を参照してください。
ロードバランサーを使用*する*サービスについては、次のことを考慮してください。  
+ タスクにヘルスチェックが定義されている必須コンテナがない場合、サービススケジューラは、ロードバランサーターゲットグループのヘルスチェックが正常ステータスを返すのを待ってから、正常性の最小割合の合計にカウントします。
+ タスクにヘルスチェックが定義されている必須コンテナがある場合、サービススケジューラは、タスクが正常なステータスになり、ロードバランサーターゲットグループのヘルスチェックが正常ステータスを返すのを待ってから、タスクを正常性の最小割の合計にカウントします。
レプリカサービスの `minimumHealthyPercent` のデフォルト値は 100% です。`DAEMON` サービススケジュールを使用しているデフォルトの `minimumHealthyPercent` 値は、AWS CLI、AWS SDK、API では 0%、AWS マネジメントコンソール では 50% です。  
デプロイ時の正常なタスクの最小数は、`desiredCount` に `minimumHealthyPercent`/100 を乗算したもので、最も近い整数値に切り上げられます。  
サービスでブルー/グリーン (`CODE_DEPLOY`) または `EXTERNAL` のデプロイタイプが使用されており、EC2 を使用するタスクが実行されている場合、**最小ヘルス率**の値はデフォルト値に設定されます。この値は、コンテナインスタンスが `DRAINING` 状態にある間、サービス内で `RUNNING` 状態を保つタスクの数の下限を定義する目的で使用されます。  
ブルー/グリーン (`CODE_DEPLOY`) または `EXTERNAL` デプロイタイプのいずれかを使用し、EC2 を使用するタスクがあるサービスのカスタム `maximumPercent` 値を指定することはできません。
サービスがブルー/グリーン (`CODE_DEPLOY`) または `EXTERNAL` デプロイタイプのいずれかを使用しており、Fargate を使用するタスクを実行している場合、最小ヘルス率の値は使用されませんが、サービスについて説明する際に値が返されます。

## デプロイコントローラー
<a name="sd-deploymentcontroller"></a>

`deploymentController`  
タイプ: オブジェクト  
必須: いいえ  
サービスで使用するデプロイコントローラータイプ。デプロイメントコントローラーが指定されていない場合は、`ECS` コントローラーが使用されます。詳細については、「[Amazon ECS サービス](ecs_services.md)」を参照してください。  
サービスを更新しても、このパラメータは新しいサービスのデプロイをトリガーしません。    
`type`  
タイプ: 文字列  
有効な値: `ECS` \$1 `CODE_DEPLOY` \$1 `EXTERNAL`  
必須: はい  
使用するデプロイコントローラータイプ。次の 3 つのデプロイコントローラータイプを使用できます。    
`ECS`  
Amazon ECS デプロイコントローラーは、ローリング更新、ブルー/グリーン、リニア、Canary の複数のデプロイ戦略をサポートしています。ローリング更新デプロイタイプでは、コンテナの現在実行されているバージョンが最新バージョンに置き換えられます。ブルー/グリーンデプロイでは、新しい環境が作成され、トラフィックがすべて一度に移行されます。リニアデプロイでは、トラフィックを同じ割合で徐々に移行します。カナリアデプロイでは、最初にトラフィックのごく一部を移行してから、残りのトラフィックを移行します。ローリング更新中に Amazon ECS がサービスに追加または削除するコンテナの数は、[deploymentConfiguration](#deploymentConfiguration) で指定されるように、サービスのデプロイ中に許可される正常なタスクの最小数と最大数を調整することで制御されます。  
`CODE_DEPLOY`  
Blue/Green (`CODE_DEPLOY`) デプロイタイプは、CodeDeploy による ブルー/グリーンデプロイモデルを使用することにより、本稼働トラフィックを送信する前に、サービスの新しいデプロイを確認できます。  
`EXTERNAL`  
サードパーティーのデプロイコントローラーを使用して Amazon ECS サービスのデプロイプロセスを完全に制御することが必要な場合は、外部デプロイタイプを使用します。

## タスクの配置
<a name="sd-taskplacement"></a>

`placementConstraints`  
タイプ: オブジェクトの配列  
必須: いいえ  
サービスのタスクに使用する、配置制約オブジェクトの配列。タスクごとに最大 10 個の制約を指定できます。この制限数には、タスク定義内の制約と、実行時に指定される制約が含まれます。Fargate を使用している場合、タスク配置の制約事項はサポートされません。  
サービスを更新しても、このパラメータは新しいサービスのデプロイをトリガーしません。    
`type`  
タイプ: 文字列  
必須: いいえ  
制約のタイプ。特定のグループの各タスクが確実に別のコンテナインスタンスで実行されるようにするには、`distinctInstance` を使用します。選択対象を有効な候補グループに制約するには、`memberOf` を使用します。値 `distinctInstance` はタスク定義ではサポートされていません。  
`expression`  
タイプ: 文字列  
必須: いいえ  
制約に適用されるクラスタークエリ言語表現。制約タイプが `distinctInstance` である場合は、式を指定できません。詳細については、「[Amazon ECS タスク用のコンテナインスタンスを定義する式を作成する](cluster-query-language.md)」を参照してください。

`placementStrategy`  
タイプ: オブジェクトの配列  
必須: いいえ  
サービスのタスクで使用する配置戦略オブジェクト。サービスごとに最大 4 つの戦略ルールを指定できます。  
サービスを更新しても、このパラメータは新しいサービスのデプロイをトリガーしません。    
`type`  
タイプ: 文字列  
有効な値: `random` \$1 `spread` \$1 `binpack`  
必須: いいえ  
配置戦略のタイプ。`random` 配置戦略は、タスクを利用可能な候補にランダムに配置します。`spread` 配置戦略は、`field` パラメータに基づいて、利用可能候補間で均等にタスクを分散して配置します。`binpack` 戦略は、`field` パラメータで指定したリソースの利用可能量が最も少ない利用可能候補にタスクを配置します。例えば、メモリの binpack 戦略を使用する場合、タスクは残りのメモリの量は最も少ないがタスクを実行するのに十分なインスタンスに配置されます。  
`field`  
タイプ: 文字列  
必須: いいえ  
配置戦略を適用するフィールド。`spread` 配置戦略では、有効な値は `instanceId` (または同じ効果を持つ `host`)、または `attribute:ecs.availability-zone` などのコンテナインスタンスに適用される任意のプラットフォームまたはカスタム属性です。`binpack` 配置戦略では、有効な値は `cpu` および `memory` です。`random` 配置戦略では、このフィールドは使用されません。

## タグ
<a name="sd-tags"></a>

`tags`  
タイプ: オブジェクトの配列  
必須: いいえ  
サービスに適用し、サービスの分類と整理に役立つメタデータ。各タグはキーとオプションの値で構成され、どちらもお客様側が定義します。サービスが削除されると、タグも削除されます。サービスには最大 50 個のタグを適用できます。詳細については、「[Amazon ECS リソースにタグ付けする](ecs-using-tags.md)」を参照してください。  
サービスを更新しても、このパラメータは新しいサービスのデプロイをトリガーしません。    
`key`  
タイプ: 文字列  
長さの制限: 最小長は 1 です。最大長は 128 です。  
必須: いいえ  
タグを構成するキーと値のペアの一部。キーは、より具体的なタグ値のカテゴリのように動作する、一般的なラベルです。  
`value`  
タイプ: 文字列  
長さの制約: 最小長は 0 です。最大長は 256 です。  
必須: いいえ  
タグを構成するキーと値のペアのオプションの一部。値はタグカテゴリ (キー) の記述子として機能します。

`enableECSManagedTags`  
タイプ: ブール値  
有効な値: `true` \$1 `false`  
必須: いいえ  
サービスのタスクに Amazon ECS マネージドタグを使用するか否かを指定します。値を指定しない場合、デフォルトは `false` になります。詳細については、「[請求にタグを使用する](ecs-using-tags.md#tag-resources-for-billing)」を参照してください。  
サービスを更新しても、このパラメータは新しいサービスのデプロイをトリガーしません。

`propagateTags`  
タイプ: 文字列  
有効な値: `TASK_DEFINITION` \$1 `SERVICE`  
必須: いいえ  
タグをタスク定義またはサービスからサービスのタスクへコピーするかどうかを指定します。値を指定しない場合、タグはコピーされません。タグは、サービス作成中のサービス内のタスクにのみコピーすることができます。タグをサービス作成後またはタスク作成後のタスクに追加するには、`TagResource` API アクションを使用します。  
サービスを更新しても、このパラメータは新しいサービスのデプロイをトリガーしません。

## ネットワーク構成
<a name="sd-networkconfiguration"></a>

`networkConfiguration`  
タイプ: オブジェクト  
必須: いいえ  
サービスのネットワーク構成。このパラメータは `awsvpc` ネットワークモードを使用して独自の Elastic Network Interface を受け取るタスク定義の場合に必要です。その他のネットワークモードではサポートされていません。Fargate を使用している場合は、`awsvpc` ネットワークモードが必要です。EC2 のネットワークの詳細については、「[EC2 の Amazon ECS タスクネットワークオプション](task-networking.md)」を参照してください。Fargate のネットワークの詳細については、「[Fargate の Amazon ECS タスクのネットワークオプション](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-task-networking.html)」を参照してください。  
サービスを更新すると、このパラメータは新しいサービスのデプロイをトリガーします。    
`awsvpcConfiguration`  
タイプ: オブジェクト  
必須: いいえ  
タスクまたはサービスのサブネットとセキュリティグループを表すオブジェクト。    
`subnets`  
型: 文字列の配列  
必須: はい  
タスクまたはサービスに関連付けられたサブネット。`awsvpcConfiguration` に従って指定できるサブネットは 16 個に制限されています。  
`securityGroups`  
型: 文字列の配列  
必須: いいえ  
タスクまたはサービスに関連付けられたセキュリティグループ。セキュリティグループを指定しないと、VPC のデフォルトのセキュリティグループが使用されます。`awsvpcConfiguration` に基づいて指定できるセキュリティグループは 5 つに制限されています。  
`assignPublicIP`  
タイプ: 文字列  
有効な値: `ENABLED` \$1 `DISABLED`  
必須: いいえ  
タスクの Elastic Network Interface がパブリック IP アドレスを受け取るかどうかを示します。値を指定しない場合、デフォルト値の `DISABLED` が使用されます。

`healthCheckGracePeriodSeconds`  
タイプ: 整数  
必須: いいえ  
Amazon ECS サービススケジューラが、タスクが最初に開始された後で異常な Elastic Load Balancing、VPC Lattice、コンテナのヘルスチェックを無視する期間 (秒単位)。ヘルスチェックの猶予期間値を指定しない場合、デフォルト値 0 が使用されます。ヘルスチェックを使用しない場合、`healthCheckGracePeriodSeconds` は使用されません。  
サービスのタスクが開始して応答するまでに時間がかかる場合は、ヘルスチェックの猶予期間として最大 2,147,483,647 秒 (約 69 年) まで指定できます。この間は、Amazon ECS サービススケジューラはヘルスチェックのステータスを無視します。この猶予期間により、サービススケジューラがタスクを異常とマークして時間より前に停止することがなくなります。  
サービスを更新しても、このパラメータは新しいサービスのデプロイをトリガーしません。

`loadBalancers`  
タイプ: オブジェクトの配列  
必須: いいえ  
サービスで使用するロードバランサーを表すロードバランサーオブジェクト。Application Load Balancer または Network Load Balancer を使,用するサービスの場合、6 個以上のターゲットグループはアタッチできません。  
サービスを更新すると、このパラメータは新しいサービスのデプロイをトリガーします。  
サービスの作成後にロードバランサーの設定を AWS マネジメントコンソール から変更することはできません。AWS Copilot、AWS CloudFormation、AWS CLI、SDK のいずれかを使用して、AWS CodeDeploy ブルー/グリーンまたは外部ではなく、`ECS` ローリングデプロイコントローラのみのロードバランサー設定を変更できます。ロードバランサー設定を追加、更新、削除すると、Amazon ECS は、更新された Elastic Load Balancing 設定で新しいデプロイを開始します。これにより、タスクがロードバランサーに登録およびロードバランサーから登録解除されます。Elastic Load Balancing 設定を更新する前に、テスト環境でこれを検証することをお勧めします。設定の変更方法については、「*Amazon Elastic Containers Service API リファレンス*」の「[UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html)」を参照してください。  
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 ユーザーガイド*の「[わかりやすい名前とパス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names)」を参照してください。  
アカウントが既に Amazon ECS サービスリンクロールを作成している場合は、ここでロールを指定しない限り、そのロールがサービスにデフォルトで使用されます。タスク定義で awsvpc ネットワークモードを使用している場合はサービスにリンクされたロールが必要です。詳細については、「[Amazon ECS のサービスリンクロールの使用](using-service-linked-roles.md)」を参照してください。

`serviceConnectConfiguration`  
タイプ: オブジェクト  
必須: いいえ  
このサービスがサービスを検出して接続し、名前空間内の他のサービスによって検出され接続されるための設定。  
サービスを更新すると、このパラメータは新しいサービスのデプロイをトリガーします。  
詳細については、「[Service Connect を使用して Amazon ECS サービスを短縮名で接続する](service-connect.md)」を参照してください。    
`enabled`  
タイプ: ブール値  
必須: はい  
このサービスで Service Connect を使用するかどうかを指定します。  
`namespace`  
タイプ: 文字列  
必須: いいえ  
Service Connect で使用する AWS Cloud Map 名前空間の短縮名または完全な Amazon リソースネーム (ARN)。名前空間は、Amazon ECS サービスおよびクラスターと同じ AWS リージョンにある必要があります。名前空間のタイプは Service Connect に影響しません。AWS Cloud Map の詳細については、「*AWS Cloud Map デベロッパーガイド*」の「[サービスの使用](https://docs.aws.amazon.com/cloud-map/latest/dg/working-with-services.html)」を参照してください。  
`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](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) オブジェクト  
必須: いいえ  
これにより、Service Connect プロキシログの公開場所が定義されます。このログは、予期しないイベント発生時のデバッグに使用します。この設定は、この Amazon ECS サービスの各タスクの Service Connect プロキシコンテナに `logConfiguration` パラメータを設定します。タスク定義でプロキシコンテナが指定されていません。  
この Amazon ECS サービスのタスク定義のアプリケーションコンテナと同じログ設定を使用することをお勧めします。FireLens では、これはアプリケーションコンテナのログ設定です。`fluent-bit` または `fluentd ` コンテナイメージを使用するのは FireLens ログルーターコンテナではありません。  
`accessLogConfiguration`  
タイプ: [ServiceConnectAccessLogConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html) オブジェクト  
必須: いいえ  
ログ形式やログにクエリ文字列を配置するかどうかなどの、Service Connect アクセスログ記録の設定。アクセスログは、リクエストパターン、レスポンスコード、タイミングデータなど、サービスに対して行われたリクエストに関する詳細情報をキャプチャします。アクセスログを有効にするには、`serviceConnectConfiguration` で `logConfiguration` も指定する必要があります。

`serviceRegistries`  
タイプ: オブジェクトの配列  
必須: いいえ  
サービスのサービス検出設定の詳細。詳細については、「[サービス検出を使用して Amazon ECS サービスを DNS 名で接続する](service-discovery.md)」を参照してください。  
サービスを更新すると、このパラメータは新しいサービスのデプロイをトリガーします。    
`registryArn`  
タイプ: 文字列  
必須: いいえ  
サービスレジストリの Amazon リソースネーム (ARN)。現在サポートされているサービスレジストリは AWS Cloud Map です。詳細については、*AWS Cloud Map デベロッパーガイド*の「[サービスの使用](https://docs.aws.amazon.com/cloud-map/latest/dg/working-with-services.html)」を参照してください。  
`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` 値を指定する必要があります (両方は指定しないでください)。

## クライアントトークン
<a name="sd-clienttoken"></a>

`clientToken`  
タイプ: 文字列  
必須: いいえ  
リクエストのべき等のために割り当てる一意の識別子 (大文字と小文字を区別)。最大 32 文字の ASCII 文字を使用できます。

## アベイラビリティーゾーンの再調整
<a name="sd-availability-zone-rebalancing"></a>

`availabilityZoneRebalancing`  
タイプ: 文字列  
必須: いいえ  
サービスがアベイラビリティーゾーンの再調整を使用するかどうか示します。有効な値は `ENABLED` および `DISABLED` です。  
サービスを更新しても、このパラメータは新しいサービスのデプロイをトリガーしません。  
デフォルトの動作  
+ 新しいサービスの場合: 値が指定されていない場合、デフォルトは `DISABLED` です。
+ 既存のサービスの場合: 値が指定されていない場合、Amazon ECS はデフォルトで既存の値を使用します。以前に値が設定されていない場合、Amazon ECS は値を `DISABLED` に設定します。
アベイラビリティーゾーンのリバランスの詳細については、「[アベイラビリティーゾーン間での Amazon ECS サービスの調整](service-rebalancing.md)」を参照してください。

## ボリューム設定
<a name="sd-volumeConfigurations"></a>

`volumeConfigurations`  
タイプ: オブジェクト  
必須: いいえ  
サービスによって管理されるタスク用のボリュームを作成するのに使用される設定。このオブジェクトを使用して設定できるのは、タスク定義で「`configuredAtLaunch`」とマークされているボリュームだけです。  
サービスを更新すると、このパラメータは新しいサービスのデプロイをトリガーします。  
このオブジェクトは、サービスによって管理されるタスクに Amazon EBS ボリュームをアタッチするのに必要です。詳細については、「[Amazon ECS での Amazon EBS ボリュームの使用](ebs-volumes.md)」を参照してください。    
`name`  
型: 文字列  
必須: はい  
サービスを作成または更新するときに設定されるボリュームの名前。最大 255 文字の英字 (大文字と小文字)、数字、アンダースコア (`_`)、ハイフン (`-`) が可能です。この値は、タスク定義で指定されたボリューム名と一致する必要があります。  
`managedEBSVolume`  
タイプ: オブジェクト  
必須: いいえ  
サービスの作成または更新時にそのサービスによって管理されるタスクにアタッチする Amazon EBS ボリュームを作成するためのボリューム設定。1 つのタスクごとに 1 つのボリュームがアタッチされます。    
`encrypted`  
タイプ: ブール値  
必須: いいえ  
有効な値: `true`\$1`false`  
それぞれのAmazon EBS ボリュームを暗号化するかどうかを指定します。AWS アカウント の特定の AWS リージョン に対してデフォルトで Amazon EBS 暗号化を有効にし、同時にこのパラメータを `false` に設定すると、このパラメータはオーバーライドされ、ボリュームはデフォルトで暗号化用に指定された KMS キーにより暗号化されます。デフォルトでの Amazon EBS 暗号化の詳細については、「*Amazon EBS ユーザーガイド*」の「[Amazon EBS 暗号化をデフォルトで有効にする](https://docs.aws.amazon.com/ebs/latest/userguide/encryption-by-default.html)」を参照してください。Amazon ECS タスクにアタッチされた Amazon EBS ボリュームの暗号化の詳細については、「[Amazon ECS タスクにアタッチされた Amazon EBS ボリュームに保存されているデータの暗号化](ebs-kms-encryption.md)」を参照してください。  
`kmsKeyId`  
タイプ: 文字列  
必須: いいえ  
Amazon EBS 暗号化に使用する AWS Key Management Service (AWS KMS) キーの識別子。`kmsKeyId` を指定する場合、暗号化された状態は `true` である必要があります。  
 このパラメータを使用して指定されたキーは、指定した Amazon ECS マネージドストレージ暗号化の Amazon EBS デフォルトまたはクラスターレベルの KMS キーをオーバーライドします。詳細については、「[Amazon ECS タスクにアタッチされた Amazon EBS ボリュームに保存されているデータの暗号化](ebs-kms-encryption.md)」を参照してください。  
以下のいずれかを使用して 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 を指定すると、アクションは正常に行われているように見える場合がありますが、最終的には失敗します。詳細については、「[Troubleshooting Amazon EBS volume attachment issues](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/troubleshoot-ebs-volumes.html)」を参照してください。  
`volumeType`  
タイプ: 文字列  
必須: いいえ  
有効な値: `gp2`\$1`gp3`\$1`io1`\$1`io2`\$1`sc1`\$1`st1`\$1`standard`  
Amazon EBS ボリュームの種類。ボリュームタイプの詳細については、「*Amazon EBS ユーザーガイド*」の「[Amazon EBS ボリュームタイプ](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html)」を参照してください。デフォルトのボリュームタイプは `gp3` です。  
`standard` ボリュームタイプは Fargate タスクではサポートされていません。  
`sizeInGiB`  
タイプ: 整数  
必須: いいえ  
有効な範囲: 1～16,384 の整数。  
EBS ボリュームのギビバイト (GiB) でのサイズ。アタッチするボリュームを設定するスナップショット ID を指定しない場合は、サイズ値を指定する必要があります。スナップショットを使用してボリュームをアタッチするように設定した場合、デフォルト値はスナップショットサイズです。スナップショットサイズ以上のサイズを指定できます。  
`gp2` および `gp3` ボリュームタイプでは、有効範囲は 1～16,384 です。  
`io1` および `io2` ボリュームタイプでは、有効範囲は 4～16,384 です。  
`st1` および `sc1` ボリュームタイプでは、有効範囲は 125～16,384 です。  
`standard` ボリュームタイプでは、有効範囲は 1～1,024 です。  
`snapshotId`  
タイプ: 文字列  
必須: いいえ  
Amazon ECS がアタッチメント用の新しいボリュームの作成に使用する既存の Amazon EBS ボリュームのスナップショットの ID。`snapshotId` または `sizeInGiB` のどちらかを指定する必要があります。  
`volumeInitializationRate`  
タイプ: 整数  
必須: いいえ  
既存の Amazon EBS ボリュームのスナップショットからデータを取得してアタッチメント用の新しいボリュームを作成する際の MiB/秒単位のデータ読込みレート。このプロパティは、`snapshotId` を指定する場合にのみ指定できます。サポートされている初期化レートの範囲など、このボリューム初期化レートの詳細については、「*Amazon EBS ユーザーガイド*」の「[Amazon EBS ボリュームの初期化](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html)」を参照してください。  
`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 ロール](infrastructure_IAM_role.md)」を参照してください。  
`tagSpecifications`  
タイプ: オブジェクト  
必須: いいえ  
各 Amazon EBS ボリュームに適用されるタグの指定。    
`resourceType`  
タイプ: 文字列  
必須: はい  
有効な値: `volume`  
作成時にタグ付けするリソースのタイプ。  
`tags`  
タイプ: オブジェクトの配列  
必須: いいえ  
分類と整理に役立つようにボリュームに適用するメタデータ。タグはそれぞれ、1 つのキーとオプションの 1 つの値で構成されており、どちらもユーザーが定義します。`AmazonECSCreated` と `AmazonECSManaged` は Amazon ECS がユーザーに代わって追加する予約済みのタグなので、独自のタグを最大 48 個指定できます。ボリュームが削除されると、タグも削除されます。詳細については、「[Amazon ECS リソースにタグ付けする](ecs-using-tags.md)」を参照してください。    
`key`  
タイプ: 文字列  
長さの制限: 最小長は 1 です。最大長は 128 です。  
必須: いいえ  
タグを構成するキーと値のペアの一部。キーは、より具体的なタグ値のカテゴリのように動作する、一般的なラベルです。  
`value`  
タイプ: 文字列  
長さの制約: 最小長は 0 です。最大長は 256 です。  
必須: いいえ  
タグを構成するキーと値のペアのオプションの一部。値はタグカテゴリ (キー) の記述子として機能します。  
`propagateTags`  
タイプ: 文字列  
有効な値: `TASK_DEFINITION` \$1 `SERVICE` \$1 `NONE`  
必須: いいえ  
タグをタスク定義またはサービスからボリュームにコピーするかどうかを指定します。`NONE` を指定した場合、または値を指定しない場合、タグはコピーされません。  
`fileSystemType`  
タイプ: 文字列  
必須: いいえ  
有効な値: `xfs`\$1`ext3`\$1`ext4`\$1`NTFS`  
ボリューム上のファイルシステムのタイプ。ボリュームのファイルシステムタイプによって、ボリューム内でのデータの格納方法と取得方法が決まります。スナップショットから作成されたボリュームでは、スナップショットの作成時にボリュームが使用していたのと同じファイルシステムタイプを指定する必要があります。ファイルシステムのタイプが一致しない場合、タスクは開始できません。  
Linux の有効な値は `xfs`、ext3`, and ext4` です。Linux タスクにアタッチされているボリュームのデフォルトは `XFS` です。  
Windows の有効な値は `NTFS` です。TWindows タスクにアタッチされるボリュームのデフォルトは `NTFS` です。