AMI と EBS スナップショットで EBS ボリュームバックアップを作成します - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AMI と EBS スナップショットで EBS ボリュームバックアップを作成します

AWS には、AMIs とスナップショットを作成および管理するための豊富なオプションが用意されています。ニーズに合ったアプローチを使用できます。多くのカスタマーが直面する一般的な問題は、スナップショットのライフサイクルを管理し、目的や保存ポリシーなどによってスナップショットを明確に調整することです。適切なタグ付けを行わないと、スナップショットが誤って削除されたり、自動クリーンアッププロセスの一環として削除されたりするリスクがあります。また、まだ必要かどうかが明確にわからないため、古いスナップショットが保存されているために料金を支払うことになる可能性もあります。

スナップショットまたは AMI を作成する前に EBS ボリュームを準備する

スナップショットを作成したり AMI を作成したりする前に、EBS ボリュームに必要な準備を行います。AMI を作成すると、インスタンスにアタッチされている EBS ボリュームごとに新しいスナップショットが作成されるため、これらの準備は AMI にも適用されます。

電源が入っている EC2 インスタンスが使用している、アタッチされた EBS ボリュームのスナップショットを取ることができます。ただし、スナップショットでは、スナップショットコマンドを実行した時点で EBS ボリュームに書き込まれているデータのみがキャプチャされます。そのため、アプリケーションやオペレーティングシステムによってキャッシュされたデータは除外される可能性があります。ベストプラクティスは、システムを I/O を一切実行していない状態にすることです。理想的には、マシンはトラフィックを受け付けず、停止状態ですが、24 時間 365 日の IT 運用が標準となっているため、このような状況はまれです。システムメモリからアプリケーションが使用しているディスクにデータをフラッシュし、スナップショットを取るのに十分な時間、ボリュームへのファイル書き込みを一時停止できれば、スナップショットは完了するはずです。

クリーンバックアップを作成するには、データベースまたはファイルシステムを停止する必要があります。これを行う方法は、データベースまたはファイルシステムによって異なります。

データベースのプロセスは以下のとおりです:

  1. 可能であれば、データベースをホットバックアップモードにします。

  2. Amazon EBS スナップショットコマンドを実行します。

  3. データベースをホットバックアップモードから解除するか、リードレプリカを使用している場合はリードレプリカインスタンスを終了します。

ファイルシステムのプロセスも同様ですが、オペレーティングシステムやファイルシステムの能力に依存します。例えば、XFS は一貫したバックアップのためにデータをフラッシュできるファイルシステムです。詳細については、「xfs_freeze」を参照してください。あるいは、I/O のフリーズをサポートする論理ボリュームマネージャーを使用すれば、このプロセスを簡単に行うことができます。

しかし、ボリュームへのすべてのファイル書き込みをフラッシュまたは一時停止できない場合は、次のようにします:

  1. オペレーティングシステムからボリュームをアンマウントします。

  2. スナップショットコマンドを発行します。

  3. ボリュームを再マウントして、一貫性のある完全なスナップショットを作成します。スナップショットのステータスがペンディングの間は、ボリュームを再マウントして使用できます。

スナップショットの処理はバックグラウンドで継続され、スナップショットの作成は迅速に行われ、特定の時点がキャプチャされます。バックアップしているボリュームは、ほんの数秒でアンマウントされます。停止が予想される短いバックアップウィンドウをスケジュールして、クライアントが適切に処理するように設定できます。

ルートデバイスとして機能する EBS ボリュームのスナップショットを作成する場合は、スナップショットを取る前にインスタンスを停止します。Windows には、アプリケーション整合性のあるスナップショットの作成に役立つ Volume Shadow Copy Service (VSS) が用意されています。 AWS には、VSS 対応アプリケーションのイメージレベルのバックアップを作成するために実行できる Systems Manager ドキュメントが用意されています。スナップショットには、これらのアプリケーションとディスクとの間で保留されているトランザクションのデータが含まれます。すべてのアタッチされたボリュームのバックアップを実行する際に、インスタンスのシャットダウンあるいは切断を必要としません。詳細については、AWS ドキュメントを参照してください。

注記

別の同様のインスタンスをデプロイするために Windows AMI を作成する場合は、EC2Config または EC2Launch を使用してインスタンスを Sysprep します。次に、停止したインスタンスから AMI を作成します。Sysprep は Amazon EC2 Windows インスタンスから SID、コンピュータ名、ドライバなどの固有の情報を削除します。重複した SID は、Active Directory、Windows Server Update Services (WSUS)、ログインの問題、Windows ボリュームキーのアクティベーション、Microsoft Office、およびサードパーティ製品で問題を引き起こす可能性があります。AMI がバックアップ目的で、同じインスタンスをすべての固有情報をそのまま復元したい場合は、インスタンスで Sysprep を使用しないでください。

EBS ボリュームのスナップショットをコンソールから手動で作成します。

インスタンスで完全にテストされていない大きな変更を加える前に、適切なボリュームまたはインスタンス全体のスナップショットを作成します。例えば、インスタンス上のアプリケーションやシステムソフトウェアをアップグレードしたり、パッチを当てたりする前にスナップショットを作成したい場合があります。

スナップショットはコンソールから手動で作成できます。Amazon EC2 コンソールの[Elastic Block Store Volumes] ページで、バックアップするボリュームを選択します。次に [Actions] メニューから [Create Snapshot] を選択します。フィルタボックスにインスタンス ID を入力すると、特定のインスタンスにアタッチされているボリュームを検索できます。

説明を入力し、適切なタグを追加します。Name タグを追加して、後でボリュームを見つけやすくします。タグ付け戦略に基づいて、その他の適切なタグを追加します。

AMI の作成

AMI はインスタンスの起動に必要な情報を提供します。AMI には、イメージの作成時にインスタンスにアタッチされた EBS ボリュームのルートボリュームとスナップショットが含まれます。EBS スナップショットだけから新しいインスタンスを起動することはできません。新しいインスタンスは AMI から起動する必要があります。

AMI を作成すると、使用しているアカウントとリージョンに作成されます。AMIの作成プロセスは、インスタンスにアタッチされた各ボリュームの Amazon EBS スナップショットを作成し、AMI はこれらの Amazon EBS スナップショットを参照します。これらのスナップショットは Amazon S3 に保存され、高い耐久性を持ちます。

EC2 インスタンスの AMI を作成した後、AMI を使用してインスタンスを再作成するか、インスタンスのコピーをさらに起動できます。アプリケーションの移行や DR のために AMI をあるリージョンから別のリージョンにコピーすることもできます。

インスタンスを起動し、イメージを作成し、インスタンスにイメージを起動し、イメージのコピーを作成するプロセス図。

VMWARE 仮想マシンなどの仮想マシンを に移行しない限り、EC2 インスタンスから AMI を作成する必要があります AWS。Amazon EC2 コンソールから AMI を作成するには、インスタンスを選択し、[アクション][イメージ][イメージの作成] の順に選択します。

Amazon Data Lifecycle Manager

Amazon EBS スナップショットの作成、保持、削除を自動化するには、「Amazon Data Lifecycle Manager」 を使うことができます。スナップショット管理を自動化することで、以下のことが可能になります:

  • 定期的なバックアップスケジュールを実施して貴重なデータを保護する。

  • 監査担当者または社内のコンプライアンスが必要とするバックアップを保持する。

  • 古いバックアップを削除してストレージコストを削減する。

Amazon Data Lifecycle Manager を使用すると、EC2 インスタンス (およびそれに接続された EBS ボリューム) または個別の EBS ボリュームのスナップショット管理プロセスを自動化できます。クロスリージョンコピーなどのオプションをサポートしているので、スナップショットを他の AWS リージョンに自動的にコピーすることができます。代替リージョンへのスナップショットのコピーは、DR の取り組みを支援し、代替リージョンでオプションを復元する方法の 1 つです。Amazon Data Lifecycle Manager を使って、高速スナップショット・リストアをサポートするスナップショットライフサイクルポリシーを作成することもできます。

Amazon Data Lifecycle Manager は、Amazon EC2 と Amazon EBS に含まれる機能です。Amazon Data Lifecycle Manager は課金されません。

AWS Backup

AWS Backup は、複数の AWS サービスにまたがるリソースを含むバックアッププランを作成できるため、Amazon Data Lifecycle Manager と一意です。リソースのバックアップを個別に調整するのではなく、一緒に使用しているリソースをカバーするようにバックアップを調整できます。

AWS Backup には、完了したバックアップのリカバリポイントへのアクセスを制限できるバックアップボールトの概念も含まれています。復元オペレーションは、個々のリソースに進み、作成されたバックアップを復元する AWS Backup のではなく、 から開始できます。 には、監査管理やレポートなどの追加機能のホスト AWS Backup も含まれています。詳細については、このガイドの「AWS Backup を使ったバックアップとリカバリー」セクションを参照してください。

マルチボリュームバックアップの実行

スナップショットを使用して RAID アレイの EBS ボリューム上のデータをバックアップする場合、スナップショットは一貫性がなければなりません。これは、ボリュームのスナップショットが個別に作成されるためです。同期していないスナップショットから RAID アレイの EBS ボリュームを復元すると、アレイの整合性が低下します。

RAID アレイのスナップショットの一貫したセットを作成するには、 CreateSnapshots API オペレーションを使用するか、Amazon EC2 コンソールにログインし、Elastic Block Storeスナップショット スナップショットの作成 を選択します。

複数のボリュームのスナップショットを作成するためのスナップショットの作成画面。

RAID 構成で複数のボリュームが接続されているインスタンスのスナップショットは、まとめてマルチボリュームスナップショットとして取得されます。マルチボリュームスナップショットは point-in-time、EC2 インスタンスにアタッチされた複数の EBS ボリュームにまたがる、データ調整されたクラッシュコンシステントなスナップショットを提供します。スナップショットは複数の EBS ボリュームにまたがって自動的に作成されるため、一貫性を保つためにインスタンスを停止してボリューム間で調整する必要はありません。ボリュームのスナップショットが開始された後 (通常は 1、2 秒)、ファイルシステムは操作を続けることができます。

スナップショットが作成されると、各スナップショットは個別のスナップショットとして扱われます。シングルボリュームのスナップショットと同様に、リストア、削除、リージョンやアカウントをまたいだコピーなど、すべてのスナップショット操作を実行できます。単一ボリュームのスナップショットと同じように、マルチボリュームスナップショットにタグを付けることもできます。復元、コピー、または保存中にマルチボリュームスナップショットをまとめて管理するためにタグを付けることをお勧めします。詳細については、AWS ドキュメントを参照してください。

これらのバックアップは、論理ボリュームマネージャーまたはファイルシステムレベルのバックアップからも実行できます。このような場合、従来のバックアップエージェントを使用すると、データをネットワーク経由でバックアップできます。インターネットや AWS Marketplace では、エージェントベースのバックアップソリューションが数多く提供されています。

別の方法として、1 つの大きなボリュームに存在するプライマリシステムボリュームのレプリカを作成する方法があります。これにより、バックアップする必要があるのは大きなボリュームが 1 つだけで、バックアップはプライマリシステムでは行われないため、バックアッププロセスが簡略化されます。ただし、まず、バックアップ中に 1 つのボリュームで十分なパフォーマンスを発揮できるかどうか、および最大ボリュームサイズがアプリケーションに適しているかどうかを判断します。

Amazon EC2 バックアップの保護

バックアップのセキュリティを考慮し、バックアップの偶発的または悪意ある削除を防ぐことが重要です。そのためには、複数の方法を組み合わせて使用することができます。セキュリティ侵害による重要なバックアップの損失を防ぐため、バックアップを別の AWS アカウントにコピーすることをお勧めします。複数の AWS アカウントをお持ちの場合は、他のすべてのアカウントがバックアップをコピーできるアーカイブアカウントとして別のアカウントを指定できます。例えば、AWS Backup でのクロスアカウントバックアップでこれを達成することができます。

また、災害対策計画では、ある地域で障害が発生した場合に、別の AWS リージョンで EC2 インスタンスを複製できるようにする必要がある場合もあります。同じアカウント内の別のリージョンにバックアップをコピーすることで、この目標を達成できます。これにより、偶発的な削除を防止するレイヤーを追加できるだけでなく、ディザスタリカバリ (DR) 目標もサポートできます。AWS Backup はクロスリージョンバックアップをサポートしています。

ec2:DeleteSnapshot および ec2:DeregisterImage アクションへの IAM アクセス許可をブロックすることを検討してください。代わりに、保持ポリシーと方法に EBS スナップショットと Amazon EC2 AMI のライフサイクルを管理させることができます。削除アクションをブロックすることは、EBS スナップショットの WORM (Write-Once、Read-Many) 戦略を実装する方法の 1 つです。EBS スナップショットやその他の AWS リソースをサポートするボールAWS Backup トロック を使用することもできます。

さらに、ec2:ModifyImageAttribute および ec2: IAM アクションをブロックして、ユーザーが AMIs と EBS ModifySnapshotAttribute スナップショットを共有できないようにすることを検討してください。これにより、AMIs とスナップショットが組織の外部 AWS にあるアカウントと共有されなくなります。を使用している場合は AWS Backup、バックアップボールトで同様の操作を実行できないようにユーザーを制限します。詳細については、このガイドの「AWS Backup を使ったバックアップとリカバリー」セクションを参照してください。

Amazon EC2 には、誤って削除してしまった EBS スナップショットを復元するのに役立つごみ箱機能があります。ユーザーにスナップショットの削除を許可している場合は、必要なスナップショットが永久に削除されないように、この機能をオンにします。Amazon EC2 のコンソールでは、複数のスナップショットを選択して 1 回の操作で削除することができるため、ユーザーは複数のスナップショットを削除することに特に注意する必要があります。また、クリーンアップスクリプトや自動化を使用するときは、必要なスナップショットを誤って削除しないように注意してください。ごみ箱機能は、このような状況からの保護に役立ちます。

EBS スナップショットのアーカイブ

EBSスナップショットのアーカイブは、90 日以上リストアするつもりのないボリュームのコピーを参照目的で保持するためのコスト効率のよい方法です。これは、EBS ボリュームに関連するすべてのスナップショットを永久に削除する前の、良い中間ステップになります。例えば、使用されなくなった EBS ボリュームの end-of-lifecycle ステップとしてスナップショットをアーカイブすることを検討できます。削除するよりもアーカイブする方が、ごみ箱を使用するよりもコスト効率の高い削除保持方法でもあります。

Systems Manager、、 AWS SDKs を使用したスナップショット AWS CLIと AMI の作成の自動化

バックアップ方法によっては、スナップショットまたは AMI の作成前後に操作が必要になる場合があります。例えば、ファイルシステムを静止させるために、サービスを停止して開始する必要がある場合があります。または、AMI の作成中にインスタンスを停止して起動する必要がある場合もあります。また、アーキテクチャ内の複数のコンポーネントのバックアップをまとめて作成する必要がある場合もあります。各コンポーネントのバックアップには、作成前と作成後の手順が異なります。

プロセスを自動化し、バックアッププロセスが一貫して適用されていることを確認することで、バックアップのメンテナンスウィンドウ時間を短縮できます。カスタムの作成前および作成後のオペレーションを自動化するには、 AWS CLI と SDK を使用してバックアッププロセスをスクリプト化します。

自動化は Systems Manager ランブックで定義できます。このランブックは、オンデマンドで実行することも、Systems Manager のメンテナンス期間中に実行することもできます。Systems Manager Runbook を実行するアクセス権限をユーザーに付与すれば、Amazon EC2 の混乱を招くコマンドへのアクセス権限をユーザーに付与する必要はありません。また、バックアッププロセスとタグがユーザーによって一貫して適用されていることを確認するのにも役立ちます。AWSCreateSnapshot および AWS CreateImageランブックを使用してスナップショットと AMIsを作成することも、他のユーザーにそのスナップショットと AMI を使用するアクセス許可を付与することもできます。Systems Manager には、AMI のパッチ適用と AMI の作成を自動化するための AWSUpdateLinuxAmi ランブックと AWSUpdateWindowsAmi ランブックも含まれています。

AWS CLI および を使用してAWS Tools for Windows PowerShell、スナップショットと AMI の作成プロセスを自動化することもできます。aws ec2 create-snapshot AWS CLI コマンドを使用して、オートメーションの 1 ステップとして EBS ボリュームのスナップショットを作成できます。aws ec2 create-snapshots コマンドを使用すると、EC2 インスタンスにアタッチされているすべてのボリュームについて、クラッシュコンシステントで同期されたスナップショットを作成できます。

AWS CLI を使用して、新しい AMIs を作成できます。aws ec2 register-image コマンドを使用して EC2 インスタンス用の新しいイメージを作成できます。インスタンスのシャットダウン、イメージ作成、再起動を自動化するには、このコマンドと aws ec2 stop-instancesaws ec2 start-instances コマンドを組み合わせます。