

# EC2 インスタンスの AMD SEV-SNP の有効化
<a name="snp-work-launch"></a>

AMD SEV-SNP を有効にした状態でインスタンスを起動できます。起動後に AMD SEV-SNP を有効にすることはできません。

**Topics**
+ [AMD SEV-SNP を持つ専有ホストを割り当てる](#snp-allocate-dh)
+ [AMD SEV-SNP 専有ホストでインスタンスを起動する](#snp-launch-instance)
+ [AMD SEV-SNP 専有ホストでファームウェアを更新する](#snp-firmware)
+ [共有テナンシーで AMD SEV-SNP を持つインスタンスを起動する](#snp-shared-tenancy)
+ [EC2 インスタンスで AMD SEV-SNP が有効になっているかどうかの確認](#snp-work-check)

## AMD SEV-SNP を持つ専有ホストを割り当てる
<a name="snp-allocate-dh"></a>

専有ホストで AMD SEV-SNP を持つインスタンスを起動する前に、AMD SEV-SNP サポートが有効になっている専有ホストを割り当てる必要があります。専有ホストをインスタンスファミリー別 (m6a、r6a、c6a など) に割り当てたら、ホスト上でそのファミリーのサポートされている任意のインスタンスタイプを実行できます。AMD SEV-SNP を持つ専有ホストは、任意の商用 AWS リージョン に割り当てることができます。

------
#### [ Console ]

**AMD SEV-SNP が有効になっている専有ホストを割り当てるには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで [**Dedicated Hosts**] を選択してください。

1. **[専有ホストの割り当て]** を選択します。

1. **[AMD SEV-SNP]** には、**[有効化]** を選択します。

1. 必要に応じて残りのホストを設定したら、**[割り当て]** を選択します。

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

**AMD SEV-SNP が有効になっている専有ホストを割り当てるには**  
`--instance-type` と `--cpu-options` パラメータを持つ [allocate-hosts](https://docs.aws.amazon.com/cli/latest/reference/ec2/allocate-hosts.html) コマンドを使用します。

```
aws ec2 allocate-hosts \
    --instance-type "{{m6a.large}}" \
    --availability-zone "{{us-east-1a}}" \
    --auto-placement "off" \
    --cpu-options AmdSevSnp=enabled \
    --quantity 1
```

以下は出力の例です。

```
{
    "HostIds": [
        "h-0123456789abcdef0"
    ]
}
```

------

**注記**  
AMD SEV-SNP が有効になっている専有ホストを割り当てると、AWS が最新のファームウェアを適用している間に、ホストは `configuring` 状態になります。数分から最大 2 時間かかる場合があります。`configuring` 状態のときに課金されます。

## AMD SEV-SNP 専有ホストでインスタンスを起動する
<a name="snp-launch-instance"></a>

専有ホストが設定されると、AMD SEV-SNP が有効になっているインスタンスを起動できます。

**注記**  
AMD SEV-SNP で割り当てられた専有ホストで AMD SEV-SNP が有効になっていないインスタンスを起動することもできます。AMD SEV-SNP インスタンスと AMD SEV-SNP 以外のインスタンスは両方とも同じホストで同時に実行できます。

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

**専有ホストで AMD SEV-SNP を持つインスタンスを起動するには**  
`--cpu-options` と `--placement` オプションで [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) コマンドを使用します。「{{h-0123456789abcdef0}}」を割り当てられた専有ホストの ID に置き換えます。

```
aws ec2 run-instances \
    --instance-type {{m6a.xlarge}} \
    --image-id {{ami-0123456789example}} \
    --cpu-options AmdSevSnp=enabled \
    --placement HostId={{h-0123456789abcdef0}}
```

------
#### [ PowerShell ]

**専有ホストで AMD SEV-SNP を持つインスタンスを起動するには**  
`-CpuOption` と `-Placement_HostId` パラメータで [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) コマンドレットを使用します。

```
New-EC2Instance `
    -InstanceType {{m6a.xlarge}} `
    -ImageId {{ami-0123456789example}} `
    -CpuOption @{AmdSevSnp="enabled"} `
    -Placement_HostId {{h-0123456789abcdef0}}
```

------

## AMD SEV-SNP 専有ホストでファームウェアを更新する
<a name="snp-firmware"></a>

AMD SEV-SNP が有効になっている専有ホストを割り当てると、AWS は利用可能な最新のファームウェアをホストに適用します。ファームウェアの更新には、AMD のセキュリティパッチや機能改善が含まれる場合があります。

ファームウェアの更新を適用するには、新しいホスト (最新のファームウェアを受信) を割り当て、インスタンスを新しいホストに移動し、古いホストを解放します。

1. AMD SEV-SNP が有効になっている新しい専有ホストを割り当てます。新しいホストは、利用可能な最新のファームウェアを受信します。詳細については、「[AMD SEV-SNP を持つ専有ホストを割り当てる](#snp-allocate-dh)」を参照してください。

1. 古い専有ホストで実行中のインスタンスを停止します。

   ```
   aws ec2 stop-instances \
       --instance-ids {{i-0123456789example}}
   ```

1. 新しい専有ホストをターゲットするように、インスタンスの配置を変更します。[modify-instance-placement](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-placement.html) コマンドを実行します。

   ```
   aws ec2 modify-instance-placement \
       --instance-id {{i-0123456789example}} \
       --host-id {{h-09876543210abcdef}}
   ```

1. 新しい専有ホストでインスタンスを起動します。

   ```
   aws ec2 start-instances \
       --instance-ids {{i-0123456789example}}
   ```

1. 古い専有ホストを解放します。[release-hosts](https://docs.aws.amazon.com/cli/latest/reference/ec2/release-hosts.html) コマンドを実行します。

   ```
   aws ec2 release-hosts \
       --host-ids {{h-0123456789abcdef0}}
   ```

**注記**  
専有ホストのメンテナンス通知は、専有ホストの他のメンテナンスイベントを受信する方法と同様に受信します。通知を受信したら、前の手順に従って、ファームウェアが更新された新しいホストに移動します。

## 共有テナンシーで AMD SEV-SNP を持つインスタンスを起動する
<a name="snp-shared-tenancy"></a>

米国東部 (オハイオ) と欧州 (アイルランド) の共有テナンシーで AMD SEV-SNP を持つインスタンスを起動できます。

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

**共有テナンシーで AMD SEV-SNP を持つインスタンスを起動するには**  
`--cpu-options` オプションで [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) コマンドを使用します。

```
aws ec2 run-instances \
    --instance-type {{m6a.xlarge}} \
    --image-id {{ami-0123456789example}} \
    --cpu-options AmdSevSnp=enabled
```

------
#### [ PowerShell ]

**共有テナンシーで AMD SEV-SNP を持つインスタンスを起動するには**  
`-CpuOption` パラメータで [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) コマンドレットを使用します。

```
New-EC2Instance `
    -InstanceType {{m6a.xlarge}} `
    -ImageId {{ami-0123456789example}} `
    -CpuOption @{AmdSevSnp="enabled"}
```

------

## EC2 インスタンスで AMD SEV-SNP が有効になっているかどうかの確認
<a name="snp-work-check"></a>

AMD SEV-SNP が有効になっているインスタンスを検索できます。Amazon EC2 コンソールにはこの情報は表示されません。

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

**インスタンスで AMD SEV-SNP が有効になっているかどうかを確認するには**  
[describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) コマンドを実行します。

```
aws ec2 describe-instances \
    --instance-ids {{i-1234567890abcdef0}} \
    --query Reservations[].Instances[].CpuOptions
```

以下は出力の例です。`AmdSevSnp` が `CpuOptions` に存在しない場合、AMD SEV-SNP は無効になります。

```
[
    {
        "AmdSevSnp": "enabled",
        "CoreCount": 1,
        "ThreadsPerCore": 2
    }
]
```

------
#### [ PowerShell ]

**インスタンスで AMD SEV-SNP が有効になっているかどうかを確認するには**  
[Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) コマンドレットを使用します。

```
(Get-EC2Instance `
    -InstanceId {{i-1234567890abcdef0}}).Instances.CpuOptions
```

以下は出力の例です。`AmdSevSnp` の値が存在しない場合、AMD SEV-SNP は無効になります。

```
AmdSevSnp CoreCount ThreadsPerCore
--------- --------- --------------
enabled   1         2
```

------
#### [ AWS CloudTrail ]

インスタンス起動要求の AWS CloudTrail イベントで、次のプロパティはインスタンスで AMD SEV-SNP が有効になっていることを示します。

```
"cpuOptions": {"AmdSevSnp": "enabled"}
```

------