

# Amazon ECS マネージドインスタンスの GPU 自動修復
<a name="managed-instances-gpu-auto-repair"></a>

Amazon ECS は、GPU ハードウェアを使用する Amazon ECS マネージドインスタンスの NVIDIA GPU ヘルスをモニタリングします。Amazon ECS は GPU ハードウェアの障害を検出すると、障害が発生しているインスタンスを自動的に置き換えることができます。GPU 自動修復は、Amazon ECS マネージドインスタンスではデフォルトで有効になっています。

## 仕組み
<a name="managed-instances-gpu-auto-repair-how-it-works"></a>

Amazon ECS は NVIDIA Data Center GPU Manager (DCGM) を使用して、GPU ハードウェアがあるマネージドインスタンスの NVIDIA GPU ヘルスをモニタリングします。DCGM が重大な GPU 障害を報告すると、Amazon ECS はそのインスタンスを異常としてマークします。

GPU 自動修復を有効にすると、Amazon ECS は異常インスタンスをスタートビフォーストップワークフローを使用して置き換えます。

1. Amazon ECS は異常インスタンスを DRAINING に設定します。新しいタスクはそのインスタンスには配置されません。

1. Amazon ECS は代替インスタンスをプロビジョニングします。

1. Amazon ECS は既存のタスクを正常に停止させることができます。Amazon ECS はそのインスタンス上のタスクのタスク停止タイムアウトを優先します。

1. ドレイン期間が終了すると、Amazon ECS は異常インスタンスを終了します。

Amazon ECS レートで修復アクションを制限することで、置き換えのカスケードを防ぎます。キャパシティープロバイダーに属するインスタンスのうち、一度に使用できる量は 20% までです。キャパシティープロバイダーに 9 つ未満のインスタンスがある場合、一度に最大 1 つのインスタンスのみがドレインされます。

## GPU ヘルスのモニタリング
<a name="managed-instances-gpu-auto-repair-monitoring"></a>

`DescribeContainerInstances` API を使用して GPU ヘルスを確認できます。詳細については、「[Amazon ECS コンテナインスタンスの正常性をモニタリングする](container-instance-health.md)」を参照してください。[Amazon ECS コンテナインスタンスのヘルス変更イベント](ecs_container_instance_health_events.md) を通じて GPU ヘルスの変化をモニタリングすることもできます。

## モニタリングされた XID エラーコード
<a name="managed-instances-gpu-auto-repair-xid-errors"></a>

Amazon ECS は、次の NVIDIA Xid エラーコードをモニタリングします。Amazon ECS は、これらのエラーのいずれかを検出すると、そのインスタンスを異常としてマークし、インスタンスを置き換えます。


| Xid | 説明 | 
| --- | --- | 
| 46 | GPU が処理を停止した | 
| 48 | ダブルビット ECC エラー | 
| 54 | 補助電源コネクタが接続されていない | 
| 62 | 内部マイクロコントローラーの停止 | 
| 64 | GPU メモリの再マッピングの失敗 | 
| 74 | NVLink エラー | 
| 79 | GPU がバスから落下した | 
| 95 | メモリ隔離エラー | 
| 109 | コンテキストスイッチのタイムアウト | 
| 110 | GPU がバスから消えた | 
| 136 | GPU メモリページの廃止制限を超えた | 
| 140 | ECC 復旧不能エラー | 
| 142 | 修正不可能なエラーにより GPU メモリページが廃止された | 
| 143 | 修正可能なエラーしきい値により GPU メモリページが廃止された | 
| 151 | GPU から CPU への相互接続エラー | 
| 155 | GPU NVLink Flit CRC エラー | 
| 156 | GPU NVLink レーンエラー | 
| 158 | GPU InfoROM が破損した | 

XID エラーの詳細については、「*NVIDIA GPU のデプロイおよび管理ドキュメント*」の「[Xid エラー](https://docs.nvidia.com/deploy/xid-errors/index.html#topic_5_1)」を参照してください。個々の XID メッセージの詳細については、「*NVIDIA GPU Deployment and Management Documentation*」の「[Understanding Xid Messages](https://docs.nvidia.com/deploy/gpu-debug-guidelines/index.html#understanding-xid-messages)」を参照してください。

## 自動修復の無効化
<a name="managed-instances-gpu-auto-repair-disable"></a>

GPU 自動修復は、Amazon ECS マネージドインスタンスではデフォルトで有効になっています。GPU 自動修復を無効にするには、キャパシティープロバイダーを作成または更新するときに、`autoRepairConfiguration` で `actionsStatus` を `DISABLED` に設定します。キャパシティープロバイダーを作成または更新するときに、Amazon ECS コンソールで GPU 自動修復を無効にすることもできます。

GPU 自動修復が無効になっている場合、Amazon ECS は GPU ヘルスを引き続きモニタリングしますが、異常インスタンスの自動置換は行いません。

**注記**  
GPU 自動修復を無効にすると、Amazon ECS マネージドデーモン自動修復も無効になります。詳細については、「[Amazon ECS マネージドデーモン自動修復](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/managed-daemons-auto-repair.html)」を参照してください。

**GPU 自動修復を無効にする方法**

```
aws ecs update-capacity-provider \
    --name {{my-gpu-capacity-provider}} \
    --managed-instances-provider '{
        "infrastructureRoleArn": "arn:aws:iam::{{111122223333}}:role/ecsInfrastructureRole",
        "instanceLaunchTemplate": {
            "ec2InstanceProfileArn": "arn:aws:iam::{{111122223333}}:instance-profile/ecsInstanceRole",
            "networkConfiguration": {
                "subnets": ["{{subnet-0123456789abcdef0}}"],
                "securityGroups": ["{{sg-0123456789abcdef0}}"]
            }
        },
        "autoRepairConfiguration": {
            "actionsStatus": "DISABLED"
        }
    }'
```

**GPU 自動修復を有効にする方法**

```
aws ecs update-capacity-provider \
    --name {{my-gpu-capacity-provider}} \
    --managed-instances-provider '{
        "infrastructureRoleArn": "arn:aws:iam::{{111122223333}}:role/ecsInfrastructureRole",
        "instanceLaunchTemplate": {
            "ec2InstanceProfileArn": "arn:aws:iam::{{111122223333}}:instance-profile/ecsInstanceRole",
            "networkConfiguration": {
                "subnets": ["{{subnet-0123456789abcdef0}}"],
                "securityGroups": ["{{sg-0123456789abcdef0}}"]
            }
        },
        "autoRepairConfiguration": {
            "actionsStatus": "ENABLED"
        }
    }'
```

**設定を確認する方法**

```
aws ecs describe-capacity-providers \
    --capacity-providers {{my-gpu-capacity-provider}}
```