web-dev-qa-db-ja.com

実行中のインスタンスとボリュームのスナップショットからのEC2 AMIイメージの作成

LinuxベースのEC2インスタンスがダウンタイムなしで実行中にバックアップし、後で新しいインスタンスを起動したい。 (インスタンスはWebサーバーとPostgresデータベースを実行しています。)

これを行うには2つの方法があることがわかりましたが、それらの間の結果の違いは何なのか混乱しています。

オプション#1:実行中のインスタンスから直接AMIを作成する:

  1. 実行中の元のインスタンスから新しいAMIを直接作成します。
  2. AMIから新しいインスタンスを起動します

オプション#2:スナップショットからAMIを手動で作成します:

  1. 実行中の元のインスタンスに接続されているボリュームからスナップショットを作成します
  2. スナップショットからAMIを作成し、アーキテクチャやカーネルIDなどの詳細を手動で入力します
  3. 手動で作成したイメージから新しいインスタンスを起動します

混乱しているのは、インスタンスから直接AMIを作成すると、EC2がデフォルトでインスタンスを再起動することです。次のツールチップのチェックボックス「再起動しない」があります。

有効にすると、Amazon EC2はイメージを作成する前にインスタンスをシャットダウンしません。このオプションを使用すると、作成されたイメージのファイルシステムの整合性は保証されません。

これらの2つの方法のオプションの結果に本当に違いはありますか?私にとっては、自動化されたウィザードと同じことを手動で行っているように感じます。スナップショットを生成し、カーネルIDとアーキテクチャを選択します。

なぜ一方には警告テキストがあり、もう一方にはないのですか?実行中のインスタンスのスナップショットは比較的安全であると考えられています。AMIの作成がバックグラウンドでスナップショットを行う場合、すべて手動で行うよりも危険ですか?

22
Vilsepi

EC2から直接AMIを作成するときにno rebootオプションを選択した場合も、まったく同じです。これは基本的に、矛盾した状態になる可能性のあるスナップショットを作成します。たとえば、スナップショットの作成時に大量のディスク書き込みを行っている場合、不整合な状態になるリスクが高まります。

「一貫した」状態でスナップショットを作成する場合は、最初にインスタンスをシャットダウンしてから、スナップショットを取得してからインスタンスを再起動する必要があります。これが、停止して再起動する必要がないため、EC2からのAMI作成オプションが非常に役立つ理由です。 Amazonが処理し、IPアドレスはインスタンスで変更されません。 (インスタンスを停止/再起動すると、IPアドレスが実際に変更されます)

ボリュームから直接スナップショットを作成した場合、Amazonに警告が表示されない理由はよくわかりませんが、ボリュームの観点からは、ボリュームが実行中のインスタンスで実行されているか、非実行中のインスタンスで使用されているかは関係ありません(スナップショットの作成に影響を与えないようにアタッチまたはデタッチするかどうかのみを考慮します)

13
Rico