Amazon DocumentDB クラスターのボリュームのクローン作成
Amazon DocumentDB クローン作成を使用すると、同じ Amazon DocumentDB クラスターボリュームを使用して、元のクラスターと同じデータを持つ新しいクラスターを作成できます。このプロセスは、高速で、費用効果が高いように設計されています。関連付けられたデータボリュームを持つ新しいクラスターは、クローンと呼ばれます。クローンの作成は、スナップショットの復元など、他の手法を使用してデータを物理的にコピーするよりも、高速かつスペース効率に優れています。
Amazon DocumentDB は、プロビジョニングされた Amazon DocumentDB クラスターからの Amazon DocumentDB プロビジョニングクローンの作成をサポートしています。作成元とは異なるデプロイ設定を使用してクローンを作成すると、作成元の Amazon DocumentDB エンジンの最新バージョンを使用してクローンが作成されます。
Amazon DocumentDB クラスターからクローンを作成すると、クローンは作成者の AWS アカウント (作成元の Amazon DocumentDB クラスターを所有しているアカウントと同じアカウント) に作成されます。
Amazon DocumentDB のクローン作成の概要
Amazon DocumentDB では、クローン作成に、コピーオンライトプロトコルが使用されます。このメカニズムでは、初期クローンを作成するために使用する追加領域は最小限です。クローンが初期に作成されると、Amazon DocumentDB は、作成元 DB クラスターと新しい (クローンの) Amazon DocumentDB クラスターで使用されるデータのコピーを 1 つだけ保持します。追加のストレージは、作成元の Amazon DocumentDB クラスターまたは Amazon DocumentDB クラスターのクローンが (Amazon DocumentDB ストレージボリューム上の) データに変更を加えた場合にのみ割り当てられます。コピーオンライトプロトコルの詳細については、「Amazon DocumentDB のクローン作成の仕組み」を参照してください。
Amazon DocumentDB のクローン作成は、データを破損の危険にさらすことなく、本番データを使用してテスト環境を迅速にセットアップする場合に特に役立ちます。クローンは、次のようなさまざまなタイプのアプリケーションに使用できます。
-
潜在的な変更 (スキーマの変更やパラメータグループの変更など) を試して、すべての影響を評価する。
-
データのエクスポートや分析クエリの実行など、大量のワークロードを扱うオペレーションをクローン上で実行する。
-
開発、テスト、またはその他の目的のために、本番 DB クラスターのコピーを作成する。
同じ Amazon DocumentDB クラスターから複数のクローンを作成できます。また、別のクローンから複数のクローンを作成することもできます。
Amazon DocumentDB のクローンを作成したら、Amazon DocumentDB インスタンスの設定を作成元の Amazon DocumentDB クラスターとは異なる方法で行えます。例えば、開発用途のクローンは、作成元の Amazon DocumentDB クラスターと同じ高可用性要件を満たす必要がない場合があります。この場合、Amazon DocumentDB クラスターで使用される複数の DB インスタンスではなく、単一の Amazon DocumentDB インスタンスを使用するようにクローンを設定できます。
テスト、開発などの用途へのクローンの使用が終了したら、クローンを削除できます。
Amazon DocumentDB クローン作成の制約事項
Amazon DocumentDB のクローン作成には、現在、次の制約事項があります。
-
AWS リージョン で許可される DB クラスターの最大数まで、必要な数のクローンを作成できます。ただし、クローンを 15 個作成すると、次のクローンはフルコピーになります。クローン作成オペレーションは、ポイントインタイムリカバリと同様に機能します。
-
作成元の Amazon DocumentDB クラスターとは異なる AWS リージョンにはクローンを作成できません。
-
DB インスタンスを持たない Amazon DocumentDB クラスターからクローンを作成することはできません。少なくとも 1 つの DB インスタンスを持つ Amazon DocumentDB クラスターのクローン作成のみが可能です。
-
クローンは、Amazon DocumentDB クラスターとは異なる仮想プライベートクラウド (VPC) で作成できます。その場合、VPCのサブネットは同じアベイラビリティーゾーンにマッピングする必要があります。
Amazon DocumentDB のクローン作成の仕組み
Amazon DocumentDB のクローン作成は Amazon DocumentDB クラスターのストレージレイヤーで動作します。これには、コピーオンライトプロトコルが使用されます。これは、Amazon DocumentDB ストレージボリュームをサポートする基盤となる耐久性の高いメディアという点で、高速かつスペース効率に優れています。Amazon DocumentDB クラスターボリュームの詳細については、「Amazon DocumentDB クラスターの管理」を参照してください。
コピーオンライトプロトコルの理解
Amazon DocumentDB クラスターでは、基盤となる Amazon DocumentDB ストレージボリュームのページにデータが格納されます。
例えば、次の図には、4 つのデータページ 1、2、3、4 を持つ Amazon DocumentDB クラスター (A) があります。クローン B が Amazon DocumentDB クラスターから作成されたとします。クローンが作成されても、データはコピーされません。クローンは、作成元の Amazon DocumentDB クラスターと同じページのセットを参照しています。
クローンが作成されたとき、通常は追加のストレージは必要ありません。コピーオンライトプロトコルでは、ソースセグメントと同じ物理ストレージメディア上のセグメントを使用します。追加のストレージが必要になるのは、ソースセグメントの容量がクローンセグメント全体に対して十分でない場合のみです。この場合、ソースセグメントは別の物理デバイスにコピーされます。
次の図に、前述と同様にクラスター A とそのクローン B を使用して動作中のコピーオンライトプロトコルの例を示します。Amazon DocumentDB クラスター (A) に変更を加えて、ページ 1 に保持されているデータが変更されたとします。元のページ 1 に書き込む代わりに、Amazon DocumentDB は新しいページ 1[A] を作成します。クラスター (A) の Amazon DocumentDB クラスターボリュームは、1[A]、2、3、4 ページを参照していますが、クローン (B) は引き続き元のページを参照しています。
クローンでは、ストレージボリュームのページ 4 に変更が加えられています。元のページ 4 に書き込む代わりに、Amazon DocumentDB は新しいページ 4[B] を作成します。クローンはページ 1、2、3、およびページ 4[B] を参照し、クラスター (A) は引き続き 1[A]、2、3、4 を参照しています。
時間が経過して作成元 Amazon DocumentDB クラスターボリュームとクローンの両方で追加の変更があると、その変更をキャプチャして保存するためにさらにストレージが必要になります。
ソースクラスターボリュームの削除
1 つ以上のクローンが関連付けられているソースクラスターボリュームを削除しても、そのクローンには影響しません。クローンは、ソースクラスターボリュームが前に所有していたページをポイントし続けます。
Amazon DocumentDB のクローンの作成
作成元の Amazon DocumentDB クラスターと同じ AWS アカウントにクローンを作成できます。そうするには、AWS Management Console または AWS CLI を使用して、その後の手順を行ってください。
Amazon DocumentDB のクローン作成を使用すると、プロビジョニングされた Amazon DocumentDB クラスターから Amazon DocumentDB クラスターのプロビジョニングクローンを作成できます。
- Using the AWS Management Console
-
AWS Management Consoleを使用して Amazon DocumentDB クラスターのクローンを作成する手順を以下に示します。
AWS Management Consoleを使用してクローンを作成すると、1 つの Amazon DocumentDB インスタンスを持つ Amazon DocumentDB クラスターが作成されます。
これらの手順は、クローンを作成しているのと同じ AWS アカウントが所有する DB クラスターに適用されます。Amazon DocumentDB ではクロスアカウントのクローン作成はサポートされていないため、同じ AWS アカウントがDB クラスターを所有している必要があります。
AWS を使用して、お客様の AWS Management Console アカウントが所有している DB クラスターのクローンを作成するには
AWS Management Console にサインインし、Amazon DocumentDB コンソール https://console.aws.amazon.com/docdb を開きます。
ナビゲーションペインで [クラスター] を選択します。
リストから Amazon DocumentDB クラスターを選択し、[アクション] で、[クローンの作成] を選択します。
[クローンの作成] ページが開きます。そこで、[クラスター識別子]、[インスタンスクラス] などの Amazon DocumentDB クラスタークローンのオプションが設定できます。
[設定] セクションで、以下の手順を実行します。
[DB クラスター識別子] に、作成する Amazon DocumentDB クラスターのクローンに付ける名前を入力します。
[インスタンス設定] では、クローンとして作成された Amazon DocumentDB クラスターに適した [インスタンスクラス] を選択します。
-
[ネットワーク設定] では、ユースケースに適したサブネットグループと、関連する VPC セキュリティグループを選択します。
-
[保管時の暗号化]では、作成元クラスター (クローンが作成されるクラスター) で暗号化が有効になっている場合、クローンとして作成されたクラスターでも暗号化が有効になっている必要があります。このシナリオに当てはまる場合、[暗号化を有効にする] オプションはグレー表示 (無効) になりますが、[暗号化を有効にする] オプションが選択されています。逆に、作成元クラスターで暗号化が有効になっていない場合は、[暗号化を有効にする] オプションが使用でき、暗号化を有効または無効にすることができます。
-
エクスポートするログの種類を選択し (オプション)、クラスターへの接続に使用する特定のポートを入力し、クラスターの誤削除からの保護を有効にして (デフォルトで有効) 、新しいクラスタークローンの設定を完了します。
Amazon DocumentDB クラスターのクローンのすべての設定の入力を完了します。Amazon DocumentDB クラスターとインスタンスの設定の詳細については、「Amazon DocumentDB クラスターの管理」を参照してください。
-
[クローンを作成] を選択して、選択した Amazon DocumentDB クラスターの Amazon DocumentDB クローンを起動します。
クローンが作成されると、コンソールの [データベース] セクションに他の Amazon DocumentDB クラスターとともに一覧表示され、現在の状態が表示されます。状態が [使用可能] の場合は、クローンはすぐに使用できます。
- Using the AWS CLI
-
AWS CLI を使用して Amazon DocumentDB クラスターのクローンを作成するには、いくつかのステップが必要です。
restore-db-cluster-to-point-in-time
AWS CLI コマンドを使用すると、Amazon DocumentDB インスタンスが 0 個の空の Amazon DocumentDB クラスターが生成されます。つまり、このコマンドは Amazon DocumentDB クラスターのみを復元し、クラスターの DB インスタンスは復元しません。これは、クローンが使用可能になった後に別途行います。プロセスは 2 ステップで、次のとおりです。
restore-db-cluster-to-point-in-time CLI コマンドを使用して、クローンを作成します。このコマンドで使用するパラメータで、作成する空の Amazon DocumentDB クラスター (クローン) の容量タイプなどの詳細が制御されます。
create-db-instance CLI コマンドを使用して、クローン用の Amazon DocumentDB インスタンスを作成し、復元された Amazon DocumentDB クラスターに Amazon DocumentDB インスタンスを再作成します。
以下のコマンドでは、デフォルトで AWS CLI は、AWS リージョンにセットアップされていると仮定しています。この方法では、--region
の名前を各コマンドに入力する手間が省けます。詳細については、「AWS CLI の設定」を参照してください。また、以下の各 CLI コマンドで --region
を指定することもできます。
クローンの作成
restore-db-cluster-to-point-in-time
CLI コマンドに渡す特定のパラメータは、さまざまです。渡す内容は、作成するクローンのタイプによって異なります。
次の手順に従い、プロビジョニングされた Amazon DocumentDB クラスターから Amazon DocumentDB プロビジョニングクローンを作成します。
作成元 Amazon DocumentDB クラスターと同じエンジンモードのクローンを作成するには
次の例では、my-source-cluster
という名前のクラスターから my-clone
という名前のクローンを作成します。
Linux、macOS、Unix の場合:
aws docdb restore-db-cluster-to-point-in-time \
--source-db-cluster-identifier my-source-cluster
\
--db-cluster-identifier my-clone
\
--restore-type copy-on-write \
--use-latest-restorable-time
Windows の場合:
aws docdb restore-db-cluster-to-point-in-time ^
--source-db-cluster-identifier my-source-cluster
^
--db-cluster-identifier my-clone
^
--restore-type copy-on-write ^
--use-latest-restorable-time
このコマンドは、クローンの詳細を含む JSON オブジェクトを返します。クローンの DB インスタンスを作成する前に、作成した DB クラスターのクローンが使用可能であることを確認します。詳細については、下記の「ステータスの確認とクローンの詳細の取得」をご参照ください。
ステータスの確認とクローンの詳細の取得
次のコマンドを使用して、新しく作成した空の DB クラスターのステータスが確認できます。
$
aws docdb describe-db-clusters --db-cluster-identifier my-clone
--query '*[].[Status]' --output text
または、次の AWS CLI クエリを使用して、ステータスなどの必要な値を取得して、クローン用の DB インスタンスを作成できます。
Linux、macOS、Unix の場合:
aws docdb describe-db-clusters --db-cluster-identifier my-clone
\
--query '*[].{Status:Status,Engine:Engine,EngineVersion:EngineVersion}'
Windows の場合:
aws docdb describe-db-clusters --db-cluster-identifier my-clone
^
--query "*[].{Status:Status,Engine:Engine,EngineVersion:EngineVersion}"
このクエリにより、以下のような出力が返されます。
[
{
"Status": "available",
"Engine": "docdb",
"EngineVersion": "4.0.0",
}
]
クローン用の Amazon DocumentDB インスタンスの作成
クローン用の DB インスタンスを作成するには、create-db-instance CLI コマンドを使用します。
--db-instance-class
パラメータは、プロビジョニングされた Amazon DocumentDB クラスターにのみ使用されます。
Linux、macOS、Unix の場合:
aws docdb create-db-instance \
--db-instance-identifier my-new-db
\
--db-cluster-identifier my-clone
\
--db-instance-class db.r5.4xlarge \
--engine docdb
Windows の場合:
aws docdb create-db-instance ^
--db-instance-identifier my-new-db
^
--db-cluster-identifier my-clone
^
--db-instance-class db.r5.4xlarge ^
--engine docdb
クローン作成に使用するパラメータ
次の表は restore-db-cluster-to-point-in-time
を使用して Amazon DocumentDB クラスターのクローンを作成する際に使用されるさまざまなパラメータをまとめたものです。
パラメータ |
説明 |
--source-db-cluster-identifier |
クローンを作成する作成元 Amazon DocumentDB クラスターの名前を使用します。 |
--db-cluster-identifier |
クローン用に意味のある名前を選択します。
restore-db-cluster-to-point-in-time コマンドでクローンの名前を付けます。次に、この名前を create-db-instance コマンドに渡します。 |
--restore-type |
--restore-type として copy-on-write を指定すると、作成元 Amazon DocumentDB クラスターを復元するのではなく、作成元 DB クラスターのクローンを作成します。
|
--use-latest-restorable-time |
この値は、クローンの最新の復元可能なボリュームデータを指します。 |