

# Amazon ECS サービスデプロイを使用してサービス履歴を表示する
<a name="service-deployment"></a>

サービスデプロイは、デプロイの包括的なビューを提供します。サービスデプロイでは、サービスに関する次の情報が提供されます。
+ 現在デプロイされているワークロード設定 (ソースサービスリビジョン)
+ デプロイ中のワークロード設定 (ターゲットサービスリビジョン)
+ デプロイステータス
+ サーキットブレークが検出された失敗したタスク数
+ アラーム状態になっている CloudWatch アラーム
+ サービスデプロイが開始および完了した日時
+ ロールバックの詳細 (発生した場合)

サービスデプロイプロパティの詳細については、「[Amazon ECS サービスデプロイに含まれるプロパティ](service-deployment-property.md)」を参照してください。

サービスデプロイは読み取り専用で、それぞれに一意の ID があります。

サービスデプロイには 3 つのステージがあります。


| ステージ | 定義 | 関連付けられた状態 | 
| --- | --- | --- | 
| 保留中 | サービスデプロイが作成されたが、開始されていない | 保留中 | 
| 継続的 | サービスデプロイが進行中 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/service-deployment.html)  | 
| 完了  | サービスデプロイが完了 (成功または失敗) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/service-deployment.html)  | 

サービスのライフサイクルを理解し、実行が必要なアクションがあるかどうかを判断するため、サービスデプロイを使用します。例えば、ロールバックが発生した場合は、サービスデプロイを調査し、サービスイベントを確認する必要がある場合があります。

コンソール、API、および AWS CLI を使用して、2024 年 10 月 25 日以降に作成されたデプロイの最新の 90 日間の履歴を表示できます。

完了していないデプロイを停止できます。詳細については、「[Amazon ECS サービスデプロイの停止](stop-service-deployment.md)」を参照してください。

## サービスデプロイのライフサイクル
<a name="service-deployments-lifecycle"></a>

Amazon ECS は、次のいずれかのアクションが発生すると、新しいサービスデプロイを自動的に作成します。
+ ユーザーがサービスを作成した。
+ ユーザーがサービスを更新し、[新しいデプロイの強制] オプションを使用した。
+ ユーザーが、デプロイを必要とする 1 つ以上のサービスプロパティを更新した。

Amazon ECS は、デプロイの実行時にサービスデプロイの進行状況を反映するために次のサービスデプロイプロパティを更新します。
+ ステータス
+ 実行中のタスク数

  サービスリビジョンに示されている実行中のタスク数が、実際に実行されているタスク数と等しくない場合があります。この数は、デプロイが完了したときに実行されているタスク数を表します。例えば、サービスデプロイとは関係なくタスクを起動した場合、それらのタスクはサービスリビジョンの実行タスク数に含まれません。
+ サーキットブレーカーの障害検出:
  + 開始に失敗したタスク数
+ CloudWatch アラームの障害検出
  + アクティブなアラーム
+ ロールバック情報:
  + 開始時刻
  + ロールバックの理由
  + ロールバックに使用されるサービスリビジョンの ARN
+ ステータスの理由

サービスを削除すると、Amazon ECS はサービスデプロイを削除します。

## サービスデプロイの状態
<a name="service-deployments-states"></a>

サービスデプロイは `PENDING` 状態で開始されます。

次の図は、`PENDING` 状態の後に発生する可能性のあるサービスデプロイの状態を示します: `IN_PROGRESS`、`ROLLBACK_REQUESTED`、`SUCCESSFUL`、`STOP_REQUESTED`、`ROLLBACK_IN_PROGRESSS`、`ROLLBACK_FAILED`、`ROLLBACK_SUCCESSFUL`、`STOPPED`。

![\[IN_PROGRESS 状態の後に発生する可能性のあるサービスデプロイ STOP_REQUESTED、SUCCESSFUL、および ROLLBACK_IN_PROGRESS 状態。\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/images/service-deployment-states.png)


以下の情報は、サービスデプロイの状態に関する詳細を提供します。
+ `PENDING` - サービスデプロイは作成されましたが、開始されていません。

  状態は、そこから `IN_PROGRESS`、`ROLLBACK_REQUESTED`、`STOP_REQUESTED`、`STOPPED` のいずれかに移行します。
+ `IN_PROGRESS` - サービスデプロイが進行中です。

  状態は、そこから `SUCCESSFUL`、`STOP_REQUESTED`、`ROLLBACK_REQUESTED`、`ROLLBACK_IN_PROGRESS`、`STOPPED` のいずれかに移行します。
+ `STOP_REQUESTED` - 次のいずれかが発生すると、サービスデプロイの状態は `STOP_REQUESTED` に移行します。
  + ユーザーが新しいサービスデプロイを開始した。
  + ロールバックオプションが障害検出メカニズム (サーキットブレーカーまたはアラームベース) に使用されていないため、サービスが `SUCCESSFUL` 状態に達しない。

  状態は `STOPPED` に移行します。
+  `ROLLBACK_REQUESTED` – ユーザーがコンソール、API、または CLI を介してロールバックをリクエストすると、サービスのデプロイ状態は `ROLLBACK_REQUESTED` に移行します。

  状態は、そこから `SUCCESSFUL`、`ROLLBACK_IN_PROGRESS`、`STOPPED` のいずれかに移行します。
+ `SUCCESSFUL` - サービスデプロイが正常に完了すると、サービスデプロイの状態は `SUCCESSFUL` に移行します。
+  `ROLLBACK_IN_PROGRESS` - ロールバックオプションが障害検出メカニズム (サーキットブレーカーまたはアラームベース) に使用されていて、サービスが失敗すると、サービスデプロイの状態は `ROLLBACK_IN_PROGRESS` に移行します。

   状態は `ROLLBACK_SUCCESSFUL` または `ROLLBACK_FAILED` に移行します。

# Amazon ECS サービスデプロイに含まれるプロパティ
<a name="service-deployment-property"></a>

サービスデプロイには、次のプロパティが含まれます。


| プロパティ | 説明 | 
| --- | --- | 
|  サービスデプロイ ARN  |  サービスデプロイの ARN。  | 
| サービス ARN |  このサービスデプロイのサービスの ARN。  | 
|  クラスター ARN  |  サービスをホストするクラスターの ARN。  | 
| サービスデプロイの作成時刻 | サービスデプロイが作成された時刻。 | 
| サービスデプロイの開始時刻 | サービスデプロイが開始された時刻。 | 
|  サービスデプロイの終了時刻  | サービスデプロイが終了した時刻。 | 
| サービスデプロイの停止時刻 | サービスデプロイが停止した時刻。 | 
| サービスデプロイの更新時刻 | サービスデプロイが最後に更新された時刻。 | 
| ソースサービスリビジョン |  現在実行中のサービスリビジョン。 含まれるプロパティについては、「[Amazon ECS サービスリビジョンに含まれるプロパティ](service-revision-property.md)」を参照してください。  | 
| デプロイ設定 | サーキットブレーカー設定、決定するアラームを含むデプロイパラメータ。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/service-deployment-property.html) | 
| ターゲットサービスリビジョン | デプロイするサービスリビジョン。デプロイが正常に完了すると、ターゲットサービスリビジョンは実行中のサービスリビジョンになります。 | 
| サービスデプロイの状態 | サービスデプロイの状態。有効な値は、PENDING、SUCCESSFUL、STOPPED、STOP\$1REQUESTED、STOP\$1IN\$1PROGRESS、IN\$1PROGRESS、ROLLBACK\$1IN\$1PROGRESS、ROLLBACK\$1SUCCESSFUL、および ROLLBACK\$1FAILED です。 | 
| サービスデプロイ状態の情報 | サービスデプロイが現在の状態である理由に関する情報。例えば、サーキットブレーカーが障害を検出したなど。 | 
|  ロールバック情報 | デプロイが失敗したときにサービスデプロイが使用するロールバックオプション。 | 
| サービスデプロイサーキットブレーカーオプション | サービスデプロイが失敗したと判断するサーキットブレーカー。 | 
| サービスデプロイの CloudWatch アラーム | サービスデプロイがいつ失敗したかを判断する CloudWatch アラーム。 | 

# Amazon ECS サービスデプロイを表示するために必要なアクセス許可
<a name="service-deployment-permissions"></a>

 最小権限のベストプラクティスに従うと、コンソールでサービスデプロイを表示するには、アクセス許可を追加する必要があります。

次のアクションへのアクセスが必要です。
+ ListServiceDeployments
+ DescribeServiceDeployments
+ DescribeServiceRevisions

次のリソースへのアクセスが必要です。
+ サービス
+ サービスデプロイ
+ サービスリビジョン

次のポリシー例には必要なアクセス許可が含まれており、アクションは指定されたサービスに限定されます。

`account`、`cluster-name`、および `service-name` を独自の値に置き換えます。

------
#### [ JSON ]

****  

```
{
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "ecs:ListServiceDeployments",
            "ecs:DescribeServiceDeployments",
            "ecs:DescribeServiceRevisions"
        ],
        "Resource": [
            "arn:aws:ecs:us-east-1:123456789012:service/cluster-name/service-name",
            "arn:aws:ecs:us-east-1:123456789012:service-deployment/cluster-name/service-name/*",
            "arn:aws:ecs:us-east-1:123456789012:service-revision/cluster-name/service-name/*"
            ]
        }
   ]
}
```

------

# Amazon ECS サービスデプロイの表示
<a name="view-service-deployment"></a>

2024 年 10 月 25 日以降に作成されたデプロイの最新の 90 日間の履歴を確認できます。サービスデプロイは、次のいずれかの状態になります。
+ 進行中 
+ 保留中
+ 完了

 この情報を使用して、サービスのデプロイ方法やサービスリビジョンを更新する必要があるかどうかを判断できます。含まれるプロパティについては、「[Amazon ECS サービスデプロイに含まれるプロパティ](service-deployment-property.md)」を参照してください。

開始する前に、サービスデプロイを表示するために必要なアクセス許可を設定します。詳細については、「[Amazon ECS サービスデプロイを表示するために必要なアクセス許可](service-deployment-permissions.md)」を参照してください。

------
#### [ Amazon ECS Console ]

1. コンソール ([https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)) を開きます。

1. **[クラスター]** ページで、クラスターを選択します。

1. [クラスターの詳細] ページの **[サービス]** セクションで、サービスを選択します。

   [サービスの詳細] ページが表示されます。

1. [サービスの詳細] ページで、**[デプロイ]** を選択します。

1. 表示するサービスデプロイを選択します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/view-service-deployment.html)

   [サービスデプロイの詳細] ページが表示されます。

1. (オプション) サービスリビジョンを比較して、相違点を確認します。

   **[サービスリビジョン]** で、**[リビジョンの比較]** を選択し、比較するリビジョンを 2 つ選択します。

   サービスリビジョンは並行して表示され、相違点が強調表示されます。

------
#### [ AWS CLI ]

1. `list-service-deployments` を実行して、サービスデプロイ ARN を取得します。

   変数を実際の値に置き換えます。

   ```
   aws ecs list-service-deployments --cluster cluster-name --service service-name
   ```

   表示するデプロイの serviceDeploymentArn を書き留めます。

   ```
   {
       "serviceDeployments": [
           {
               "serviceDeploymentArn": "arn:aws:ecs:us-west-2:123456789012:service-deployment/example/sd-example/NCWGC2ZR-taawPAYrIaU5",
               "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/example/sd-example",
               "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/example",
               "targetServiceRevisionArn": "arn:aws:ecs:us-west-2:123456789012:service-revision/example/sd-example/4980306466373577095",
               "status": "SUCCESSFUL"
           }
       ]
   }
   ```

1. `describe-service-deployments` を実行します。`list-service-deployments` から返された `serviceDeploymentArn` を使用します。

   変数を実際の値に置き換えます。

   ```
   aws ecs describe-service-deployments --service-deployment-arns arn:aws:ecs:region:123456789012:service-deployment/cluster-name/service-name/NCWGC2ZR-taawPAYrIaU5
   ```

------

## 次のステップ
<a name="view-service-deployment-next-step"></a>

デプロイのサービスリビジョンの詳細を表示できます。詳細については、[Amazon ECS サービスリビジョンの詳細の表示](view-service-revision.md)を参照してください。