クラウドバックアップ スナップショットのエクスポート
注意
この機能は、 M0
無料クラスター、 M2
、 M5
クラスターでは使用できません。利用できない機能について詳しくは、「 Atlas M 0 (無料クラスター)、M 2 、M 5の制限 を参照してください。
Atlasを使用すると、クラウドバックアップ スナップショットを Amazon Web Services S3バケットまたはAzure Blob ストレージ コンテナにエクスポートできます。
自動バックアップ ポリシーとスケジュールを管理する方法については、「バックアップ ポリシーの管理」を参照してください。
Atlas がスナップショットをエクスポートする方法
個々のスナップショットを手動でエクスポートすることも、スナップショットを自動的にエクスポートするためのエクスポート ポリシーを設定することもできます。自動エクスポートの場合は、エクスポート ポリシーで頻度を指定する必要があります。
毎日
毎週
毎月
毎年
Atlas は、エクスポート頻度に一致する頻度タイプのバックアップ スナップショットを自動的にエクスポートします。エクスポートされた結果は、そのスナップショットの完全バックアップです。
例
次の点を考慮してください。
週次および月次のスナップショット スケジュールを設定するバックアップ ポリシー
毎月のエクスポート頻度を設定するエクスポート ポリシー
たとえば、月末に週次スナップショットと月次スナップショットが同じ日に実行されるとします。スナップショットは 4
件あり、そのうち 3
件は週次スナップショットであり、4 番目のスナップショットは Atlas によって週次スナップショットとして扱われますが、同じ日に発生したため月次スナップショットにもなります。Atlas が月次スナップショットをエクスポートするのは、エクスポート頻度がそのスナップショットのスナップショット頻度と一致する場合のみです。週次スナップショットもエクスポートするには、週次スナップショットもエクスポートするようにエクスポート ポリシーを更新します。エクスポート頻度が毎週に設定されている場合、Atlas は 4
件すべてのスナップショットをエクスポートします。
Atlas はコレクションのスナップショットを 1 つずつエクスポートします。 エクスポートが進むにつれて、 S 3バケットまたは Azure Blob ストレージ コンテナに部分的な結果が表示される場合があります。 Atlas が現在5以上のレプリカセットをエクスポートしている場合、Atlas は新しいジョブをキューに入れます。 シャーディングされたクラスターの場合、Atlas はシャードの数に関係なく、常にすべてのシャードのスナップショットを同時にエクスポートします。
は、 または 自体から発生するデータ転送コストに加えて、Amazon Web ServicesAtlas $.125
GBAmazon Web ServicesS3 バケットまたはAzure BlobAzure ストレージ コンテナにエクスポートされたデータ 1 あたり を請求します。Atlas は、エクスポートする前にデータを圧縮します。 エクスポートされるデータの量を見積もるには、クラスター内の各データベースの dataSizeを合計します。 この合計は、エクスポートの非圧縮サイズに対応する必要があります。これが、データのエクスポート操作に対して Atlas から発生する最大コストになります。
Atlas がアップロードするファイル
Atlas は、次の場合に空のファイルを /exported_snapshots/.permissioncheck
にアップロードします。
エクスポート用の新しいAmazon Web Services S3バケットまたはAzure Blog ストレージ コンテナを追加します
エクスポートの開始
Atlas がエクスポートを完了すると、Atlas は各コレクションに対して .complete
という名前のメタデータ ファイルと metadata.json
という名前のメタデータ ファイルをアップロードします。
Atlas は、 .complete
という名前のメタデータ ファイルをS 3バケットの次のパスにアップロードします。
/exported_snapshots/<orgUUID>/<projectUUID>/<clusterName>/<initiationDateOfSnapshot>/<timestamp>/
注意
デフォルトでは、Atlas はメタデータ ファイルのパスに組織 UUID とプロジェクト UUID を使用します。UUID の代わりに組織名とプロジェクト名を使用するには、API 経由で useOrgAndGroupNamesInExportPrefix
フラグを true
に設定します。Atlas はスペースをアンダースコア(_
)に置き換え、特別な処理を必要とする可能性のある文字と、パス内の組織名とプロジェクト名に避けるべき文字を削除します。
.complete
メタデータ ファイルは JSON 形式で、次のフィールドが含まれています。
フィールド | 説明 |
---|---|
orgId | Atlas 組織を識別する一意な 24 桁の 16 進数の文字列。 |
orgName | Atlas 組織の名前。 |
groupId | Atlas 組織内のプロジェクトを識別する一意な 24 桁の 16 進数の文字列。 |
groupName | Atlas プロジェクトの名前。 |
clusterUniqueId | Atlas クラスターを識別する一意な 24 桁の 16 進数の文字列。 |
clusterName | Atlas プロジェクトの名前。 |
snapshotInitiationDate | スナップショットが作成された日付。 |
totalFiles | S 3バケットまたは Azure Blog ストレージ コンテナにアップロードされたファイルの合計数。 |
labels | スナップショットがエクスポートされたクラスターのラベル。 |
customData | エクスポート ジョブの作成時に指定したカスタム データ(存在する場合)。 |
例
{ "orgId": "60512d6f65e4047fe0842095", "orgName": "org1", "groupId": "60512dac65e4047fe084220f", "groupName": "group1", "clusterUniqueId": "60512dac65e4047fe0842212", "clusterName": "cluster0", "snapshotInitiationDate": "2020-04-03T05:50:29.321Z" "totalFiles": 23, "labels": [ { "key": "key1", "value": "xyz" }, { "key": "key2", "value": "xyzuio" } ], "customData": [ { "key": "key1", "value": "xyz" }, { "key": "key2", "value": "xyzuio" } ] }
Atlas は、各コレクションのmetadata.json
ファイルをS 3バケットの次のパスにアップロードします。
/exported_snapshots/<orgUUID>/<projectUUID>/<clusterName>/<initiationDateOfSnapshot>/<timestamp>/<dbName>/<collectionName>/metadata.json
注意
デフォルトでは、Atlas はメタデータ ファイルのパスに組織 UUID とプロジェクト UUID を使用します。UUID の代わりに組織名とプロジェクト名を使用するには、API 経由で useOrgAndGroupNamesInExportPrefix
フラグを true に設定します。Atlas はスペースをアンダースコア(_
)に置き換え、特別な処理を必要とする可能性のある文字と、パス内の組織名とプロジェクト名に避けるべき文字を削除します。
メタデータ ファイルは JSON 形式で、次のフィールドが含まれています。
フィールド | 説明 |
---|---|
collectionName | コレクションを識別する、人間が判読可能なラベル。 |
indexes | db.collection.getIndexes コマンドによって返される形式での、コレクション上のすべてのインデックスのリスト。 |
options | コレクションに定義されている構成オプション。オプションの詳細については、「db.createCollection()」コマンドを参照してください。 |
type | コレクションのタイプ。値は次のいずれかになります。
このフィールドは、標準コレクションでは返されません。 |
uuid | コレクションのUUID。UUID の詳細については、「UUID」を参照してください。 |
例
{ "options":{ "viewOn":"othercol", "pipeline":[{"$project":{"namez":"$name"}}] }, "indexes":[], "collectionName":"viewcol", "type":"view" }
{ "options":{ "timeseries":{ "timeField":"timestamp", "granularity":"seconds", "bucketMaxSpanSeconds":{"$numberInt":"3600"} } }, "indexes":[], "collectionName":"timeseriescol", "type":"timeseries" }
{ "indexes": [ { "v":{"$numberInt":"2"}, "key":{ "_id":{"$numberInt":"1"} }, "name":"_id_" } ], "uuid":"342c40a937c34c478bab03de8ce44f3e", "collectionName":"somecol" }
エクスポート ジョブが失敗した場合:
Atlas は自動的にエクスポートを再試行しません。
Atlas はS 3バケットまたは Azure Blob ストレージ コンテナ内の部分的なデータを削除しません。
エクスポートされたデータ形式
Atlas 3は、拡張.json.gz
JSON 形式のドキュメントを含む 形式で S または Azure Blob ストレージにデータベースの内容をアップロードします。以下は、 S 3または Azure Blog ストレージ上のファイルへのパスです。
/exported_snapshots/<orgName>/<projectName>/<clusterName>/<initiationDateOfSnapshot>/<timestamp>/<dbName>/<collectionName>/<shardName>.<increment>.json.gz
以下の条件に一致するもの。
<orgName> | Atlas 組織の名前。 |
<projectName> | Atlas プロジェクトの名前。 |
<clusterName> | Atlas クラスターの名前。 |
<initiationDateOfSnapshot> | スナップショットが作成された日付。 |
<timestamp> | エクスポート ジョブが作成されたときのタイムスタンプ。 |
<dbName> | Atlas クラスター内のデータベースの名前。 |
<collectionName> | Atlas コレクションの名前。 |
<shardName> | レプリカセットの名前。 |
<increment> | チャンクがアップロードされるにつれて増加するカウント。 0 から始まります。 |
制限
次の制限が適用されます。
エクスポートできるのは、MongoDB の現在サポートされているバージョンのスナップショットのみですが、バージョンに関係なく、保存されたスナップショットはいつでもダウンロードできます。
フォールバック スナップショットはエクスポートできません。
アクティブなエクスポートは、スナップショットごとに 1 つだけです。
必要なアクセス権
クラウドバックアップ スナップショットを管理するには、プロジェクトに対する Project Owner
アクセス権が必要です。Organization Owner
アクセス権を持つユーザーは、クラウドバックアップ スナップショットを管理する前に、自分自身を Project
Owner
としてプロジェクトに追加する必要があります。
前提条件
クラウドバックアップ スナップショットをエクスポートするには、 クラウドバックアップが有効 になっているM10
以上の Atlas クラスターが必要です。 さらに、 Amazon Web Services S3バケットまたはAzure Blob ストレージ コンテナにエクスポートするには、次の手順を実行する必要があります。
Amazon Web ServicesIAM ロールの 設定
STS:AssumeRole
とAtlas Amazon Web Servicesを使用すると、 に リソースへのアクセスが許可されます。の アクセスの構成の詳細については、「Amazon Web Services 統合Atlas Amazon Web Servicesアクセスのセットアップ 」を参照してください。IAM ロール ポリシーをAmazon Web Services 設定するAtlas
S3:PutObject
S3:GetBucketLocation
Amazon Web Servicesこれにより、 に書込みアクセス、または リソースへの 権限と 権限が付与されます。Amazon Web Servicesリソースへの書込みアクセスの設定の詳細については、「統合Amazon Web Servicesアクセスのセットアップ 」を参照してください。例
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetBucketLocation", "Resource": "arn:aws:s3:::bucket-name" }, { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::bucket-name/*" } ] }
Atlas プロジェクト向けのアクセス ポリシーを使用してAzure Service Principal を設定します。
Azure サービス プリンシパル に ストレージ Blob セレクター ロールと ストレージ Blob データ コンプライアンス ロールを割り当てます。
サービス プリンシパルにロールを割り当てるには、次の情報が必要です。
ロール説明ストレージ Blob 削除これにより、サービス プリンシパルは、 Azureストレージ コンテナにアクセスするための SAS トークンに署名できるようになります。 このロールを割り当てるには、次のコマンドを実行します。
az role assignment create --assignee-object-id <service-principal-id> --role "Storage Blob Delegator" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name> ストレージ BLOB データ コンストラクターこれにより、 Azureストレージ コンテナの読み取り、書込み、削除のグローバルアクセスが可能になります。 このロールを割り当てるには、次のコマンドを実行します。
az role assignment create --assignee-principal-type ServicePrincipal --assignee-object-id <service-principal-id> --role "Storage Blob Data Contributor" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>
輸出マネジメント
Amazon Web Services3Atlas CLIとAtlas Administration から S バケットへのスナップショット エクスポートを作成および管理し、API AzureAtlasAdministration から Blob ストレージ コンテナにスナップショットAPI エクスポートを作成および管理できます。
注意
Atlas CLI を使用してスナップショットを Azure Blob ストレージ コンテナにエクスポートすることはできません。
エクスポート ジョブの管理
Atlas CLI でエクスポート ジョブを作成または表示することで、エクスポート ジョブを管理できます。
エクスポート ジョブの作成
を使用して、M10 AtlasAmazon Web Services以上の3 クラスターの 1 つのバックアップ スナップショットを既存の SAtlas CLI バケットにエクスポートするには、次のコマンドを実行します。
atlas backups exports jobs create [options]
Atlas CLI を使用して特定のバックアップ エクスポート ジョブの完了を監視するには、次のコマンドを実行します。
atlas backups exports jobs watch <exportJobId> [options]
前のコマンドの構文とパラメータの詳細については、Atlas CLI ドキュメントの「atlas backups exports jobs create」および「atlas backups exports jobs watch」を参照してください。
エクスポート ジョブの表示
Atlas CLI を使用して、指定したプロジェクトのクラウドバックアップ復元ジョブを一覧表示するには、次のコマンドを実行します。
atlas backups exports jobs list <clusterName> [options]
Atlas CLI を使用して、指定したクラウドバックアップ復元ジョブの詳細を返すには、次のコマンドを実行します。
atlas backups exports jobs describe [options]
前のコマンドの構文とパラメータの詳細については、Atlas CLI ドキュメントの「「atlas backups のエクスポート ジョブ リスト」および「atlas backups のエクスポート ジョブの説明」を参照してください。
エクスポート バケットの管理
Atlas CLI を使用してエクスポート バケットを作成、表示、削除することでエクスポート バケットを管理できます。
1 つのエクスポート バケットを作成
Atlas CLI を使用して、既存の AWS S3 バケットで Atlas バックアップのエクスポート先を作成するには、次のコマンドを実行します。
atlas backups exports buckets create <bucketName> [options]
コマンド構文とパラメータの詳細については、Atlas CLI ドキュメントの atlas backups exports buckets create を参照してください。
エクスポート バケットの表示
Atlas CLI を使用して、指定したプロジェクトのクラウドバックアップ復元バケットを一覧表示するには、次のコマンドを実行します。
atlas backups exports buckets list [options]
Atlas CLI を使用して指定したクラウドバックアップ復元バケットの詳細を返すには、次のコマンドを実行します。
atlas backups exports buckets describe [options]
前のコマンドの構文とパラメータの詳細については、Atlas CLI ドキュメントの「「atlas backups exports buckets list」および「atlas backups exports buckets describe」を参照してください。
エクスポートバケットの削除
Atlas CLI を使用して Atlas バックアップのエクスポート先を削除するには、次のコマンドを実行します。
atlas backups exports buckets delete [options]
コマンド構文とパラメータの詳細については、Atlas CLI ドキュメントの「atlas backups exports buckets delete」を参照してください。
クラウドプロバイダー アクセスの付与と管理、およびスナップショット エクスポート ジョブの作成と管理を行うには、使用するAPIにProject Owner
ロールが必要です。
エクスポート バケットの管理
エクスポート バケットまたはコンテナを管理するには、以下を使用します。
1 つのエクスポート バケットを作成
スナップショットをエクスポートするためのAmazon Web Services S3バケットまたはAzure Blob ストレージ コンテナへのアクセスを許可するには、 POST
リクエストをクラウドバックアップリソースエンドポイントに送信します。 これにより、 Amazon Web Services S3バケットまたはAzure Blob ストレージ コンテナがAtlasクラウドバックアップ スナップショットを受信できるようになります。 アクセスを許可するリクエストを送信するときは、次の情報を提供する必要があります。
が S3Amazon Web Services バケットにアクセスするために使用する必要がある統合 アクセスロール を識別する一意の 桁の 2416 進数文字stringAmazon Web Services ID。Atlas詳細については、「統合Amazon Web Servicesアクセスの設定 」を参照してください。
が Blob ストレージにアクセスするために使用する必要がある Service PrincipalAzure を識別する一意の 24文字 16stringAtlas 進数文字列。Azure詳しくは、「 Azure Service Principal Access の設定と管理 」を参照してください。
Azure Blog Storage アカウントのサービスエンドポイント。 詳しくは、 Azure のドキュメント を参照してください。
Microsoft Entra テナント ID を識別する UUID string。 詳しくは、「 Microsoft Entra のドキュメント 」を参照してください。
すべてのエクスポート バケットの一覧表示
がスナップショットをエクスポートするすべてのAmazon Web Services S3 バケットとAzure Blob ストレージAtlas コンテナを取得するには、GET
クラウドバックアップ リソース エンドポイントに リクエストを送信します。
1 つのエクスポート バケットを削除
エクスポート バケットを削除するには、まずプロジェクト内のすべてのクラスターのAmazon Web Services S3バケットまたはAzure Blob ストレージ コンテナへのスナップショットの自動エクスポートを無効にし、次に使用してクラウドバックアップリソースエンドポイントに DELETE
リクエストを送信する必要があります。エクスポート バケットのID 。 必要に応じて、エクスポート バケット ID を取得するためにエンドポイントにGET
リクエストを送信します。
エクスポート ジョブの管理
エクスポート ジョブを管理するには、次の を使用します。
スナップショット エクスポート ジョブの作成
1Atlas つの バックアップ スナップショットをAmazon Web Services S3 バケットまたはAzure Blob ストレージ コンテナにエクスポートするには、エクスポートするスナップショットの と の を指定して、POST
クラウドバックアップ リソース エンドポイント に リクエストを送信します。ID IDAmazon Web ServicesS3 バケットまたは BlogAzure ストレージ コンテナ。
スナップショットのエクスポート ジョブの取得
ID で 1 つのスナップショット エクスポート ジョブを検索するには、エクスポート ジョブの ID を指定してクラウドバックアップリソースエンドポイントにGET
リクエストを送信します。
実行中のすべてのスナップショット エクスポート ジョブを取得するには、クラウドバックアップリソースエンドポイントにGET
リクエストを送信します。