클라우드 백업 스냅샷 내보내기
참고
이 기능 은 M0
무료 클러스터, M2
및 M5
클러스터에서는 사용할 수 없습니다. 사용할 수 없는 기능에 학습 보려면 Atlas M0 (무료 클러스터), M2 및 M5 제한을 참조하세요.
Atlas를 사용하면 클라우드 백업 스냅샷을 AWS S3 버킷 또는 Azure Blob Storage 컨테이너로 내보낼 수 있습니다.
자동화된 백업 정책 및 일정을 관리하는 방법을 알아보려면 백업 정책 관리를 참조하세요.
Atlas가 스냅샷을 내보내는 방법
내보내기 정책을 설정하여 개별 스냅샷을 수동으로 내보내거나 스냅샷을 자동으로 내보낼 수 있습니다. 자동 내보내기의 경우 내보내기 정책에 빈도를 지정해야 합니다.
매일
매주
월간
연간
Atlas는 내보내기 빈도와 일치하는 빈도 유형으로 모든 백업 스냅샷을 자동으로 내보냅니다. 내보낸 결과는 해당 스냅샷의 전체 백업이 됩니다.
예시
다음 사항을 고려하세요:
주별 및 월별 스냅샷 일정을 설정하는 백업 정책
월별 내보내기 빈도를 설정하는 내보내기 정책
주간 및 월간 스냅샷이 월말 같은 날에 이루어진다고 가정해 보겠습니다. 스냅샷이 총 4
개 있고 이 중 3
개는 주간 스냅샷이며, 네 번째 스냅샷은 Atlas에서 주간 스냅샷으로 처리되지만 같은 날에 발생했기 때문에 월간 스냅샷이기도 합니다. 내보내기 빈도가 해당 스냅샷의 스냅샷 빈도와 일치하기 때문에 Atlas는 월별 스냅샷만 내보냅니다. 주간 스냅샷도 내보내려면 주간 스냅샷도 내보내도록 내보내기 정책을 업데이트하세요. 내보내기 빈도를 매주로 설정하면 Atlas는 스냅샷 4
개를 모두 내보냅니다.
Atlas는 컬렉션의 스냅샷을 한 번에 하나씩 내보냅니다. 내보내기가 진행됨에 따라 S3 버킷이나 Azure Blob Storage 컨테이너에 부분적인 결과가 표시될 수 있습니다. Atlas가 현재 5개 이상의 복제본 세트를 내보내고 있는 경우 Atlas는 새 작업을 대기열에 추가합니다. 샤딩된 클러스터의 경우 Atlas는 샤드 수에 관계없이 항상 모든 샤드의 스냅샷을 동시에 내보냅니다.
Atlas는 AWS 또는 Azure 자체에서 발생하는 데이터 전송 비용에 더해 AWS S3 버킷 또는 Azure Blob Storage 컨테이너로 내보낸 데이터의 GB당 $.125
(을)를 청구합니다. Atlas는 내보내기 전에 데이터를 압축합니다. 내보내는 데이터의 양을 추정하려면 클러스터에 있는 각 데이터베이스의 데이터 크기 를 합산합니다. 이 합계는 압축되지 않은 내보내기 크기와 일치해야 하며, 이는 데이터 내보내기 작업을 위해 Atlas에서 청구하는 최대 비용입니다.
Atlas가 업로드하는 파일
Atlas는 다음과 같은 경우 빈 파일을 /exported_snapshots/.permissioncheck
에 업로드합니다.
새로 AWS S3 버킷 또는 Azure Blob 저장 컨테이너를 내보내기용으로 추가
내보내기 시작
내보내기가 완료되면 Atlas는 이름이 .complete
인 메타데이터 파일과 metadata.json
인 메타데이터 파일을 각 컬렉션에 대해 업로드합니다.
Atlas가 .complete
라는 이름의 메타데이터 파일을 S3 버킷의 다음 경로에 업로드합니다.
/exported_snapshots/<orgUUID>/<projectUUID>/<clusterName>/<initiationDateOfSnapshot>/<timestamp>/
참고
기본적으로 Atlas는 메타데이터 파일 경로에 조직 및 프로젝트 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 | S3 버킷 또는 Azure Blob 저장 컨테이너에 업로드된 파일 수의 합계입니다. |
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는 S3 버킷의 다음 경로에 각 컬렉션에 대한 metadata.json
파일을 업로드합니다.
/exported_snapshots/<orgUUID>/<projectUUID>/<clusterName>/<initiationDateOfSnapshot>/<timestamp>/<dbName>/<collectionName>/metadata.json
참고
기본적으로 Atlas는 메타데이터 파일 경로에 조직 및 프로젝트 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는 S3 버킷이나 Azure Blob Storage 컨테이너의 일부 데이터를 제거하지 않습니다.
내보낸 데이터 형식
Atlas는 데이터베이스의 콘텐츠를 .json.gz
형식으로 S3 또는 Azure Blob 스토리지에 업로드하고 그 안에 확장 JSON 형식의 문서를 포함합니다. 다음은 S3 또는 Azure Blob 스토리지에 있는 파일의 경로입니다.
/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 버전에 대한 스냅샷만 내보낼 수 있지만 버전에 관계없이 저장된 스냅샷은 항상 다운로드할 수 있습니다.
스냅샷당 하나의 내보내기만 활성화할 수 있습니다.
필요한 액세스 권한
클라우드 백업 스냅샷을 관리하려면 프로젝트에 대한 Project Owner
액세스 권한이 있어야 합니다. Organization Owner
액세스 권한이 있는 사용자는 프로젝트에 자신을 Project
Owner
으로 추가해야만 클라우드 백업 스냅샷을 관리할 수 있습니다.
전제 조건
Cloud Backup 스냅샷을 내보내려면 Cloud Backup이 활성화된 M10
이상의 Atlas 클러스터가 필요합니다. 또한 AWS S3 버킷 또는 Azure Blob Storage 컨테이너로 내보내려면 다음을 수행해야 합니다.
Atlas에 AWS 리소스에 대한 액세스 권한을 부여하는
STS:AssumeRole
을 사용하여 AWS IAM 역할을 구성합니다. Atlas의 AWS 액세스를 구성하는 방법에 대해 자세히 알아보려면 통합 AWS 액세스 설정을 참조하세요.Atlas 쓰기 권한을 부여하거나 AWS 리소스에
S3:PutObject
및S3:GetBucketLocation
권한을 부여하는 AWS IAM 역할 정책을 구성합니다. AWS 리소스에 대한 쓰기 액세스를 구성하는 방법에 대해 자세히 알아보려면 통합 AWS 액세스 설정하기를 참조하세요.예시
{ "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 서비스 주체를 설정합니다.
Azure 서비스 주체에 Storage Blob 위임자 및 Storage Blob 데이터 기여자 역할을 할당합니다.
서비스 주체에 역할을 할당하려면 다음 정보가 필요합니다.
역할설명스토리지 Blob 위임자이를 통해 서비스 주체는 SAS 토큰에 서명하여 Azure 스토리지 컨테이너에 액세스할 수 있습니다. 이 역할을 할당하려면 다음 명령을 실행합니다.
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> Storage Blob 데이터 기여자이를 통해 Azure 스토리지 컨테이너에 대한 Blob 액세스를 읽고, 쓰고, 삭제할 수 있습니다. 이 역할을 할당하려면 다음 명령을 실행합니다.
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>
내보내기 관리
Atlas CLI와 Atlas 관리 API를 통해 AWS S3 버킷에 대한 스냅샷 내보내기를 생성 및 관리하거나, Atlas 관리 API를 통해 Azure Blob 저장 컨테이너에 대한 스냅샷 내보내기를 생성 및 관리할 수 있습니다.
참고
Atlas CLI를 사용하여 Azure Blob 스토리지 컨테이너로 스냅샷을 내보낼 수 없습니다.
내보내기 작업 관리
Atlas CLI를 사용하여 내보내기 작업을 생성하거나 확인하여 내보내기 작업을 관리할 수 있습니다.
내보내기 작업 만들기
Atlas CLI를 사용하여 M10 이상 Atlas 클러스터의 백업 스냅샷 하나를 기존 AWS S3 버킷으로 내보내려면 다음 명령을 실행합니다.
atlas backups exports jobs create [options]
Atlas CLI를 사용하여 특정 백업 내보내기 작업이 완료되는지 확인하려면 다음 명령을 실행합니다.
atlas backups exports jobs watch <exportJobId> [options]
이전 명령의 구문 및 매개 변수에 대해 자세히 알아보려면 Atlas CLI 문서에서 Atlas 백업 내보내기 작업 만들기 및 Atlas 백업 내보내기 작업 보기를 참조하세요
내보내기 작업 보기
Atlas CLI를 사용하여 지정한 프로젝트의 클라우드 백업 복원 작업을 나열하려면 다음 명령을 실행합니다.
atlas backups exports jobs list <clusterName> [options]
Atlas CLI를 사용하여 지정한 클라우드 백업 복원 작업에 대한 세부 정보를 반환하려면 다음 명령을 실행합니다.
atlas backups exports jobs describe [options]
이전 명령의 구문 및 매개변수에 대해 자세히 알아보려면 Atlas 백업 내보내기 작업 목록 및 Atlas 백업 내보내기 작업 설명에 대한 Atlas CLI 문서를 참조하세요.
내보내기 버킷 관리
내보내기 버킷을 생성, 보기, 삭제하여 Atlas CLI를 사용해 내보내기 버킷을 관리할 수 있습니다.
하나의 내보내기 버킷 생성하기
Atlas CLI를 사용하는 기존 AWS S3 버킷을 사용하여 Atlas 백업의 내보내기 대상을 만들려면 다음 명령을 실행합니다.
atlas backups exports buckets create <bucketName> [options]
명령 구문 및 매개 변수에 관한 자세한 사항은 Atlas CLI문서에서 Atlas 백업 내보내기 버킷 만들기를 참조하세요.
내보내기 버킷 보기
Atlas CLI를 사용하여 지정한 프로젝트에 대한 클라우드 백업 복원 버킷을 나열하려면 다음 명령을 실행합니다.
atlas backups exports buckets list [options]
Atlas CLI를 사용하여 지정한 클라우드 백업 복원 버킷의 세부 정보를 반환하려면 다음 명령을 실행합니다.
atlas backups exports buckets describe [options]
이전 명령의 구문과 매개 변수에 대한 자세한 내용은 Atlas CLI 문서에서 Atlas 백업 내보내기 버킷 리스트와 Atlas 백업 내보내기 버킷 설명을 참조하세요.
내보내기 버킷 삭제
Atlas CLI를 사용하여 Atlas 백업의 내보내기 대상을 삭제하려면 다음 명령을 실행합니다.
atlas backups exports buckets delete [options]
명령 구문 및 매개 변수에 관한 자세한 사항은 Atlas CLI 문서에서 Atlas 백업 내보내기 버킷 삭제를 참조하세요.
클라우드 제공자 접근 권한을 부여 및 관리하고 스냅샷 내보내기 작업을 생성 및 관리하려면 사용 중인 API에 Project Owner
역할이 있어야 합니다.
내보내기 버킷 관리
다음을 사용하여 내보내기 버킷 또는 컨테이너를 관리할 수 있습니다.
하나의 내보내기 버킷 생성하기
스냅샷 내보내기를 위해 AWS S3버킷 또는 Azure Blob 저장 컨테이너에 접근 권한을 부여하려면 클라우드 백업 리소스 엔드포인트에 POST
요청을 보냅니다. 이를 통해 AWS S3 버킷 또는 Azure Blob 저장 컨테이너가 Atlas 클라우드 백업 스냅샷을 수신할 수 있습니다. 액세스 권한 부여 요청을 보낼 때 다음 정보를 제공해야 합니다.
Atlas가 AWS S3 버킷에 액세스하는 데 사용해야 하는 통합 AWS 액세스 역할 ID를 식별하는 고유한 24자리 16진수 문자열입니다. 자세히 알아보려면 통합 AWS 액세스 설정을 참조하세요.
Atlas가 Azure Blob 스토리지에 액세스하는 데 사용해야 하는 Azure 서비스 주체를 식별하는 고유한 24-16진수 문자열입니다. 자세한 내용은 Azure 서비스 주체 액세스 설정 및 관리를 참조하세요.
Azure Blob Storage 계정의 서비스 엔드포인트입니다. 자세한 내용은 Azure 문서를 참조하세요.
Microsoft Entra 테넌트 ID를 식별하는 UUID 문자열입니다. 자세한 내용은 Microsoft Entra 설명서를 참조하세요.
모든 내보내기 버킷 나열
Atlas가 스냅샷을 내보내는 모든 AWS S3 버킷과 Azure Blob Storage 컨테이너를 조회하려면 클라우드 백업 리소스 엔드포인트에 GET
요청을 보내세요.
내보내기 버킷 하나 삭제
내보내기 버킷을 삭제하려면 먼저 프로젝트의 모든 클러스터에서 AWS S3 버킷 또는 Azure Blob Storage 컨테이너로 스냅샷 자동 내보내기를 비활성화한 다음, 내보내기 버킷의 ID와 함께 클라우드 백업 리소스 엔드포인트에 DELETE
요청을 전송해야 합니다. 필요한 경우 엔드포인트에 GET
요청을 전송하여 내보내기 버킷 ID를 검색합니다.
내보내기 작업 관리
다음을 사용하여 내보내기 작업을 관리합니다.
스냅샷 내보내기 작업 만들기
한 Atlas 백업 스냅샷을 AWS S3 버킷 또는 Azure Blob 저장 컨테이너로 내보내려면 내보낼 스냅샷의 ID와 AWS S3 버킷 또는 Azure Blob 저장 컨테이너의 ID를 포함한 POST
요청을 클라우드 백업 리소스 엔드포인트로 보냅니다.
스냅샷 내보내기 작업 조회
ID로 한 개의 스냅샷 내보내기 작업을 조회하려면 내보내기 작업의 ID를 사용하여 클라우드 백업 리소스 엔드포인트에 GET
요청을 보냅니다.
실행 중인 모든 스냅샷 내보내기 작업을 조회하려면 클라우드 백업 리소스 엔드포인트에 GET
요청을 보냅니다 .