EC2 インスタンスにインスタンスストアボリュームを追加する - Amazon Elastic Compute Cloud

EC2 インスタンスにインスタンスストアボリュームを追加する

ブロックデバイスマッピングを使用して、インスタンスの EBS ボリュームとインスタンスストアボリュームを指定します。ブロックデバイスマッピングの各エントリには、デバイス名とそれがマッピングされたボリュームが含まれます。デフォルトのブロックデバイスマッピングは、使用する AMI によって指定されます。または、起動するときにインスタンスのブロックデバイスマッピングを指定できます。

インスタンスタイプによってサポートされるすべての NVMe インスタンスストアボリュームが自動的に列挙され、インスタンスの起動時にデバイス名が割り当てられます。それらを AMI のブロックデバイスマッピングに含めます。含めないとインスタンスは効果がありません。詳細については、「ブロックデバイスマッピング」を参照してください。

ブロックデバイスマッピングでは、常にインスタンスのルートボリュームを指定します。ルートボリュームは、Amazon EBS ボリュームまたはインスタンスストアボリュームのいずれかです。詳細については、「ルートデバイスのストレージ」を参照してください。ルートボリュームは自動的にマウントされます。ルートボリュームのインスタンスストアボリュームを持つインスタンスの場合、このボリュームのサイズは AMI によって異なりますが、最大サイズは 10 GB です。

インスタンスを実行するときに、ブロックデバイスマッピングを使用して追加の EBS ボリュームを指定するか、インスタンスの実行後に追加の EBS ボリュームをアタッチすることができます。詳細については、「Amazon EBS ボリューム」を参照してください。

インスタンスを起動する場合にのみ、インスタンスのインスタンスストアボリュームを指定できます。また、起動後のインスタンスにインスタンスストアボリュームをアタッチすることはできません。

インスタンスタイプを変更すると、インスタンスストアは新しいインスタンスタイプにアタッチされません。詳細については、「インスタンスタイプを変更する」を参照してください。

インスタンスで使用できるインスタンスストアボリュームの数とサイズは、インスタンスタイプによって異なります。インスタンスタイプによっては、インスタンスストアボリュームをサポートしていないものがあります。ブロックデバイスマッピングのインスタンスストアボリュームの数が、インスタンスに利用できるインスタンスストアボリュームの数を超える場合は、追加のボリュームは無視されます。各インスタンスタイプによりサポートされるインスタンスストアボリュームの詳細については、「インスタンスストアボリューム」を参照してください。

インスタンスに選択するインスタンスタイプが非 NVMe のインスタンスストアボリュームをサポートしている場合は、起動するときにインスタンスのブロックデバイスマッピングに追加する必要があります。NVMe インスタンスストアボリュームは、デフォルトで利用できます。インスタンスを起動したら、使用する前に、インスタンスのインスタンスストアボリュームがフォーマットされ、マウントされていることを確認する必要があります。instance store-backed インスタンスのルートボリュームは自動的にマウントされます。

AMI へのインスタンスストアボリュームの追加

インスタンスストアボリュームが含まれる、ブロックデバイスマッピングを持つ AMI を作成できます。インスタンスストアボリュームをサポートするインスタンスタイプと、ブロックデバイスマッピングでインスタンスストアボリュームを指定する AMI を持つインスタンスを起動する場合、インスタンスには、これらのインスタンスストアボリュームが含まれます。ブロックデバイスマッピングのインスタンスストアボリュームの数がインスタンスに利用できるインスタンスストアボリュームの数を超える場合、追加のインスタンスストアボリュームは無視されます。

考慮事項

  • M3 インスタンスの場合は、AMI ではなく、インスタンスのブロックデバイスマッピングでインスタンスストアボリュームを指定します。Amazon EC2 は、AMI のブロックデバイスマッピングでのみ指定されたインスタンスストアボリュームを無視することがあります。

  • インスタンスを起動する際に、AMI ブロックデバイスマッピングで指定された 非 NVMe インスタンスストアボリュームを省略したり、インスタンスストアボリュームを追加したりできます。

コンソールを使用して Amazon EBS-backed AMI にインスタンスストアボリュームを追加するには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで [Instances] を選択し、インスタンスを選択します。

  3. [Actions]、[Image]、[Create Image] の順に選択します。

  4. [Create Image] ダイアログボックスで、イメージの意味のある名前と説明を入力します。

  5. 追加する各インスタンスストアボリュームについて、[Add New Volume] を選択し、[Volume Type] からインスタンスストアボリュームを選択して、[Device] からデバイス名を選択します。(詳しくは、Linux インスタンスでのデバイスの名前付け を参照してください)。 使用できるインスタンスストアボリュームの数は、インスタンスタイプによって異なります。NVMe インスタンスストアボリュームを持つインスタンスの場合、これらのボリュームのデバイスマッピングは、オペレーティングシステムがこれらのボリュームを列挙する順序によって決まります。

  6. [Create Image] を選択します。

コマンドラインを使用して AMI にインスタンスストアボリュームを追加するには

次のコマンドの 1 つを使用できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセス を参照してください。

インスタンスへのインスタンスストアボリュームの追加

インスタンスを起動するときに、デフォルトのブロックデバイスマッピングが、指定した AMI によって提供されます。追加のインスタンスストアボリュームが必要な場合は、起動時にインスタンスに追加する必要があります。AMI ブロックデバイスマッピングで指定されたデバイスを省略することもできます。

考慮事項

  • M3 インスタンスの場合は、インスタンスのブロックデバイスマッピングで指定しなくても、インスタンスストアボリュームを受け取る可能性があります。

  • HS1 インスタンスの場合は、AMI のブロックデバイスマッピングで指定するインスタンスストアボリュームの数にかかわらず、AMI から起動されるインスタンスのブロックデバイスマッピングには、サポートされたインスタンスストアボリュームの最大数が自動的に含まれます。起動する前に、インスタンスのブロックデバイスマッピングから、必要としないインスタンスストアボリュームを明示的に削除する必要があります。

コンソールを使用して、インスタンスのブロックデバイスマッピングを更新するには

  1. Amazon EC2 コンソールを開きます。

  2. ダッシュボードから、[インスタンスの作成] を選択します。

  3. [Step 1: Choose an Amazon Machine Image (AMI)] で、使用する AMI を選択し、[Select] を選択します。

  4. ウィザードに従って [Step 1: Choose an Amazon Machine Image (AMI)]、[Step 2: Choose an Instance Type]、および [Step 3: Configure Instance Details] を完了します。

  5. [Step 4: Add Storage] で、必要に応じて既存のエントリを変更します。追加する各インスタンスストアボリュームについて、[Add New Volume] を選択し、[Volume Type] からインスタンスストアボリュームを選択して、[Device] からデバイス名を選択します。使用できるインスタンスストアボリュームの数は、インスタンスタイプによって異なります。

  6. ウィザードを終了してインスタンスを起動します。

  7. (オプション) インスタンスで利用可能なインスタンスストアボリュームを表示するには、lsblk コマンドを実行します。

コマンドラインを使用してインスタンスのブロックデバイスマッピングを更新するには

次のいずれかのオプションコマンドを対応するコマンドで使用できます。これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセス を参照してください。

インスタンスでインスタンスストアボリュームを使用できるようにする

インスタンスの起動後に、インスタンスストアボリュームはインスタンスで使用できますが、ボリュームがマウントされるまでアクセスすることはできません。Linux インスタンスの場合は、インスタンスタイプによって、どのインスタンスストアボリュームがマウントされるのか、またご自分でマウントできるインスタンスが何かが決まります。Windows インスタンスの場合は、EC2Config サービスが、インスタンス用にインスタンスストアボリュームをマウントします。インスタンスのブロックデバイスドライバーは、ボリュームのマウント時に実際のボリューム名を割り当てますが、この割り当てられた名前は、Amazon EC2 が推奨する名前とは異なる可能性があります。

多くのインスタンスストアボリュームは ext3 ファイルシステムを使用して事前にフォーマットされています。TRIM コマンドをサポートする SSD ベースのインスタンスストアボリュームは、ファイルシステムを使用して事前にフォーマットされていません。ただし、インスタンスを起動してから、選択したファイルシステムでボリュームをフォーマットすることもできます。詳細については、「インスタンスストアボリュームの TRIM のサポート」を参照してください。Windows インスタンスの場合は、EC2Config サービスが NTFS ファイルシステムでインスタンスストアボリュームをフォーマットします。

インスタンスストアデバイスが使用できるかどうかは、インスタンスメタデータを使用してインスタンスの内部から確認できます。詳細については、「インスタンスストアボリュームのインスタンスブロックデバイスマッピングの表示」を参照してください。

Windows インスタンスの場合は、Windows Disk Management を使用してインスタンスストアボリュームを表示することもできます。詳細については、「Windows Disk Management を使用したディスクの一覧表示」を参照してください。

Linux インスタンスの場合、次の手順で説明されているように、インスタンスストアボリュームを表示してマウントできます。

Linux でインスタンスストアボリュームを使用できるようにするには

  1. SSH クライアントを使用してインスタンスに接続します。詳細については、「Linux インスタンスへの接続」を参照してください。

  2. df -h コマンドを使用して、フォーマットおよびマウントされたボリュームを表示します。

    [ec2-user ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 3.8G 72K 3.8G 1% /dev tmpfs 3.8G 0 3.8G 0% /dev/shm /dev/nvme0n1p1 7.9G 1.2G 6.6G 15% /
  3. lsblk を使用して、起動時にマッピングされたが、フォーマットおよびマウントされていないボリュームを表示します。

    [ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:1 0 8G 0 disk ├─nvme0n1p1 259:2 0 8G 0 part / └─nvme0n1p128 259:3 0 1M 0 part nvme1n1 259:0 0 69.9G 0 disk
  4. マッピングされたのみのインスタンスストアボリュームをフォーマットしてマウントするには、以下の作業を行います。

    1. mkfs コマンドを使用してデバイスでファイルシステムを作成します。

      [ec2-user ~]$ sudo mkfs -t xfs /dev/nvme1n1
    2. mkdir コマンドを使用してデバイスをマウントするディレクトリを作成します。

      [ec2-user ~]$ sudo mkdir /data
    3. mount コマンドを使用して、新しく作成されたディレクトリにデバイスをマウントします。

      [ec2-user ~]$ sudo mount /dev/nvme1n1 /data

アタッチされたボリュームを再起動後に自動的にマウントする手順については、「再起動後に接続ボリュームを自動的にマウントする」を参照してください。