

# Amazon EC2 AMI にインスタンスストアボリュームを追加する
<a name="adding-instance-storage-ami"></a>

インスタンスストアボリュームが含まれる、ブロックデバイスマッピングを持つ AMI を作成できます。

インスタンスストアボリュームブロックデバイスマッピングを指定する AMI を使用して、**非 NVMe のインスタンスストアボリューム**をサポートするインスタンスを起動すると、インスタンスにインスタンスストアボリュームが含まれます。AMI のインスタンスストアボリュームブロックデバイスマッピングの数がインスタンスに利用できるインスタンスストアボリュームの数を超えた場合、追加のインスタンスストアボリュームブロックデバイスマッピングは無視されます。

インスタンスストアボリュームブロックデバイスマッピングを指定する AMI を使用して、**NVMe インスタンスストアボリューム**をサポートするインスタンスを起動した場合、インスタンスストアボリュームブロックデバイスマッピングは無視されます。NVMe インスタンスストアボリュームをサポートするインスタンスはインスタンス起動リクエストと AMI で指定されたブロックデバイスマッピングに関らず、サポートされているすべてのインスタンスストアボリュームを取得します。これらのボリュームのデバイスマッピングは、オペレーティングシステムがこれらのボリュームを列挙する順序に応じて決まります。

**考慮事項**
+ 使用できるインスタンスストアボリュームの数はインスタンスタイプによって異なります。詳細については「[使用可能なインスタンスストアボリューム](instance-store-volumes.md#available-instance-store-volumes)」を参照してください。
+ デバイス名をブロックデバイスごとに指定する必要があります。詳細については「[Amazon EC2 インスタンス上のボリュームのデバイス名](device_naming.md)」を参照してください。
+ インスタンスを起動する際に、AMI ブロックデバイスマッピングで指定された 非 NVMe インスタンスストアボリュームを省略したり、インスタンスストアボリュームを追加したりできます。
+ M3 インスタンスの場合はAMI ではなく、インスタンスのブロックデバイスマッピングにあるインスタンスストアボリュームを指定します。Amazon EC2 はAMI のインスタンスストアボリュームブロックデバイスマッピングを無視することがあります。

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

**インスタンスストアボリュームを Amazon EBS-backed AMI に追加するには**

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

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

1. [**アクション**]、[**Image and templates (イメージとテンプレート)**]、[**イメージの作成**] の順に選択してください。

1. [**イメージの作成**] ページで、イメージの意味のある名前と説明を追加します。

1. 追加する各インスタンスストアボリュームについて、[**ボリュームの追加**] を選択し、[**ボリュームタイプ**] からインスタンスストアボリュームを選択して、[**デバイス**] からデバイス名を選択してください。

1. [**イメージを作成**] を選択してください。

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

**インスタンスストアボリュームを AMI に追加するには**  
EBS-Backed AMI のブロックデバイスマッピングを指定するには、[create-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-image.html) コマンドを `--block-device-mappings` オプションと共に使用します。Amazon S3-backed AMI のブロックデバイスマッピングを指定するには、[register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) コマンドを `--block-device-mappings` オプションと共に使用します。

```
--block-device-mappings file://mapping.json
```

次のブロックデバイスマッピングでは、2 つのインスタンスストアボリュームを追加します。

```
[
    {
        "DeviceName": "/dev/sdc",
        "VirtualName": "ephemeral0"
    },
    {
        "DeviceName": "/dev/sdd",
        "VirtualName": "ephemeral1"
    }
]
```

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

**インスタンスストアボリュームを AMI に追加するには**  
[New-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Image.html) コマンドレットを `-BlockDeviceMapping` パラメータと共に使用して、EBS-Backed AMI のブロックデバイスマッピングを指定します。[Register-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html) コマンドレットを `-BlockDeviceMapping` パラメータと共に使用して、Amazon S3-backed AMI のブロックデバイスマッピングを指定します。

```
-BlockDeviceMapping $bdm
```

次のブロックデバイスマッピングでは、2 つのインスタンスストアボリュームを追加します。

```
$bdm = @()

$sdc = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$sdc.DeviceName = "/dev/sdc"
$sdc.VirtualName = "ephemeral0"
$bdm += $sdc

$sdd = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$sdd.DeviceName = "/dev/sdd"
$sdd.VirtualName = "ephemeral1"
$bdm += $sdd
```

------