注意
この機能は、M0 無料クラスターおよびフレックス クラスターでは使用できません。利用できない機能について詳しくは、「Atlas M0(無料クラスター)の制限」を参照してください。
Atlas を使用すると、クラウドバックアップ スナップショットをオブジェクトストレージサービスにエクスポートできます。
自動バックアップ ポリシーとスケジュールを管理する方法については、「バックアップ ポリシーの管理」を参照してください。
サポートされているストレージ サービス
Atlas は現在、次のオブジェクトストレージサービスをサポートしています。
Amazon Web Services S3バケット
Azure BLOB ストレージ
Google Cloud ストレージバケット
Atlas がスナップショットをエクスポートする方法
注意
Amazon Web Services S3 にバックアップをエクスポートする場合は、 Amazon Web Services S3 Object lock を有効にして、コンプライアンスとセキュリティに必要なバックアップファイルの不変を確保します。オブジェクト ロックは、エクスポートされたバックアップファイルの削除や変更を防止します。
個々のスナップショットを手動でエクスポートすることも、スナップショットを自動的にエクスポートするためのエクスポート ポリシーを設定することもできます。自動エクスポートの場合は、エクスポート ポリシーで頻度を指定する必要があります。
毎日
毎週
毎月
毎年
Atlas は、エクスポート頻度に一致する頻度タイプのバックアップ スナップショットを自動的にエクスポートします。エクスポートされた結果は、そのスナップショットの完全バックアップです。
例
次の点を考慮してください。
週次および月次のスナップショット スケジュールを設定するバックアップ ポリシー
毎月のエクスポート頻度を設定するエクスポート ポリシー
たとえば、月末に週次スナップショットと月次スナップショットが同じ日に実行されるとします。スナップショットは 4 件あり、そのうち 3 件は週次スナップショットであり、4 番目のスナップショットは Atlas によって週次スナップショットとして扱われますが、同じ日に発生したため月次スナップショットにもなります。Atlas が月次スナップショットをエクスポートするのは、エクスポート頻度がそのスナップショットのスナップショット頻度と一致する場合のみです。週次スナップショットもエクスポートするには、週次スナップショットもエクスポートするようにエクスポート ポリシーを更新します。エクスポート頻度が毎週に設定されている場合、Atlas は 4 件すべてのスナップショットをエクスポートします。
エクスポートが進むにつれて、オブジェクトストレージサービスに部分的な結果が表示される場合があります。
Atlas は、 Time to Live の設定に関係なく、ドキュメントをスナップショットで保持します。これらのドキュメントには、 Time to Live の期限を過ぎたスナップショットからアクセスできます。
Atlas は、クラウドサービス自体により発生するデータ転送コストに加えて、$.125 を 1 GB のデータが AWS S3 バケット、Azure Blob Storage Container、または Google Cloud Storage バケットにエクスポートされるたびに請求します。Atlas は、エクスポートする前にデータを圧縮します。エクスポートされるデータの量を見積もるには、クラスター内の各データベースの dataSize を合計します。この合計がエクスポートの圧縮されていないサイズに相当し、Atlas からデータをエクスポートする操作に対して発生する最大コストとなります。
Atlas がアップロードするファイル
Atlas は、次の場合に空のファイルを /exported_snapshots/.permissioncheck にアップロードします。
エクスポートの開始
Atlas がエクスポートを完了すると、Atlas は各コレクションに対して .complete という名前のメタデータ ファイルと metadata.json という名前のメタデータ ファイルをアップロードします。
エクスポート ジョブが失敗した場合:
Atlas は自動的にエクスポートを再試行しません。
Atlas はオブジェクトストア内の部分的なデータを削除しません。
エクスポートされたデータ形式
Atlasgzip は、 で圧縮された拡張JSON (v2 )ドキュメントをアップロードします。Atlas では、これらのドキュメントを順番にアップロードすることはありません。 以下は、オブジェクトストア上のファイルへのパスです。
/exported_snapshots/<orgName>/<projectName>/<clusterName>/<initiationDateOfSnapshot>/<timestamp>/<dbName>/<collectionName>/<shardName>.<increment>.json.gz
以下の条件に一致するもの。
| Atlas 組織の名前。 |
| Atlas プロジェクトの名前。 |
| Atlas クラスターの名前。 |
| スナップショットが作成された日付。 |
| エクスポート ジョブが作成されたときのタイムスタンプ。 |
| Atlas クラスター内のデータベースの名前。 |
| Atlas コレクションの名前。 |
| レプリカセットの名前。 シャーディングされたコレクションの場合、これはプライマリシャードの名前です。 |
| チャンクがアップロードされるにつれて増加するカウント。 |
制限
次のアクションは実行できません。
フォールバック スナップショットのエクスポート。
スナップショットごとに複数のアクティブなエクスポートがある。
ビュー コレクション 、または システム コレクション
<database>.system.jsをエクスポートします。ただし、 コレクションは除きます。IP制限付き保管時の暗号化が有効になっている Atlasプロジェクト内のクラスターからスナップショットをエクスポートします。
必要なアクセス権
クラウドバックアップ スナップショットを管理するには、プロジェクトへの Project Backup Manager または Project Owner のアクセス権が必要です。
Organization Owner としてのアクセス権を持つユーザーは、クラウドバックアップ スナップショットを管理する前に、自分自身を Project Backup Manager または Project Owner としてプロジェクトに追加する必要があります。
前提条件
クラウドバックアップ スナップショットをエクスポートするには、M10 クラウドバックアップが有効 になっている 以上の Atlas クラスターが必要です。さらに、オブジェクトストアにエクスポートするには、次の操作を行う必要があります。
を使用してAmazon Web Services IAM
STS:AssumeRoleロールを設定し、Atlas にAmazon Web Servicesリソースへのアクセスを許可します。Atlas のAmazon Web Servicesアクセスの詳細については、統合Amazon Web Servicesアクセスのセットアップ を参照してください。Configure Amazon Web Services IAM ロールのポリシー を設定して、Atlas に書込み (write) アクセス、または Amazon Web Services リソースへの
S3:PutObject権限とS3:GetBucketLocation権限を付与します。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>
「 認証された Google Cloud サービス アカウントの表示 」の手順に従って、Atlas で Google Cloud サービス アカウントのIDを見つけます。
Google Cloud コンソールで、Google Cloud ドキュメント に従って、前の手順のサービス アカウントID をプリンシパルとしてバケットのポリシーに追加します。
これにより、特定の Google Cloud ストレージバケットのサービス アカウントに ストレージ オブジェクト ユーザー ロールが付与されます。
輸出マネジメント
Atlas CLI と Atlas Administration APIからAWS S バケットへのスナップショット エクスポートを作成および管理できます。 Azure Blob Storage Container または3 Google Cloud Storage バケットへのスナップショット エクスポートを作成および管理するには、 Atlas Administration API を使用する必要があります。この API に直接、または Atlas CLI で atlas api コマンドを使用してアクセスできます。
注意
Atlas CLI を使用してAzure Blob ストレージまたは Google Cloud ストレージ コンテナへのエクスポートを管理するには、 atlas api コマンドを使用して Atlas Administration APIクラウドバックアップリソースエンドポイントに リクエストを送信します。
エクスポート ジョブの管理
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 つのエクスポート バケットを作成
スナップショットをエクスポートするためのAWS S3 バケット、 Azure Blob ストレージ コンテナ、または Google CloudPOST Storageバケットへのアクセスを許可するには、クラウドバックアップリソースエンドポイントに リクエストを送信します。これにより、 AWS S3 バケット、 Azure Blob ストレージ コンテナ、または Google Cloud ストレージバケットで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 のドキュメント を参照してください。
Atlas が Google Cloud ストレージバケットにアクセスするために使用する Google Cloud プロバイダー アクセス ロールを識別する一意の 24 桁の 16 進数文字列。
すべてのエクスポート バケットの一覧表示
Atlas がスナップショットをエクスポートするAWS S3 バケット、 Azure Blob ストレージ コンテナ、または Google Cloud StorageGET バケットをすべて取得するには、クラウドバックアップリソースエンドポイントに リクエストを送信します。
1 つのエクスポート バケットを削除
エクスポート バケットを削除するには、まずプロジェクト内のすべてのクラスターのAWS S3 バケット、 Azure Blob ストレージ コンテナ、または Google Cloud ストレージバケットへのスナップショットの自動エクスポートを無効にし、次に リクエストをCloudDELETE に送信する必要があります。エクスポートGET バケットのIDを持つバックアップリソースエンドポイント。必要に応じて、エンドポイントに リクエストを送信してエクスポート バケットIDを取得します。
エクスポート ジョブの管理
エクスポート ジョブを管理するには、次の を使用します。
スナップショット エクスポート ジョブの作成
1 つの AtlasバックアップショットをAWS S3 バケット、 Azure Blob ストレージ コンテナ、または Google Cloud ストレージバケットにエクスポートするには、エクスポートするスナップショットのIDと次のIDを指定して、クラウドバックアップリソースエンドポイントにPOST リクエストを送信します。 AWS S3 バケット、 Azure Blob ストレージ コンテナ、または Google Cloud ストレージバケット。
スナップショットのエクスポート ジョブの取得
ID で 1 つのスナップショット エクスポート ジョブを検索するには、エクスポート ジョブの ID を指定してクラウドバックアップリソースエンドポイントにGETリクエストを送信します。
実行中のすべてのスナップショット エクスポート ジョブを取得するには、クラウドバックアップリソースエンドポイントにGETリクエストを送信します。