Amazon EBS ボリュームを置き換える - Amazon Elastic Compute Cloud

Amazon EBS ボリュームを置き換える

Amazon EBS スナップショットは、速度、利便性、コストに優れるため、Amazon EC2 で推奨されるバックアップツールです。スナップショットからボリュームを作成すると、すべてのデータをそのままの状態で、過去の特定時点の状態が再作成されます。スナップショットから作成されたボリュームをインスタンスにアタッチすることで、リージョン間でのデータの複製、テスト環境の作成、損傷または破損した本稼働ボリュームの完全な置換、特定のファイルとディレクトリの取得とアタッチされた別のボリュームへの転送を行うことができます。詳細については、「Amazon EBS スナップショット」を参照してください。

ボリュームを置き換える手順は、ボリュームがルートボリュームかデータボリュームかによって異なります。

ルートボリュームを置き換える

Amazon EC2 では、実行中のインスタンスのルート EBS ボリュームを置き換えることができます。インスタンスのルートボリュームを開始状態、または、特定のスナップショットに復元できます。その際、インスタンスは停止されません。これにより、ルートボリュームの破損やゲスト OS ネットワーク設定エラーなどの問題は、次の状態を維持しながら修正できます。

  • インスタンスストアボリュームに格納されたデータ — インスタンスストアボリュームは、ルートボリュームが置き換えられた後も、インスタンスにアタッチされたままになります。

  • ネットワーク設定 — すべてのネットワークインターフェイスはインスタンスにアタッチされたままとなり、IP アドレス、識別子、およびアタッチメント ID を保持します。インスタンスが利用可能になると、保留中のネットワークトラフィックがすべてフラッシュされます。さらに、インスタンスは同じ物理ホスト上に残るため、パブリック IP アドレス、プライベート IP アドレス、および DNS 名が保持されます。

  • IAM ポリシー — インスタンスに関連付けられた IAM プロファイルとポリシー (タグベースのポリシーなど) は保持され、適用されます。

インスタンスのルートボリュームを置き換えると、新しいボリュームは元のボリュームの起動状態に復元されるか、特定のスナップショットを使用して復元されます。元のボリュームがインスタンスからデタッチされ、新しいボリュームはその代わりにインスタンスにアタッチされます。元のボリュームは自動的に削除されません。不要になった場合は、ルートボリューム置換タスクの完了後に手動で削除できます。ルートボリューム置換タスクの状態の詳細については、ルートボリューム置換タスクを表示する をご参照ください。

制約事項

  • インスタンスストアボリュームの場合、ルートボリュームを置き換えることはできません。

  • メタルインスタンスのルートボリュームを置き換えることはできません。

ルートボリュームを置き換える

インスタンスのルートボリュームを置き換える場合、ボリュームを最初の起動状態に復元するか、特定のスナップショットにボリュームを復元するかを選択できます。ボリュームを特定のスナップショットに復元する場合は、そのルートボリュームから取得したスナップショットを選択する必要があります。ルートボリュームを初期起動状態に復元することを選択した場合、ルートボリュームは、ボリュームの作成に使用されたスナップショットから復元されます。

次のいずれかの方法を使用して、インスタンスのルートボリュームを置き換えることができます。Amazon EC2 コンソールを使用する場合、新しいコンソールでのみ、ルートボリュームを置き換えることができます。

Amazon EC2 console

ルートボリュームを置き換えるには

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

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

  3. ルートボリュームを置き換えるインスタンスを選択し、[Actions] (アクション)、[Monitor and troubleshoot] (監視とトラブルシューティング)、[Replace root volume] (ルートボリュームを置換) の順に選択します。

  4. [Replace root volume] (ルートボリュームを置換) の画面で、次のいずれかの操作を行います。

    • インスタンスのルートボリュームを初期起動状態に復元するには、スナップショットを選択せずに [Create replacement task] (置換タスクを作成) を選択します。

    • インスタンスのルートボリュームを特定のスナップショットに復元するには、[Snapshot] (スナップショット) で、使用するスナップショットを選択し、[Create replacement task] (置換タスクを作成) を選択します。

AWS CLI

ルートボリュームを初期起動状態に復元するには

create-replace-root-volume-task コマンドを使用します。ルートボリュームを置き換えるインスタンスの ID を指定し、--snapshot-id パラメータを省略します。

$ aws ec2 create-replace-root-volume-task --instance-id instance_id

次に例を示します。

$ aws ec2 create-replace-root-volume-task --instance-id i-1234567890abcdef0

ルートボリュームを特定のスナップショットに復元するには

create-replace-root-volume-task コマンドを使用します。ルートボリュームを置き換えるインスタンスの ID と、使用するスナップショットの ID を指定します。

$ aws ec2 create-replace-root-volume-task --instance-id instance_id --snapshot-id snapshot_id

次に例を示します。

$ aws ec2 create-replace-root-volume-task --instance-id i-1234567890abcdef0 --snapshot-id snap-9876543210abcdef0

ルートボリューム置換タスクを表示する

ルートボリューム置換タスクを開始すると、タスクは次の状態になります。

  • pending — 置換ボリュームが作成されています。

  • in-progress — 元のボリュームがデタッチされ、置換ボリュームがアタッチされています。

  • succeeded — 置換ボリュームはインスタンスに正常にアタッチされ、インスタンスは利用可能です。

  • failing — 置換タスクが失敗を処理しています。

  • failed — 置換タスクは失敗しましたが、元のルートボリュームはまだアタッチされています。

  • failing-detached — 置換タスクが失敗を処理しています。インスタンスにルートボリュームがアタッチされていない可能性があります。

  • failed-detached — 置換タスクが失敗し、インスタンスにルートボリュームがアタッチされていません。

次のいずれかの方法を使用して、インスタンスのルートボリューム置換タスクを表示できます。

Amazon EC2 console

ルートボリュームの置換タスクを表示するには

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

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

  3. ルートボリューム置換タスクを表示するインスタンスを選択し、[Storage] (ストレージ) タブを選択します。

  4. [Storage] (ストレージ) タブで、[Recent root volume replacement tasks] (最近のルートボリューム置換タスク) を展開します。

AWS CLI

ルートボリューム置換タスクのステータスを表示するには

describe-replace-root-volume-task コマンドを使用して、表示するルートボリューム置換タスクの ID を指定します。

$ aws ec2 describe-replace-root-volume-task --replace-root-volume-task-ids task_id_1 task_id_2

次に例を示します。

$ aws ec2 describe-replace-root-volume-task --replace-root-volume-task-ids replacevol-1234567890abcdef0
{ "ReplaceRootVolumeTasks": [ { "ReplaceRootVolumeTaskId": "replacevol-1234567890abcdef0", "InstanceId": "i-1234567890abcdef0", "TaskState": "succeeded", "StartTime": "2020-11-06 13:09:54.0", "CompleteTime": "2020-11-06 13:10:14.0" }] }

または、instance-id フィルターを指定して、結果をインスタンス別にフィルタリングします。

$ aws ec2 describe-replace-root-volume-task --filters Name=instance-id,Values=instance_id

次に例を示します。

$ aws ec2 describe-replace-root-volume-task --filters Name=instance-id,Values=i-1234567890abcdef0

データボリュームを置き換える

(ルートではない) データボリュームを、ボリュームの以前のスナップショットから作成された別のボリュームに置き換えるには、以下の手順を使用できます。現在のボリュームをデタッチしてから、新しいボリュームをアタッチする必要があります。

EBS ボリュームのアタッチ先は、同じアベイラビリティーゾーン内の EC2 インスタンスに限られることに注意してください。

データボリュームを置き換えるには

  1. スナップショットからボリュームを作成し、新しいボリュームの ID を書き留めます。詳細については、「スナップショットからのボリュームの作成」を参照してください。

  2. ボリュームページで、置き換えるボリュームのチェックボックスをオンにします。[Description] (説明) タブで [Attachment information] (アタッチ済み情報) を探し、 ボリュームのデバイス名 (例: /dev/sda1) とインスタンスの ID を書き留めます。

  3. ボリュームを選択したまま、[アクション]、[ボリュームのデタッチ] の順に選択します。確認を求めるメッセージが表示されたら、[Yes, Detach] を選択します。このボリュームのチェックボックスをオフにします。

  4. ステップ 1 で作成した新しいボリュームのチェックボックスをオンにします。[Actions]、[Attach Volume] の順に選択します。ステップ 2 で書き留めたインスタンス ID とデバイス名を入力し、[アタッチ] を選択します。

  5. インスタンスに接続し、ボリュームをマウントします。詳細については、「Linux で Amazon EBS ボリュームを使用できるようにする」を参照してください。