Amazon RDS の DB スナップショットを共有する - Amazon Relational Database Service

Amazon RDS の DB スナップショットを共有する

Amazon RDS を使用すると、次の方法で手動 DB スナップショットを共有できます。

  • 手動 DB スナップショットを共有すると、暗号化されているかいないかに関係なく、権限のある AWS アカウント がスナップショットをコピーできるようになります。

  • 暗号化されていない手動 DB スナップショットを共有すると、権限のある AWS アカウント が、DB インスタンスをコピーしてそこから復元するのではなく、スナップショットから DB インスタンスを直接復元できるようになります。ただし、共有され暗号化された DB スナップショットから、DB インスタンスを復元することはできません。代わりに、DB スナップショットのコピーを作成し、そのコピーから DB インスタンスを復元できます。

注記

自動 DB スナップショットを共有するには、自動 DB スナップショットをコピーしてそのコピーを共有することで、手動スナップショットを作成します。このプロセスは、AWS Backup で生成されたリソースにも適用されます。

スナップショットのコピーの詳細については、「Amazon RDS の DB スナップショットのコピー」を参照してください。DB スナップショットから DB インスタンスを復元する方法については、「DB インスタンスへの復元」を参照してください。

手動スナップショットを最大 20 のその他の AWS アカウント と共有することができます。

手動スナップショットを他の AWS アカウント と共有する場合には、以下の制限が適用されます。

  • AWS Command Line Interface (AWS CLI) または Amazon RDS API を使用して共有スナップショットから DB インスタンスを復元する際、スナップショット識別子として共有スナップショットの Amazon リソースネーム (ARN) を指定する必要があります。

  • 固定オプションまたは永続オプションを持つオプショングループを使用する DB スナップショットを共有することはできません。Timezone または OLS オプション (あるいはその両方) を持つ Oracle DB インスタンスを除きます。

    固定オプションはオプショングループから削除できません。永続オプションを含むオプショングループは、そのオプショングループが DB インスタンスに割り当てられると、DB インスタンスから削除できなくなります。

    次の表は、固定オプションおよび永続オプションと、それらに関連する DB エンジンをリストしています。

    オプション名 永続 固定 DB エンジン
    TDE はい いいえ Microsoft SQL Server Enterprise Edition
    TDE はい はい Oracle Enterprise Edition
    タイムゾーン はい はい

    Oracle Enterprise Edition

    Oracle Standard Edition

    Oracle Standard Edition One

    Oracle Standard Edition 2

    Oracle DB インスタンスの場合、Timezone または OLS オプション (あるいはその両方) を持つ共有 DB スナップショットをコピーできます。そのためには、DB スナップショットをコピーするときにこれらのオプションを含むターゲットオプショングループを指定します。OLS オプションは、Oracle バージョン 12.2 以降を実行している Oracle DB インスタンスに対してのみ恒久的かつ永続的です。これらのオプションの詳細については、「Oracle のタイムゾーン」および「Oracle Label Security」を参照してください。

  • マルチ AZ DB クラスターのスナップショットは共有できません。

公開スナップショットの共有、暗号化されたスナップショットの共有、スナップショットの共有の停止については、以下のトピックを参照してください。

スナップショットの共有

AWS Management Console、AWS CLI、または RDS API を使用して、DB スナップショットを共有できます。

Amazon RDS コンソールを使用して、手動 DB スナップショットを最大 20 の AWS アカウント と共有することができます。また、コンソールを使用して、手動 スナップショットの 1 つ以上のアカウントとの共有を停止することもできます。

Amazon RDS コンソールを使用して、手動 DB スナップショットを共有するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/ を開きます。

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

  3. 共有する手動スナップショットを選択します。

  4. [Actions] (アクション) で、[Share snapshot] (スナップショットの共有) を選択します。

  5. [DB snapshot visibility] で次のいずれかのオプションを選択します。

    • ソースが暗号化されていない場合、[パブリック] を選択して、すべての AWS アカウントが DB インスタンスを手動 DB スナップショットから復元できるようにするか、[プライベート] を選択して、指定した AWS アカウント だけが、DB インスタンスを手動 DB スナップショットから復元できるようにします。

      警告

      [DB スナップショットの可視性][パブリック] に設定した場合、すべての AWS アカウント が手動 DB スナップショットから DB インスタンスを復元し、データにアクセスできるようになります。プライベート情報を含む手動 DB スナップショットは、[Public] として共有しないでください。

      詳細については、「Amazon RDS の公開スナップショットの共有」を参照してください。

    • 出典 DB クラスターが暗号化されている場合、暗号化されているスナップショットはパブリックとして共有できないため、[DB snapshot visibility] が [Private] に設定されます。

      注記

      デフォルトの AWS KMS key で暗号化されたスナップショットは共有できません。この問題を回避する方法については、「Amazon RDS の暗号化されたスナップショットの共有」を参照してください。

  6. [AWS アカウント ID] では、手動スナップショットからの DB インスタンスの復元を許可するアカウントの AWS アカウント 識別子を入力してから、[追加] を選択します。この操作を繰り返して、AWS アカウント 識別子を最大 20 AWS アカウント まで含めます。

    許可されたアカウントのリストに AWS アカウント 識別子を誤って追加した場合には、正しくない AWS アカウント 識別子の右側にある [削除] を選択すれば、削除することができます。

    手動 DB スナップショットの復元を AWS アカウント に許可する
  7. 手動スナップショットの復元を許可するすべての AWS アカウント の識別子を追加した後、[保存] を選択して、変更を保存します。

DB スナップショットを共有するには、aws rds modify-db-snapshot-attribute コマンドを使用します。--values-to-add のパラメータを使用して、手動スナップショットの復元が許可されている AWS アカウント のための ID リストを追加します。

例 スナップショットを 1 つのアカウントで共有する

次の例では、AWS アカウント 識別子 123456789012db7-snapshot という名前の DB スナップショットを復元できるようにします。

Linux、macOS、Unix の場合:

aws rds modify-db-snapshot-attribute \ --db-snapshot-identifier db7-snapshot \ --attribute-name restore \ --values-to-add 123456789012

Windows の場合:

aws rds modify-db-snapshot-attribute ^ --db-snapshot-identifier db7-snapshot ^ --attribute-name restore ^ --values-to-add 123456789012
例 複数のアカウントでスナップショットを共有する

次の例では、2 つの AWS アカウント 識別子 111122223333 および 444455556666manual-snapshot1 という名前の DB スナップショットを復元できるようにします。

Linux、macOS、Unix の場合:

aws rds modify-db-snapshot-attribute \ --db-snapshot-identifier manual-snapshot1 \ --attribute-name restore \ --values-to-add {"111122223333","444455556666"}

Windows の場合:

aws rds modify-db-snapshot-attribute ^ --db-snapshot-identifier manual-snapshot1 ^ --attribute-name restore ^ --values-to-add "[\"111122223333\",\"444455556666\"]"
注記

Windows コマンドプロンプトを使用する場合、JSON コードでは、二重引用符 (") の前にバックスラッシュ (\) を付けてエスケープする必要があります。

スナップショットの復元が有効になっている AWS アカウント を一覧表示するには、describe-db-snapshot-attributes AWS CLI コマンドを使用します。

Amazon RDS API を使用することで、手動 DB スナップショットを他の AWS アカウント と共有することもできます。そのためには、ModifyDBSnapshotAttribute オペレーションを呼び出します。AttributeNamerestore を指定し、ValuesToAdd パラメータを使用して、手動 スナップショットの復元が許可されている AWS アカウント の ID のリストを追加します。

手動スナップショットをパブリックにして、すべての AWS アカウント による復元を可能にするには、値 all を使用します。ただし、すべての AWS アカウント には利用させたくないプライベート情報を含む手動スナップショットについては、値 all を追加しないように注意してください。また、暗号化されているスナップショットでは all を指定しないでください。そのようなスナップショットをパブリックにすることはできないためです。

スナップショットを復元することが許可されているすべての AWS アカウント を一覧表示するには、DescribeDBSnapshotAttributes API オペレーションを使用します。