RDS バックアップ、リストア、およびスナップショット

  • RDS は、DB インスタンスのストレージボリュームスナップショットを作成し、個々のデータベースだけでなく、DB インスタンス全体をバックアップします。
  • RDS は、DB インスタンスをバックアップするための2つの方法を自動化および手動で提供します。

自動バックアップ

  • DB インスタンスのバックアップは自動的に作成され、保持されます。
  • 自動バックアップは、新しい DB インスタンスに対してデフォルトで有効になっています。
  • 自動バックアップは、優先バックアップウィンドウ と呼ばれる、毎日のユーザーが設定可能な期間中に発生します。
    • DB インスタンスの作成時に優先バックアップウィンドウが指定されていない場合、RDS は、リージョンごとに8時間の時間ブロックからランダムに選択されたデフォルトの30分バックアップウィンドウを割り当てます。
    • バックアップウィンドウへの変更はすぐに有効になります。
    • バックアップウィンドウは、DB インスタンスの週単位のメンテナンスウィンドウと重複することはできません。
  • バックアップウィンドウ中に作成されたバックアップは、バックアップ保持期間と呼ばれるユーザーが構成可能な日数の間保持されます。
    • バックアップ保持期間が設定されていない場合、RDS APIまたはAWS CLIを使用して作成された場合は1日、AWS Consoleで作成されている場合は7日になります。
    • バックアップ保持期間は、有効な値で変更できますが、0 (バックアップ保持なし) から最大35日です。
  • 手動スナップショット制限 (リージョンあたり 50) は、自動バックアップには適用されません。
  • バックアップがバックアップウィンドウに割り当てられた時間よりも多く必要な場合は、バックアップが完了まで継続します。
  • バックアップの保持期間が変更された場合、即時停止が発生する。
    • 0 からゼロ以外の値には、最初のバックアップがすぐに発生するか
    • ゼロ以外の値を 0 にすると、自動バックアップがオフになり、インスタンスの既存の自動バックアップがすべて削除されます。
  • RDS は、トランザクションログと共に定期的なデータバックアップを使用して、保持期間中の任意の秒に DB インスタンスの復元を有効にし、LatestRestorableTime (通常は最後の数分間) まで実行します。
  • バックアップウィンドウで、
    • 1つの AZ インスタンスでは、バックアップ・プロセスの初期化中にストレージ I/O が一時的に中断されることがあります (通常は数秒以内)。
    • マルチ AZ DB のデプロイメントでは、スタンバイ・インスタンスからバックアップを取得しているため、I/O の停止はありません。
  • 自動化された DB スナップショットは次の場合、削除される
    • 保持期間の終了
    • DB インスタンスの自動 DB スナップショット無効
    • DB インスタンスの削除
  • DB インスタンスが削除されると
    • 最終的な DB スナップショットは削除時に作成できます。これを使用して、削除された DB インスタンスを後日復元できます。
    • RDS は、他のすべての手動で作成された DB スナップショットと共に、最終的なユーザー作成の DB スナップショットを保持する。
    • すべての自動バックアップは削除され、復元できません。

ポイント・イン・タイム・リカバリ

  • 毎日の自動バックアップに加えて、RDS はデータベースの変更ログをアーカイブします。これにより、バックアップ保持期間中の任意の時点へのデータベースの復旧が可能になり、最後の5分間のデータベース使用率が確保されます。
  • 自動バックアップを無効にすると、ポイント・イン・タイム・リカバリも無効になります。
  • RDS はデータの複数のコピーを格納しますが、シングル AZ DB インスタンスの場合、これらのコピーは1つのアベイラビリティーゾーンに格納されます。
  • 何らかの理由でシングル AZ DB インスタンスが使用できなくなった場合、ポイント・イン・タイム・リカバリを使用して、最新の復元データで新しい DB インスタンスを起動できます。

DB スナップショット (ユーザーが開始した)

  • 手動 DB スナップショットは、DB インスタンスを既知の状態にバックアップし、その特定の状態にいつでも復元できるようにする、ユーザーが開始するバックアップです。
  • RDS はすべての手動 DB スナップショットを明示的に削除するまで保持する。

DB スナップショットの作成

  • DB スナップショットは、DB インスタンスのユーザーが開始するストレージボリュームスナップショットであり、個々のデータベースだけでなく、DB インスタンス全体をバックアップします。
  • DB スナップショットは、必要に応じて既知の状態で DB インスタンスのバックアップを有効にし、いつでもその特定の状態に復元できます。
  • DB スナップショットは、明示的に削除されるまで保持されます。
  • シングル AZ DB インスタンスに DB スナップショットを作成すると、通常は数分以内の短い I/O 停止が発生します。
  • マルチ AZ DB インスタンスは、スタンバイインスタンスでバックアップが実行されるため、この I/O サスペンションの影響を受けません。

DB スナップショットのリストア

  • DB インスタンスは、この保持期間中に特定の時間に復元することができ、新しい DB インスタンスを作成します。
  • 異なるエンドポイントを持つ新しい DB インスタンスは、DB スナップショットからリストアすることによって作成されます。
  • RDS は、トランザクションログと共に定期的なデータバックアップを使用して、保持期間中の任意の秒に DB インスタンスの復元を有効にし、LatestRestorableTime (通常は最後の数分間) まで実行します。
  • DB スナップショットに関連付けられたオプショングループは、作成後に復元された DB インスタンスに関連付けられます。ただし、オプショングループは VPC に関連付けられているため、インスタンスが DB スナップショットと同じ vpc 内で復元される場合にのみ適用されます。
  • ただし、デフォルト DB パラメーターとセキュリティグループは、復元されたインスタンスに関連付けられます。リストアが完了すると、リストア元のインスタンスで使用されているカスタム DB パラメーターまたはセキュリティグループが明示的に関連付けられている必要があります。
  • DB インスタンスは、ソース DB スナップショットとは異なるストレージタイプを使用してリストアできます。この場合、データを新しいストレージ・タイプに移行するために必要な追加作業により、リストア処理が遅くなります。例えば、gp2 からプロビジョニングド IOPS へ。
  • DB スナップショットに必要なストレージが新しいエディションに割り当てられている場合にのみ、DB インスタンスを別のエディションの DB エンジンで復元できます。例えば、SQL Server Web Edition から SQL Server Standard Edition に変更するには、SQL Server Standard Edition の最小割り当てストレージである、少なくとも 200 GB の割り当て済みストレージがある SQL Server DB インスタンスから、DB スナップショットが作成されている必要があります。

DB スナップショットコピー

  • Amazon RDS では、2種類の DB スナップショットコピーがサポートされています。
    • 自動 DB スナップショットをコピーして、同じ AWS リージョンに手動 DB スナップショットを作成します。手動 DB スナップショットは自動的には削除されず、無期限に保存できます。
    • 1つのリージョンから別のリージョンに、自動または手動の DB スナップショットのいずれかをコピーします。DB スナップショットを別のリージョンにコピーすると、そのリージョンに保持されている手動 DB スナップショットが作成されます。
  • 手動 DB スナップショットは、他の AWS アカウントと共有したり、他の AWS アカウントが共有する DB スナップショットをコピーしたりできます。
  • スナップショット・コピーの暗号化
    • AWS キーマネージメントシステム (AWS KMS) 暗号化キーを使用して暗号化された DB スナップショットをコピーできます。
    • 暗号化された DB スナップショットをコピーすると、暗号化された DB スナップショットのコピーが作成されます。
    • コピーする場合、DB スナップショットは、元の DB スナップショットと同じ KMS 暗号化キーで暗号化するか、別の KMS 暗号化キーを使用して DB スナップショットのコピーを暗号化することができます。
    • 暗号化されていない DB スナップショットは、以前に暗号化した DB インスタンスに暗号化を追加するための簡単な方法である、暗号スナップショットにコピーできます。
    • 暗号化されたスナップショットは、暗号化した DB インスタンスにのみ復元できます。
    • 暗号化されていない DB クラスターのスナップショットから復元するときに KMS 暗号キーが指定されている場合は、指定した KMS 暗号化キーを使用して、復元された DB クラスターを暗号化します。
    • 別の AWS アカウントから共有された暗号化スナップショットをコピーするには、DB スナップショットの暗号化に使用した KMS 暗号化キーへのアクセスが必要です。
    • KMS 暗号化キーは、作成された領域に固有のものであるため、暗号化されたスナップショットを別のリージョンにコピーすることはできません。

DB スナップショット共有

  • 手動 DB スナップショットまたは DB クラスタスナップショットは、最大20の他の AWS アカウントと共有できます。
  • 他の AWS アカウントと共有される手動スナップショットは、スナップショットをコピーするか、またはそのスナップショットから DB インスタンスまたは DB クラスタを復元できます。
  • 手動スナップショットはパブリックとして共有することもでき、すべての AWS アカウントでスナップショットを利用できるようになります。プライベート情報が含まれないようにスナップショットをパブリックとして共有する場合は、注意が必要です。
  • 共有スナップショットは、別のリージョンにコピーできます。
  • ただし、手動スナップショットを他の AWS アカウントと共有する場合は、次の制限が適用されます。
    • AWS CLI または RDS API を使用して、DB インスタンスまたは DB クラスタが共有スナップショットからリストアされる場合、スナップショット識別子として共有スナップショットの Amazon リソース名 (ARN) を指定する必要があります。
    • 永続的または永続的なオプションを持つオプショングループを使用する DB スナップショットは共有できません。
    • オプショングループから永続的なオプションを削除することはできません。オプショングループが DB インスタンスに割り当てられた後、永続的なオプションを持つオプショングループを DB インスタンスから削除することはできません。
  • AES-256 暗号化アルゴリズムを使用して “安静時” に暗号化された DB スナップショットを共有できます。
  • ユーザーは、DB スナップショットの暗号化に使用した AWS キーマネージメントサービス (AWS KMS) 暗号化キーにアクセスできる場合にのみ、暗号化された DB スナップショットをコピーできます。
  • AWS KMS 暗号化キーは、他のアカウントを KMS キーポリシーに追加することにより、別の AWS アカウントと共有できます。
  • ただし、暗号化された DB スナップショットを共有する前に、そのスナップショットを共有するアカウントを追加することで、KMS キーポリシーを最初に更新する必要があります。

AWS認定試験の練習問題

  • 質問はインターネットから収集され、答えは自分の知識と理解に基づいてマークされます(これはあなたと異なる場合があります)。
  • AWSサービスは毎日更新され、回答と質問はすぐに時代遅れになる可能性がありますので、それに応じて調査してください。
  • AWSのアップデートのペースを追うためにAWS試験の質問は更新されないため、基礎となる機能が変更されても質問が更新されないことがあります。
  • さらなるフィードバック、ディスカッション、修正を可能にします。
  1. Amazon RDS の自動バックアップと DB スナップショットは、現在、__________ ストレージエンジンに対してのみサポートされています
    1. InnoDB
    2. MyISAM
  2. 自動バックアップは、新しい DB インスタンスに対して既定で有効になっています。
    1. true
    2. false
  3. Amazon RDS DB スナップショットと自動バックアップが保存されます。
    1. Amazon S3
    2. Amazon EBS ボリューム
    3. Amazon RDS
    4. Amazon EMR
  4. あなたは、誤ってすべての顧客を含むテーブルを削除した新しい DBA からの激しい電話を受け取ります。どの Amazon RDS の機能を使用すると、間違いが行われたときの5分以内にあなたのデータベースを確実に復元することができます?
    1. マルチ AZ RDS
    2. RDS スナップショット
    3. RDS リードレプリカ
    4. RDS 自動バックアップ
  5. ポイント・イン・タイム・リカバリの無効化について正しいものは?
    1. 自動バックアップを無効にして、ポイント・イン・タイム・リカバリを無効にできるようにします。
    2. 自動バックアップを無効化しても、ポイント・イン・タイム・リカバリは無効化されない
    3. 自動バックアップを無効化にした場合、ポイント・イン・タイム・リカバリも無効化になる
  6. バックアップウィンドウの変更は、______ に反映されます。
    1. 次の請求サイクルから
    2. 30分後
    3. ただちに
    4. 24時間後
  7. バックアップの保存期間を変更できます。有効な値は 0 (バックアップ保持なし) で、最大 ___________ 日です。
    1. 45
    2. 35
    3. 15
    4. 5
  8. データベーススナップショットを作成している間、I/O 操作はどうなるのですか?
    1. データベースへの I/O 操作は、バックアップの実行中に数分間中断されます。
    2. データベースへの I/O 操作は、バックアップの実行中に数分間、レプリカに送信されます (使用可能な場合)。
    3. I/O 操作は正常に機能します。
    4. バックアップの実行中にデータベースへの I/O 操作が1時間中断される
  9. True または False: ポイント・イン・タイムまたは DB スナップショットからリストア・オペレーションを実行すると、新しい DB インスタンスが新規のエンドポイントで作成されます。
    1. false
    2. true
  10. True または False: DB インスタンスを削除すると、手動で作成した DB スナップショットが削除されます。
    1. true
    2. false
  11. ユーザーが MySQL RDS インスタンスを実行しています。ユーザーは、次の3か月間、DB を使用しません。ユーザーはどのようにコストを節約できますか?
    1. 将来必要になるまで、RDS アクティビティを CLI から一時停止する。
    2. RDS インスタンスを停止する。
    3. 将来起動する RDS のスナップショットを作成し、インスタンスを今すぐ終了する
    4. インスタンスサイズをマイクロに変更する。

リファレンス


Jayendra’s Blog

この記事は自己学習用に「AWS RDS DB Snapshot, Backup & Restore – Certification(Jayendra’s Blogより)」を日本語に訳した記事です。