Docs Menu
Docs Home
/
MongoDB Atlas
/

클라우드 백업 스냅샷 내보내기

이 페이지의 내용

  • Atlas가 스냅샷을 내보내는 방법
  • 내보낸 데이터 형식
  • 제한 사항
  • 필요한 액세스 권한
  • 전제 조건
  • 내보내기 관리

참고

이 기능 은 M0 무료 클러스터, M2M5 클러스터에서는 사용할 수 없습니다. 사용할 수 없는 기능에 학습 보려면 Atlas M0 (무료 클러스터), M2 및 M5 제한을 참조하세요.

Atlas를 사용하면 클라우드 백업 스냅샷을 AWS S3 버킷 또는 Azure Blob Storage 컨테이너로 내보낼 수 있습니다.

자동화된 백업 정책 및 일정을 관리하는 방법을 알아보려면 백업 정책 관리를 참조하세요.

내보내기 정책을 설정하여 개별 스냅샷을 수동으로 내보내거나 스냅샷을 자동으로 내보낼 수 있습니다. 자동 내보내기의 경우 내보내기 정책에 빈도를 지정해야 합니다.

  • 매일

  • 매주

  • 월간

  • 연간

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는 다음과 같은 경우 빈 파일을 /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

컬렉션의 유형입니다. 값은 다음 중 하나일 수 있습니다.

  • view - 컬렉션에 대한 보기

  • timeseries - 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는 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에 시작합니다.

다음과 같은 제한 사항이 적용됩니다:

클라우드 백업 스냅샷을 관리하려면 프로젝트에 대한 Project Owner 액세스 권한이 있어야 합니다. Organization Owner 액세스 권한이 있는 사용자는 프로젝트에 자신을 Project Owner 으로 추가해야만 클라우드 백업 스냅샷을 관리할 수 있습니다.

Cloud Backup 스냅샷을 내보내려면 Cloud Backup이 활성화된 M10 이상의 Atlas 클러스터가 필요합니다. 또한 AWS S3 버킷 또는 Azure Blob Storage 컨테이너로 내보내려면 다음을 수행해야 합니다.

  1. Atlas에 AWS 리소스에 대한 액세스 권한을 부여하는 STS:AssumeRole을 사용하여 AWS IAM 역할을 구성합니다. Atlas의 AWS 액세스를 구성하는 방법에 대해 자세히 알아보려면 통합 AWS 액세스 설정을 참조하세요.

  2. Atlas 쓰기 권한을 부여하거나 AWS 리소스에 S3:PutObjectS3: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/*"
    }
    ]
    }
  1. Atlas 프로젝트에 대한 액세스 정책으로 Azure 서비스 주체를 설정합니다.

  2. 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 백업 내보내기 버킷 삭제를 참조하세요.

참조: 관련 링크

클라우드 제공자 접근 권한을 부여 및 관리하고 스냅샷 내보내기 작업을 생성 및 관리하려면 사용 중인 APIProject 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 요청을 보냅니다 .

돌아가기

미사용 데이터 암호화를 사용하여 복원