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

Amazon EC2 ルートデバイスボリューム

インスタンスを起動するときは、ルートデバイスボリュームに格納されているイメージを使用してインスタンスがブートされます。Amazon EC2 のサービス開始当初は、すべての AMI が「Amazon EC2 インスタンスストア backed」でした。つまり、AMI から起動されるインスタンスのルートデバイスは、Amazon S3 に格納されたテンプレートから作成されるインスタンスストアボリュームです。Amazon EBS の導入後は Amazon EBS を基にした AMI も導入されました。つまり、AMI から起動されるインスタンスのルートデバイスが、Amazon EBS スナップショットから作成される Amazon EBS ボリュームであるということです。

お客様は、「Amazon EC2 インスタンスストア backed」の AMI と「Amazon EBS backed」の AMI から選択できます。推奨されるのは「Amazon EBS backed」です。この AMI は起動が高速であり、永続的ストレージを使用しているからです。

Amazon EC2 でルートボリュームに使用するデバイス名について詳しくは、「Linux インスタンスでのデバイスの名前付け」を参照してください。

ルートデバイスストレージの概念

instance store-backed AMI または Amazon EBS-backed AMI のどちらからでもインスタンスを起動できます。AMI の説明にはそのタイプが含まれており、場所によってルートデバイスが ebs (Amazon EBS-Backed の場合) または instance store (Instance store-Backed の場合) と表示されます。各タイプの AMI を使用して実行できることには大きな違いがあるため、タイプを区別できることは重要です。違いについての詳細は ルートデバイスのストレージ を参照してください。

instance store-backed のインスタンス

インスタンスストアをルートデバイスに使用するインスタンスでは自動的に、インスタンスストアボリュームを利用できるようになり、そのボリュームの 1 つがルートデバイスボリュームとなります。インスタンスを起動すると、インスタンスのブートに使用されるイメージがルートボリュームにコピーされます。インスタンスタイプによっては、オプションで追加のインスタンスストアボリュームを使用できることに注意してください。

インスタンスストアボリュームのデータはインスタンスが実行している間は維持されますが、インスタンスが終了すると (Instance store-Backed インスタンスは [Stop] アクションをサポートしていません)、またはインスタンスが失敗すると (基盤となるドライブに問題がある場合など)、削除されます。

 Amazon EC2 instance store-backed インスタンスのルートデバイス

障害が発生したり終了されたりした instance store-backed インスタンスは復元できません。Amazon EC2 instance store-backed インスタンスの使用を予定している場合は、インスタンスストアのデータを複数のアベイラビリティーゾーンにまたがって分散させることを強くお勧めします。また、インスタンスストアボリュームの重要データを永続的ストレージに定期的にバックアップする必要があります。

詳細については、「Amazon EC2 インスタンスストア」を参照してください。

Amazon EBS-backed インスタンス

Amazon EBS をルートデバイスに使用するインスタンスには自動的に、Amazon EBS ボリュームがアタッチされます。Amazon EBS Backed インスタンスを起動するときに、AMI で参照されている Amazon EBS スナップショットごとに 1 つの Amazon EBS ボリュームが作成されます。インスタンスタイプによっては、Amazon EBS ボリュームまたはインスタンスストアボリュームをオプションで使用できます。

 Amazon EBS-backed インスタンスのルートデバイスボリュームおよびその他の Amazon EBS ボリューム

Amazon EBS-backed インスタンスは、停止後に再起動できます。アタッチされているボリュームに格納されているデータに影響を及ぼすこともありません。Amazon EBS-backed インスタンスが停止状態にあるときは、インスタンス関連およびボリューム関連の様々なタスクを実行できます。たとえば、インスタンスのプロパティの変更、インスタンスのサイズの変更、使用しているカーネルの更新が可能です。また、デバッグなどの目的で別の実行中インスタンスにルートボリュームをアタッチすることもできます。

Amazon EBS-backed インスタンスに障害が発生した場合は、以下のいずれかの方法によってセッションを復元できます。

  • 停止して再起動します (最初にこの方法を試してください)。

  • 関連するすべてのボリュームのスナップショットを自動的に作成し、新しい AMI を作成します。詳細については、「Amazon EBS-Backed Linux AMI の作成」を参照してください。

  • 以下の手順に従って、ボリュームを新しいインスタンスにアタッチします。

    1. ルートボリュームのスナップショットを作成します。

    2. 作成したスナップショットを使用して新しい AMI を登録します。

    3. 新しい AMI から新しいインスタンスを起動します。

    4. 残りの Amazon EBS ボリュームを古いインスタンスからデタッチします。

    5. Amazon EBS ボリュームを新しいインスタンスに再アタッチします。

詳細については、「Amazon EBS ボリューム」を参照してください。

ルートデバイスタイプによる AMI の選択

インスタンスの起動時に指定する AMI によって、インスタンスのルートデバイスボリュームのタイプが決まります。

Amazon EBS-Backed AMI を選択するには コンソールを使用する

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

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

  3. フィルタの一覧から、イメージタイプ ([Public images] など) を選択します。検索バーで、[Platform] を選択してオペレーティングシステム ([Amazon Linux] など) を選択し、[Root Device Type] をクリックして [EBS images] を選択します。

  4. (オプション) 選択の参考になる追加情報を表示するには、[Show/Hide Columns] アイコンを選択し、表示する列を更新して、[Close] を選択します。

  5. AMI を選択し、その AMI ID を記録します。

Instance store-Backed AMI を選択するには コンソールを使用する

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

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

  3. フィルタの一覧から、イメージタイプ ([Public images] など) を選択します。検索バーで、[<Platform] を選択してオペレーティングシステム ([Amazon Linux] など) を選択し、[Root Device Type] を選択して [Instance store] を選択します。

  4. (オプション) 選択の参考になる追加情報を表示するには、[Show/Hide Columns] アイコンを選択し、表示する列を更新して、[Close] を選択します。

  5. AMI を選択し、その AMI ID を記録します。

コマンドラインを使用して AMI のルートデバイスボリュームの種類を確認するには

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

インスタンスのルートデバイスタイプの判別

コンソールを使用してインスタンスのルートデバイスタイプを判別するには

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

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

  3. 次のように、[Description] タブで [Root device type] の値を確認します。

    • 値が ebs の場合、これは Amazon EBS-Backed インスタンスです。

    • 値が instance store の場合、これは Instance store-Backed インスタンスです。

コマンドラインを使用してインスタンスのルートデバイスタイプを判別するには

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

永続的ルートデバイスボリュームへの変更

デフォルトでは、Amazon EBS-backed AMI のルートデバイスボリュームは、インスタンスを終了すると削除されます。デフォルトの動作を変更するには、ブロックデバイスマッピングを使用して、DeleteOnTermination 属性を false に設定します。

コンソールを使用したルートボリュームの永続的な変更

コンソールを使用して、インスタンスの起動時に DeleteOnTermination 属性を変更できます。実行中のインスタンスのこの属性を変更するには、コマンドラインを使用する必要があります。

コンソールを使用して、起動時にインスタンスのルートデバイスボリュームが存続するように変更するには

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

  2. Amazon EC2 コンソールダッシュボードで、[Launch Instance] を選択します。

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

  4. ウィザードにしたがって [Choose an Instance Type] ページと [Configure Instance Details] ページを設定します。

  5. [Add Storage] ページで、ルートボリュームの [Delete On Termination] の選択を解除します。

  6. ウィザードの残りのページを完了した後、[Launch ] を選択します。

インスタンスの詳細ペインでルートデバイスボリュームの詳細を表示することにより、設定を確認できます。[Block devices] の隣にあるルートデバイスボリュームのエントリを選択します。デフォルトでは、[Delete on termination] は [True] です。デフォルトの動作を変更した場合は、[Delete on termination] が [False] になっています。

AWS CLI を使用して、インスタンスのルートボリュームが存続するように変更するには

AWS CLI を使用して、インスタンスの起動時またはインスタンスの実行中に DeleteOnTermination 属性を変更することができます。

例 起動時

run-instances コマンドを使用して、DeleteOnTermination 属性を false に設定するブロックデバイスマッピングを含めることにより、ルートボリュームを保持します。

Copy
aws ec2 run-instances --block-device-mappings file://mapping.json other parameters...

mapping.json で以下を指定します。

Copy
[ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": false } } ]

describe-instances コマンドを使用して、次に示すようにコマンド出力でデバイスの BlockDeviceMappings エントリを探すことで、DeleteOnTerminationfalse であることを確認します。

Copy
... "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "Status": "attached", "DeleteOnTermination": false, "VolumeId": "vol-1234567890abcdef0", "AttachTime": "2013-07-19T02:42:39.000Z" } } ...

例 インスタンスの実行中

modify-instance-attribute コマンドを使用して、DeleteOnTermination 属性を false に設定するブロックデバイスマッピングを含めることにより、ルートボリュームを保持します。

Copy
aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --block-device-mappings file://mapping.json

mapping.json で以下を指定します。

Copy
[ { "DeviceName": "/dev/sda1", "Ebs" : { "DeleteOnTermination": false } } ]