Docs Menu
Docs Home
/
MongoDB Atlas
/

クラウドバックアップ スナップショットのエクスポート

項目一覧

  • Atlas がスナップショットをエクスポートする方法
  • エクスポートされたデータ形式
  • 制限
  • 必要なアクセス権
  • 前提条件
  • 輸出マネジメント

注意

この機能は、 M0無料クラスター、 M2M5クラスターでは使用できません。利用できない機能について詳しくは、「 Atlas M 0 (無料クラスター)、M 2 、M 5の制限 を参照してください。

Atlasを使用すると、クラウドバックアップ スナップショットを Amazon Web Services S3バケットまたはAzure Blob ストレージ コンテナにエクスポートできます。

自動バックアップ ポリシーとスケジュールを管理する方法については、「バックアップ ポリシーの管理」を参照してください。

個々のスナップショットを手動でエクスポートすることも、スナップショットを自動的にエクスポートするためのエクスポート ポリシーを設定することもできます。自動エクスポートの場合は、エクスポート ポリシーで頻度を指定する必要があります。

  • 毎日

  • 毎週

  • 毎月

  • 毎年

Atlas は、エクスポート頻度に一致する頻度タイプのバックアップ スナップショットを自動的にエクスポートします。エクスポートされた結果は、そのスナップショットの完全バックアップです。

次の点を考慮してください。

  • 週次および月次のスナップショット スケジュールを設定するバックアップ ポリシー

  • 毎月のエクスポート頻度を設定するエクスポート ポリシー

たとえば、月末に週次スナップショットと月次スナップショットが同じ日に実行されるとします。スナップショットは 4 件あり、そのうち 3 件は週次スナップショットであり、4 番目のスナップショットは Atlas によって週次スナップショットとして扱われますが、同じ日に発生したため月次スナップショットにもなります。Atlas が月次スナップショットをエクスポートするのは、エクスポート頻度がそのスナップショットのスナップショット頻度と一致する場合のみです。週次スナップショットもエクスポートするには、週次スナップショットもエクスポートするようにエクスポート ポリシーを更新します。エクスポート頻度が毎週に設定されている場合、Atlas は 4 件すべてのスナップショットをエクスポートします。

Atlas はコレクションのスナップショットを 1 つずつエクスポートします。 エクスポートが進むにつれて、 S 3バケットまたは Azure Blob ストレージ コンテナに部分的な結果が表示される場合があります。 Atlas が現在5以上のレプリカセットをエクスポートしている場合、Atlas は新しいジョブをキューに入れます。 シャーディングされたクラスターの場合、Atlas はシャードの数に関係なく、常にすべてのシャードのスナップショットを同時にエクスポートします。

は、 または 自体から発生するデータ転送コストに加えて、Amazon Web ServicesAtlas $.125GBAmazon Web ServicesS3 バケットまたはAzure BlobAzure ストレージ コンテナにエクスポートされたデータ 1 あたり を請求します。Atlas は、エクスポートする前にデータを圧縮します。 エクスポートされるデータの量を見積もるには、クラスター内の各データベースの dataSizeを合計します。 この合計は、エクスポートの非圧縮サイズに対応する必要があります。これが、データのエクスポート操作に対して 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

コレクションのタイプ。値は次のいずれかになります。

  • view - コレクションのビューの場合

  • timeseries - 時系列コレクションの場合

このフィールドは、標準コレクションでは返されません。

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 から始まります。

次の制限が適用されます。

クラウドバックアップ スナップショットを管理するには、プロジェクトに対する Project Owner アクセス権が必要です。Organization Owner アクセス権を持つユーザーは、クラウドバックアップ スナップショットを管理する前に、自分自身を Project Owner としてプロジェクトに追加する必要があります。

クラウドバックアップ スナップショットをエクスポートするには、 クラウドバックアップが有効 になっているM10以上の Atlas クラスターが必要です。 さらに、 Amazon Web Services S3バケットまたはAzure Blob ストレージ コンテナにエクスポートするには、次の手順を実行する必要があります。

  1. Amazon Web ServicesIAM ロールの 設定 STS:AssumeRoleとAtlas Amazon Web Servicesを使用すると、 に リソースへのアクセスが許可されます。の アクセスの構成の詳細については、「Amazon Web Services 統合Atlas Amazon Web Servicesアクセスのセットアップ 」を参照してください。

  2. IAM ロール ポリシーをAmazon Web Services 設定するAtlas S3:PutObjectS3:GetBucketLocationAmazon 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/*"
    }
    ]
    }
  1. Atlas プロジェクト向けのアクセス ポリシーを使用してAzure Service Principal を設定します。

  2. 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」を参照してください。

Tip

参照: 関連リンク

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 を使用してエクスポート バケットを作成、表示、削除することでエクスポート バケットを管理できます。

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」を参照してください。

クラウドプロバイダー アクセスの付与と管理、およびスナップショット エクスポート ジョブの作成と管理を行うには、使用するAPIProject Ownerロールが必要です。

エクスポート バケットまたはコンテナを管理するには、以下を使用します。

スナップショットをエクスポートするためのAmazon Web Services S3バケットまたはAzure Blob ストレージ コンテナへのアクセスを許可するには、 POST リクエストをクラウドバックアップリソースエンドポイントに送信します。 これにより、 Amazon Web Services S3バケットまたはAzure Blob ストレージ コンテナがAtlasクラウドバックアップ スナップショットを受信できるようになります。 アクセスを許可するリクエストを送信するときは、次の情報を提供する必要があります。

がスナップショットをエクスポートするすべてのAmazon Web Services S3 バケットとAzure Blob ストレージAtlas コンテナを取得するには、GET クラウドバックアップ リソース エンドポイントに リクエストを送信します。

エクスポート バケットを削除するには、まずプロジェクト内のすべてのクラスターの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リクエストを送信します。

戻る

保管時の暗号化を使用した復元