Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

Linux で Amazon EBS ボリュームを使用できるようにする

Amazon EBS ボリュームをインスタンスにアタッチすると、それはブロックデバイス 任意のファイルシステムでボリュームをフォーマットし、マウントできます。EBS ボリュームを使用できるようにすると、他のボリュームと同じようにアクセスできます。このファイルシステムに書き込まれるデータはすべて EBS ボリュームに書き込まれますが、デバイスを使用するアプリケーションには透過的になります。

EBS ボリュームのスナップショットは、バックアップ目的で作成したり、別のボリュームを作成する際のベースラインとして使用したりできます。詳細については、「Amazon EBS スナップショット」を参照してください。

Windows インスタンスのボリュームに関する手順は、『Windows インスタンスの Amazon EC2 ユーザーガイド』の「Windows でボリュームを使用できるようにする」を参照してください。

アタッチ済みボリュームのフォーマットとマウント

ルートデバイス用の EBS ボリューム /dev/xvda を持つ EC2 インスタンスがあり、/dev/sdf を使用して空の EBS ボリュームをインスタンスにアタッチしたとします。新たなアタッチ済みボリュームを使用するには、次の手順を使用します。

Linux で EBS ボリュームをフォーマットしてマウントするには

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

  2. ブロックデバイスマッピングで指定したものとは異なるデバイス名を使用して、デバイスをインスタンスにアタッチすることができます。詳細については、「Linux インスタンスでのデバイスの名前付け」を参照してください。lsblk コマンドを使用して、使用可能なディスクデバイスとマウントポイント (該当する場合) を表示し、使用する正しいデバイス名を決定します。lsblk の出力は、フルデバイスパスから /dev/ プレフィックスを削除します。

    EBS ボリュームを NVMe ブロックデバイスとして公開する Nitro ベースのインスタンスの出力例を次に示します。ルートデバイスは /dev/nvme0n1 です。接続されているボリュームは /dev/nvme1n1 で、まだマウントされていません。

    [ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:0 0 10G 0 disk nvme0n1 259:1 0 8G 0 disk -nvme0n1p1 259:2 0 8G 0 part / -nvme0n1p128 259:3 0 1M 0 part

    以下は T2 インスタンスの出力例です。ルートデバイスは /dev/xvda です。接続されているボリュームは /dev/xvdf で、まだマウントされていません。

    [ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk -xvda1 202:1 0 8G 0 part / xvdf 202:80 0 10G 0 disk
  3. ボリュームにファイルシステムがあるかどうかを確認します。新しいボリュームは未加工のブロックデバイスであるため、マウントして使用する前に、ボリュームにファイルシステムを作成する必要があります。スナップショットから復元されたボリュームは、ファイルシステムを備えている可能性が高くなります。既存のファイルシステムの上に新しいファイルシステムを作成すると、データが上書きされます。

    デバイスに関する情報 (ファイルシステムの種類など) を一覧表示するには、file -s コマンドを使用します。次の出力例のように、出力に data だけが表示されている場合は、デバイスにはファイルシステムが存在していないため、ファイルシステムを作成する必要があります。

    [ec2-user ~]$ sudo file -s /dev/xvdf /dev/xvdf: data

    デバイスにファイルシステムがある場合は、ファイルシステムの種類に関する情報が表示されます。たとえば、次の出力は XFS ファイルシステムを持つルートデバイスを示しています。

    [ec2-user ~]$ sudo file -s /dev/xvda1 /dev/xvda1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
  4. (条件付き) 前の手順でデバイスにファイルシステムがあることがわかった場合は、このステップをスキップしてください。空のボリュームがある場合は、mkfs -t コマンドを使ってボリューム上にファイルシステムを作成します。

    警告

    すでにデータが入っているボリューム (たとえば、スナップショットから復元されたボリューム) をマウントしている場合は、このコマンドを使用しないでください。ステップ 1 を実行した場合、ボリュームがフォーマットされ、既存のデータが削除されます。

    [ec2-user ~]$ sudo mkfs -t xfs /dev/xvdf

    mkfs.xfs がないというエラーが表示された場合は、次のコマンドを使用して XFS ツールをインストールしてから、前述のコマンドを繰り返します。

    [ec2-user ~]$ sudo yum install xfsprogs
  5. mkdir コマンドを使用して、ボリュームのマウントポイントディレクトリを作成します。マウントポイントとは、ボリュームをマウントした後、ファイルシステムツリー内でボリュームが配置され、ファイルの読み書きが実行される場所です。次の例では、/data という名前のディレクトリが作成されます。

    [ec2-user ~]$ sudo mkdir /data
  6. 次のコマンドを使用して、前のステップで作成したディレクトリにボリュームをマウントします。

    [ec2-user ~]$ sudo mount /dev/xvdf /data
  7. 新しいボリュームマウントのファイルのアクセス許可をプレビューして、ユーザーとアプリケーションがボリュームに書き込みできることを確認します。ファイルのアクセス許可の詳細については、Linux Documentation Project の「ファイルセキュリティ」を参照してください。

  8. インスタンスを再起動した後にマウントポイントが自動的に保存されることはありません。再起動後にこの EBS ボリュームを自動的にマウントするには、「再起動後に接続ボリュームを自動的にマウントする」を参照してください。

再起動後に接続ボリュームを自動的にマウントする

システムブート時に常に、このアタッチ済みの EBS ボリュームをマウントするには、/etc/fstab ファイルにデバイス用のエントリを追加します。

/etc/fstab でシステムの現在のデバイス名 (/dev/xvdf など) は使用できますが、代わりにデバイスの 128 ビット汎用一意識別子 (UUID) を使用することをお勧めします。デバイス名は変更される可能性がありますが、UUID はパーティションの存続期間を通じて持続します。UUID を使用することで、ハードウェアの再構成後にシステムが起動できなくなる可能性を減らすことができます。詳細については、「EBS デバイスの特定」を参照してください。

再起動後に接続ボリュームを自動的にマウントするには

  1. (オプション) /etc/fstab ファイルのバックアップコピーを作成すると、編集中に誤って破壊/削除してしまった場合にこのコピーを使用できます。

    [ec2-user ~]$ sudo cp /etc/fstab /etc/fstab.orig
  2. blkid コマンドを使用してデバイスの UUID を見つけます。

    [ec2-user ~]$ sudo blkid /dev/xvda1: LABEL="/" UUID="ca774df7-756d-4261-a3f1-76038323e572" TYPE="xfs" PARTLABEL="Linux" PARTUUID="02dcd367-e87c-4f2e-9a72-a3cf8f299c10" /dev/xvdf: UUID="aebf131c-6957-451e-8d34-ec978d9581ae" TYPE="xfs"
  3. 任意のテキストエディタ (例: nano または vim など) を使って /etc/fstab ファイルを開きます。

    [ec2-user ~]$ sudo vim /etc/fstab
  4. 指定されたマウントポイントにデバイスをマウントするために、/etc/fstab に次のエントリを追加します。フィールドは、blkid によって返される UUID 値、マウントポイント、ファイルシステム、および推奨されるファイルシステムマウントオプションです。詳細については、「fstab (man fstab の実行)」のマニュアルページを参照してください。

    UUID=aebf131c-6957-451e-8d34-ec978d9581ae /data xfs defaults,nofail 0 2

    注記

    このボリュームをアタッチしないでインスタンスを起動することを目的としている場合 (たとえば、ボリュームを別のインスタンスに移動した後)、nofail マウントオプションを追加し、ボリュームのマウントでエラーが発生してもインスタンスが起動できるようにしてください。また、Debian から派生した OS (16.04 より前の Ubuntu バージョンなど) では、nobootwait マウントオプションを追加する必要があります。

  5. 入力内容が正しいことを確認するには、次のコマンドを実行してデバイスをアンマウントし、すべてのファイルシステムを /etc/fstab にマウントします。エラーがなければ、/etc/fstab ファイルは問題ありません。ファイルシステムは再起動後に自動的にマウントされます。

    [ec2-user ~]$ sudo umount /data [ec2-user ~]$ sudo mount -a

    エラーメッセージが表示されたら、ファイル内のエラーに対処してください。

    警告

    /etc/fstab ファイルにエラーがあると、システムがブート不能になる可能性があります。/etc/fstab ファイルにエラーがあるシステムをシャットダウンしないでください。

    /etc/fstab のエラーを修正する方法がわからず、このステップの最初のステップでバックアップファイルを作成した場合は、次のコマンドを使用してバックアップファイルから復元できます。

    [ec2-user ~]$ sudo mv /etc/fstab.orig /etc/fstab