定期的なバックアップを評価する
Azure Cosmos DB では、データの自動バックアップが定期的に実行されます。 Azure Cosmos DB は、次の方法でこれらのバックアップを実行します。
- 完全バックアップは 4 時間ごとに実行されます。 既定では、最後の 2 つのバックアップのみが格納されます。 バックアップ間隔とリテンション期間の両方を Azure portal で構成できます。 この構成は、Azure Cosmos DB アカウントの作成中または作成後に設定できます。
- Azure Cosmos DB のコンテナーまたはデータベースが削除された場合、既存のコンテナーとデータベースのスナップショットは 30 日間保持されます。
- Azure Cosmos DB のバックアップは、Azure Blob Storage に格納されます。
- バックアップは現在の書き込みリージョンに格納されます。または、短い待機時間を保証するために、書き込みリージョンのいずれかに対して複数リージョンの書き込みを使用している場合。
- バックアップのスナップショットは、geo 冗長ストレージ (GRS) を介して別のリージョンにレプリケートされます。 このレプリケーションは、地域の災害に対する回復性を提供します。
- バックアップに直接アクセスすることはできません。 バックアップを復元するには、Azure Cosmos DB チームでサポート チケットを開く必要があります。
- バックアップはパフォーマンスや可用性には影響しません。 さらに、バックアップ プロセス中に RU は使用されません。
バックアップ ストレージの冗長性
Azure Cosmos DB バックアップでは、ペアになっているリージョンにレプリケートされる既定の geo 冗長 BLOB ストレージが使用されます。 このバックアップ ストレージの冗長性は、アカウントの作成中または作成後に変更できます。 定期的なバックアップ モードで使用できる冗長性オプションは次のとおりです。
- 地理的冗長バックアップストレージ: 既定値。 ペアのリージョン間でバックアップを非同期的にコピーします。
- ゾーン冗長バックアップ ストレージ: プライマリ リージョンの 3 つの Azure 可用性ゾーン間で同期的にバックアップをコピーします。
- ローカル冗長バックアップ ストレージ: プライマリ リージョン内の 1 つの物理的な場所内で同期的にバックアップを 3 回コピーします。
既定のバックアップ間隔と保持期間を変更する
既定では、Azure Cosmos DB は 4 時間ごとにバックアップを取得し、最後の 2 つのバックアップを追加料金なしで保持します。 これらの設定は Azure Cosmos DB アカウント レベルで設定され、アカウントの作成中または作成後に構成できます。 現在、これらの設定は Azure portal からのみ変更できます。
新しいアカウントのバックアップ オプションを変更する
新しい Azure Cosmos DB アカウントを作成するときに、[バックアップ ポリシー] タブで [定期的] を選択します。
必要に応じてバックアップ オプションを変更します。
- [バックアップ間隔] - この設定では、バックアップを実行する頻度を定義します。 分単位または時間単位で変更できます。 間隔は 1 ~ 24 時間です。 既定値は 240 分です。
- バックアップの保有期間 - この設定では、バックアップを保持する期間を定義します。 時間または日単位で変更できます。 リテンション期間は、バックアップ間隔の少なくとも 2 倍、最大で 720 時間 (または 30 日) になります。 既定値は 8 時間です。
- バックアップ ストレージの冗長性 - 前のセクションで説明した 3 つの冗長性オプションの 1 つ。 既定値は geo 冗長バックアップ ストレージです。
既存のアカウントのバックアップ オプションを変更する
Azure portal で、Azure Cosmos DB アカウントに移動します。
[ 設定] セクションで、[ バックアップと復元] を選択します。
必要に応じてバックアップ オプションを変更します。
[バックアップ間隔] - この設定では、バックアップを実行する頻度を定義します。 分単位または時間単位で変更できます。 間隔は 1 ~ 24 時間です。 既定値は 240 分です。
バックアップの保有期間 - この設定では、バックアップを保持する期間を定義します。 時間または日単位で変更できます。 リテンション期間は、バックアップ間隔の少なくとも 2 倍、最大で 720 時間 (または 30 日) になります。 既定値は 8 時間です。
バックアップ ストレージの冗長性 - 前のセクションで説明した 3 つの冗長性オプションの 1 つ。 既定値は geo 冗長バックアップ ストレージです。
注
バックアップ保有期間またはバックアップ ストレージの冗長性設定を構成するには、Azure Cosmos DB 所有者、共同作成者、または Cosmos DB オペレーター (
CosmosdbBackupOperator) ロールが割り当てられている必要があります。
バックアップの復元要求
データベースまたはコンテナーを復元する必要がある場合は、要求チケットを開くか、Azure サポート チームに連絡する必要があります。 Azure のサポートは、 Basic プランを除くすべてのプランで利用できます。 ポータルからの復元を要求するには、Azure Cosmos DB の所有者、共同作成者、または Cosmos DB オペレーター (CosmosdbBackupOperator) ロールが割り当てられている必要があります。
バックアップの復元に関する考慮事項
考慮すべきシナリオ:
- Azure Cosmos DB アカウント全体を削除する。
- 1 つ以上の Azure Cosmos DB データベースを削除する。
- 1 つ以上の Azure Cosmos DB コンテナーを削除する。
- コンテナー内の Azure Cosmos DB 項目を削除または変更します。 この特定のケースは一般にデータの破損と呼ばれます。
バックアップを復元するたびにデータを保持する新しい Azure Cosmos DB アカウントが作成されます。 既存 の Azure DB アカウントにデータを復元することはできません。 作成されたアカウントは<Azure_Cosmos_account_original_name>-復元された# の名前形式になります。同じアカウントに対して複数の復元を行う場合、# は増分番号になります。
Azure Cosmos DB アカウントを削除し、同じ名前で復旧する場合は、再作成しないでください。 元の名前で再作成するように Azure サポート チームに依頼してください。 復元されたアカウントには、プロビジョニングされたスループットとインデックス作成ポリシーが同じになり、元のアカウントと同じリージョンに配置されます。
Azure Cosmos DB データベースを削除する場合は、データベース全体、または復元するデータベース内のコンテナーのみを復元するように求めることができます。
コンテナー内の項目を削除または変更し、削除またはデータ変更の前にそのデータを復元する場合は、復元先の時刻を指定する必要があります。 リテンション期間が 7 日未満に設定されている場合は、サポート チケットを開いている間にバックアップが上書きされないように、保有期間を少なくとも 7 日間に一時的に増やすことをお勧めします。
新しいアカウントに復元されない設定:
- VNET アクセス制御リスト
- ストアド プロシージャ、トリガー、およびユーザー定義関数
- マルチリージョン設定
追加バックアップのコスト
Azure Cosmos DB には、2 つのバックアップを無料で保持するためのオプションが含まれています。 追加のバックアップは、リージョンベースのバックアップ格納価格を使用して課金されます。 たとえば、バックアップ間隔が 3 時間で、2 日間 (48 時間) の保有期間を選択した場合、2 つのバックアップは無料であるため、(48/3-2) リージョンベースのバックアップ保存価格 のバックアップ サイズに対して料金が発生します。
独自のバックアップを管理する
バックアップの復元には Azure サポートを呼び出すことができますが、独自のバックアップを管理するために実行できるその他の方法がいくつかあります。 これらのオプションは次のとおりです。
- Azure Data Factory を使用して、データをストレージの場所に定期的にコピーします。
- Azure Cosmos DB 変更フィードを使用して増分変更を取得し、それらの変更をストレージの場所にコピーします。
データのコピーを復元しましたが、次は何ですか?
最初の手順は、必要なデータがバックアップから復元されたことを確認することです。 データがあることを確認したら、そのデータを元のアカウントに移行します。
次の方法で、元のアカウントにデータを移行できます。
- Azure Data Factory を使用します。
- Azure Cosmos DB データ移行ツールを使用します。
- Azure Cosmos DB の変更フィードを使用します。
- 好みのプログラミング言語で独自のデータ移行アプリを作成します。
注
データを実稼働アカウントに移行したら、データが復元された Azure Cosmos DB アカウントを必ず削除してください。 アカウントを削除しないと、追加コストが発生します。