Azure Storage Mover의 S3(Simple Storage Service) 원본 마이그레이션 기능은 S3 호환 GCS(Google Cloud Storage) 개체 저장소에서 Azure Blob Storage 안전하게 데이터를 전송합니다.
Azure Arc 다중 클라우드 커넥터를 사용하는 AWS S3(Amazon Simple Storage Services) 마이그레이션과 달리 S3 호환 원본 마이그레이션은 간소화된 접근 방식을 사용합니다. 원본 엔드포인트 URL 및 HMAC(해시 기반 메시지 인증 코드) 자격 증명을 Azure Key Vault 안전하게 저장하는 경우 다중 클라우드 커넥터 또는 자동화된 원본 검색이 필요하지 않습니다.
이 문서에서는 GCS S3 호환 원본에서 Azure Blob Storage 데이터를 마이그레이션하도록 Storage Mover를 구성하는 전체 프로세스를 안내합니다. 프로세스는 원본 자격 증명을 Azure Key Vault 저장하고, 원본 및 대상 엔드포인트를 구성하고, 마이그레이션 작업을 만들고 실행하는 것으로 구성됩니다.
사전 요구 사항
시작하기 전에 다음 항목이 있어야 합니다.
- Azure Storage Mover 리소스를 만들고 관리할 수 있는 권한이 있는 활성 Azure 구독입니다.
- 마이그레이션하려는 GCS 버킷에 액세스할 수 있는 Google Cloud 계정입니다.
- 대상으로 사용할 Azure Storage 계정입니다.
- Azure 구독에 배포된 Storage Mover 리소스입니다.
- 원본 HMAC 자격 증명을 안전하게 저장하는 Azure Key Vault.
- GCS 버킷에 대해 생성된 HMAC 키입니다. GCS용 HMAC 키 생성을 참조하세요.
- 원본 데이터에 프라이빗 네트워크를 통해서만 액세스할 수 있는 경우 Azure 프라이빗 연결 설정
Limits
Azure Storage Mover의 S3 호환 GCS 원본 마이그레이션 기능에는 다음과 같은 제한이 있습니다.
- 각 마이그레이션 작업은 5억 개의 개체 전송을 지원합니다.
- 구독당 최대 10개의 동시 작업이 지원됩니다. 10개 이상을 실행해야 하는 경우 지원 요청을 만듭니다.
- S3 호환 원본에 대한 HTTPS 액세스만 지원됩니다.
- S3 호환 소스는 AWS 서명 버전 4(SigV4) 스타일 인증을 지원해야 합니다.
알아야 할 사항
마이그레이션을 시작하기 전에 GCS S3 호환 원본 마이그레이션과 관련된 다음 고려 사항을 검토합니다.
인증 방법
GCS S3 호환 액세스는 GCS 서비스 계정 또는 사용자 계정과 연결된 HMAC 키(액세스 키 ID 및 비밀 키)를 사용합니다. 이러한 키를 사용하면 GCS가 AWS 서명 버전 4 인증 프로세스를 사용하여 표준 S3 API 요청에 응답할 수 있습니다.
GCS용 HMAC 키 생성
S3 호환 인터페이스를 사용하여 GCS 버킷에 액세스하려면 Google 클라우드 콘솔에서 HMAC 키를 생성해야 합니다.
Google 클라우드 콘솔로 이동합니다.
Cloud Storage>설정>상호 운용성 탭으로 이동합니다.
아직 없는 경우 상호 운용성 액세스를 위한 기본 프로젝트 설정을 선택합니다.
서비스 계정의 액세스 키 섹션에서 사용할 서비스 계정을 선택하고 키 만들기를 선택합니다.
액세스 키 및 비밀 키 값을 확인합니다. 다음 단계에서 이러한 값이 필요합니다.
Important
이러한 키를 안전하게 저장합니다. 비밀 키는 한 번만 표시됩니다. 키는 초기 생성 중에만 표시되며 나중에 검색할 수 없습니다.
HMAC 자격 증명에 최소 유효 기간이 1주일인지 확인하여 작업 완료 및 최적의 보안을 보장합니다.
Azure Key Vault 원본 자격 증명 저장
GCS 버킷에 대한 HMAC 키를 생성한 후 Storage Mover 서비스에서 보안 액세스를 위해 Azure Key Vault 비밀로 저장합니다.
Azure 포털을 사용하여 Storage Mover 리소스와 동일한 구독 내에 있는 Azure Key Vault 이동합니다.
왼쪽 탐색 영역에서 개체 메뉴를 확장하고 비밀을 선택합니다. 다음으로 생성/가져오기를 선택합니다.
액세스 키에 대한 비밀을 만듭니다.
-
이름: 의미 있는 이름(예:
gcs-access-key)을 제공합니다. - 비밀 값: 이전 섹션의 HMAC 액세스 키 값을 붙여넣습니다.
- Create를 선택합니다.
-
이름: 의미 있는 이름(예:
비밀 키에 대한 두 번째 비밀을 만듭니다.
-
이름: 의미 있는 이름(예:
gcs-secret-key)을 제공합니다. - 비밀 값: 이전 섹션의 HMAC 비밀 키 값을 붙여넣습니다.
- Create를 선택합니다.
-
이름: 의미 있는 이름(예:
각 비밀에 대한 전체 비밀 식별자 URI를 확인합니다. 원본 엔드포인트를 만들 때 이러한 식별자가 필요합니다.
비고
최적의 보안을 위해 HMAC 비밀을 포함하는 Key Vault 대한 공용 액세스를 사용하지 않도록 설정하여 Storage Mover를 신뢰할 수 있는 서비스로 추가하는 것이 좋습니다.
자세한 내용은 Azure Portal 사용하여 Key Vault 비밀 설정 및 검색을 참조하세요.
원본 및 대상 엔드포인트 구성
Azure Key Vault 내에 HMAC 자격 증명을 저장한 후 다음 단계는 마이그레이션의 원본 및 대상 엔드포인트를 만드는 것입니다.
Azure Storage Mover 서비스의 컨텍스트에서 엔드포인트는 원본 또는 대상 위치 및 기타 관련 정보에 대한 경로를 포함하는 리소스입니다. Storage Mover 작업 정의는 엔드포인트를 사용하여 복사 작업의 원본 및 대상 위치를 정의합니다.
GCS S3 호환 원본 엔드포인트 구성
원본 엔드포인트는 데이터가 마이그레이션되는 위치를 식별합니다. 원본 엔드포인트는 마이그레이션 프로젝트 내에서 지정된 데이터의 원본을 정의하는 데 사용됩니다.
다음 단계에서는 원본 엔드포인트를 만드는 프로세스를 설명합니다.
Azure portal에서 Storage Mover 인스턴스로 접속하세요.
왼쪽 탐색 창 내의 리소스 관리 그룹에서 스토리지 엔드포인트를 선택합니다. 원본 엔드포인트 탭을 선택한 다음 엔드포인트 만들기를 선택하여 원본 엔드포인트 만들기 창을 엽니다.
원본 엔드포인트 만들기 창에서 다음을 수행합니다.
- 마이그레이션 유형으로 다중 클라우드 마이그레이션을 선택합니다.
- 원본 유형으로 GCS 개체 스토리지- S3을 선택합니다.
-
원본 URL: GCS 버킷에 대한 전체 HTTPS URL을 S3 호환 형식으로 입력합니다. 형식
https://storage.googleapis.com/<bucket-name>/을 사용하거나https://storage.googleapis.com/<bucket-name>/<prefix>/개체의 하위 집합만 마이그레이션합니다. - Access Key Vault Secret URI: HMAC Access Key가 포함된 비밀의 전체 URI를 입력합니다
- Secret Key Vault Secret URI: HMAC Secret Key가 포함된 비밀의 전체 URI를 입력합니다
- 필요에 따라 엔드포인트에 대한 설명을 제공합니다.
선택 항목이 올바른지 확인하고 만들기 를 선택하여 엔드포인트를 만듭니다.
비고
원본 엔드포인트를 만들면 시스템 할당 관리 ID가 자동으로 프로비전됩니다. 이 ID에는 마이그레이션 중 HMAC 자격 증명을 검색하려면 Azure Key Vault에서 Key Vault Secrets User RBAC(역할 기반 액세스 제어) 역할 액세스 권한이 필요합니다. 포털에서 이 역할을 자동으로 할당하려고 시도합니다. 권한 부족으로 인해 할당이 실패하는 경우 수동으로 할당하거나 Azure 관리자에게 문의하여 역할을 수동으로 부여합니다.
Azure Blob Storage 대상 엔드포인트 구성
왼쪽 탐색 창 내의 리소스 관리 그룹에서 스토리지 엔드포인트를 선택합니다. 대상 엔드포인트 탭을 선택한 다음 엔드포인트 추가를 선택하여 대상 엔드포인트 만들기 창을 엽니다.
대상 엔드포인트 만들기 창에서 다음을 수행합니다.
- 해당 드롭다운 목록에서 구독 및 스토리지 계정을 선택합니다.
- 대상 유형 필드에서 Blob 컨테이너를 선택합니다.
- 드롭다운 목록에서 마이그레이션할 Blob 컨테이너 를 선택합니다.
- 필요에 따라 엔드포인트에 대한 설명을 제공합니다.
선택 항목이 올바른지 확인하고 만들기 를 선택하여 엔드포인트를 만듭니다.
RBAC 역할을 할당하기
Azure 포털을 통해 엔드포인트를 만들면 필요한 RBAC 역할이 시스템 할당 관리 ID에 자동으로 할당됩니다.
| Endpoint | 역할 | 대상 리소스 |
|---|---|---|
| 소스 엔드포인트 | Key Vault 비밀 사용자 | 사용자의 Azure Key Vault |
| 대상 엔드포인트 | Storage Blob 데이터 기여자 | 사용자의 Azure Blob 컨테이너 |
자동 할당이 실패하는 경우(예: 권한 부족으로 인해) 이러한 역할을 수동으로 할당하거나 Azure 관리자에게 문의해야 합니다.
마이그레이션 프로젝트 및 작업 정의 만들기
마이그레이션에 대한 원본 및 대상 엔드포인트를 정의한 후 다음 단계는 Storage Mover 마이그레이션 프로젝트 및 작업 정의를 만드는 것입니다.
마이그레이션 프로젝트를 사용하면 대규모 마이그레이션을 더 작고 관리하기 쉬운 단위로 구성할 수 있습니다. 작업 정의는 특정 복사 작업 집합에 대한 리소스 및 마이그레이션 옵션을 설명합니다. 이러한 리소스에는 예를 들어 원본 및 대상 엔드포인트와 적용하려는 마이그레이션 설정이 포함됩니다.
이 섹션의 단계에 따라 마이그레이션 프로젝트를 만들고 마이그레이션 작업을 실행합니다.
프로젝트 만들기
작업 정의 만들기
프로젝트가 나타나면 선택한 다음 , 작업 만들기를 선택합니다. 작업 만들기 마법사에는 기본,일정, 설정 및 검토의 네 가지 탭이 있습니다.
기본 사항 탭
다음 필드에 대한 값을 제공합니다.
Field Value 마이그레이션 유형 다중 클라우드 마이그레이션 선택 원본 유형 GCS 개체 스토리지 선택 - S3(미리 보기) S3 버킷 유형 공개 또는 비공개 선택(미리 보기) Name 작업에 대한 의미 있는 이름 설명 (선택 사항) 작업에 대한 설명(최대 1,024자) 소스 섹션에서 다음을 수행합니다.
- 원본 엔드포인트: 원본 엔드포인트 추가 를 선택하여 새 엔드포인트를 만들거나 기존 GCS S3 호환 원본 엔드포인트를 선택합니다.
- 원본 하위 경로: (선택 사항) 버킷의 일부만 마이그레이션할 하위 폴더 경로를 지정합니다. 비워 두면 작업이 버킷의 루트에서 시작됩니다.
- 표시된 전체 경로 가 올바른지 확인합니다.
대상 섹션에서 다음을 수행합니다 .
- 대상 엔드포인트: 대상 엔드포인트 추가를 선택하여 새 엔드포인트를 만들거나 기존 Azure Blob Storage 대상 엔드포인트를 선택합니다.
- 대상 하위 경로: (선택 사항) 대상 하위 폴더를 지정합니다. 비워 두면 모든 콘텐츠가 컨테이너 루트로 마이그레이션됩니다. 고유한 하위 경로는 새 하위 폴더를 만듭니다.
S3 버킷 유형에 대해 Private 을 선택한 경우 프라이빗 연결 섹션이 나타납니다.
- 추가를 선택하여 승인된 프라이빗 연결을 이 작업에 연결합니다.
- 승인된 상태의 연결만 추가할 수 있습니다.
- 부하 분산을 위해 여러 개인 연결을 연결할 수 있습니다.
비고
프라이빗 버킷에는 프라이빗 연결이 필요합니다. 프라이빗 버킷 유형으로 작업을 시작하려면 먼저 하나 이상의 승인된 프라이빗 연결이 있어야 합니다. 설치 단계는 GCS에 대한 프라이빗 네트워크 연결을 참조하세요.
다음을 선택하여 작업을 계속할 수 있습니다.
일정 탭
마이그레이션을 실행할 시기를 선택합니다.
| Option | 설명 |
|---|---|
| 일정 없음 | 수동으로 마이그레이션 시작 |
| 일회성 일정 | 특정 시간에 한 번 마이그레이션 실행 |
| 되풀이 일정 | 매일, 매주 또는 매월 일정에 따라 마이그레이션 실행 |
Important
현재 GCS Object Storage - S3 소스 유형에서는 예약 기능을 사용할 수 없습니다. 작업은 수동으로만 실행할 수 있습니다. 일정 없음을 선택하고 다음을 선택하여 계속합니다.
설정 탭
드롭다운 목록에서 원하는 복사 모드 를 선택합니다.
복사 모드 작동 방식 대상에 콘텐츠 병합 파일이 원본에 없더라도 대상에 유지됩니다. 이름과 경로가 일치하는 파일은 원본과 일치하도록 업데이트됩니다. 복사본 간에 폴더 이름을 바꾸면 대상에서 중복 콘텐츠가 발생할 수 있습니다. 소스를 대상으로 미러링 대상을 원본의 정확한 복제본으로 만듭니다. 원본에서 삭제된 개체도 대상에서 삭제됩니다. 마이그레이션 결과 섹션을 검토하여 데이터가 매핑되는 방식을 이해합니다.
결과 설명 디렉터리 구조 대상은 "가상" 폴더를 지원합니다. 파일은 해당 이름 앞에 원본 경로를 가져와서 플랫 목록에 배치합니다. 빈 폴더는 사용자 지정 메타데이터에서 폴더 메타데이터가 유지되는 빈 Blob으로 표시됩니다. 타임스탬프 만들기 사용자 지정 Blob 메타데이터로 유지됩니다. Blob 네이티브 타임스탬프는 파일이 마이그레이션된 시간을 반영합니다. 타임스탬프 변경 사용자 지정 Blob 메타데이터로 유지됩니다. 이 형식의 Blob 네이티브 타임스탬프가 없습니다. 수정된 타임스탬프 사용자 지정 Blob 메타데이터로 유지됩니다. Blob 네이티브 타임스탬프는 파일이 마이그레이션된 시간을 반영합니다. 마지막으로 액세스한 타임스탬프 원본에 있는 경우 사용자 지정 Blob 메타데이터로 유지됩니다. 이 형식의 Blob 네이티브 타임스탬프가 없습니다. 기타 메타데이터 대상 Blob의 사용자 지정 메타데이터에 유지됩니다. 4KiB의 메타데이터만 저장할 수 있습니다. 4KiB보다 큰 메타데이터는 마이그레이션되지 않습니다. 클라우드 마이그레이션 프로토콜 Blob REST API 다음을 선택하여 작업을 계속할 수 있습니다.
검토 탭
구성 요약을 검토합니다.
- 기본 사항: 작업 이름, 마이그레이션 유형
- 원본: 원본 유형, 버킷 이름을 가진 원본 URL, 클라우드 이름(GCS), 원본 하위 경로
- 대상: 스토리지 계정, Azure Blob 컨테이너, 대상 하위 경로
- 일정: 마이그레이션 빈도
- 설정: 복사 모드
모든 설정이 올바른 경우 만들기 를 선택하여 작업을 배포합니다. 이전을 선택하여 변경합니다.
마이그레이션 작업 실행
작업 시작
- 프로젝트 탭으로 이동합니다. 새로 만든 작업이 프로젝트 아래 목록에 나타납니다.
- 속성 탭에서 해당 세부 정보를 보려면 작업 정의를 선택합니다.
- 작업 시작 단추를 선택합니다.
- 작업 시작 창에서 작업 세부 정보를 확인하고 시작을 선택하여 마이그레이션을 시작합니다.
작업은 백그라운드에서 실행됩니다. 마이그레이션 개요 탭에서 진행률을 모니터링할 수 있습니다.
마이그레이션 진행률 모니터
Storage Mover를 사용하여 데이터를 마이그레이션할 때 복사 작업에서 잠재적인 문제를 모니터링해야 합니다. 마이그레이션 중에 수행되는 작업과 관련된 데이터가 마이그레이션 개요 탭에 표시됩니다. 이 데이터를 사용하면 현재 상태 및 진행률, 속도 및 예상 완료 시간과 같은 주요 정보를 제공하여 마이그레이션 진행률을 추적할 수 있습니다.
구성되면 Azure Storage Mover는 로그 복사 및 작업 실행 로그도 제공합니다. 이러한 로그를 사용하면 작업 실행 및 개별 파일의 마이그레이션 결과를 추적할 수 있습니다.
- 마이그레이션 작업 탭으로 이동합니다.
- 진행률, 속도 및 예상 완료 시간을 보려면 작업을 선택합니다.
- 로그를 선택하여 오류 또는 경고를 확인합니다.
- 마이그레이션이 완료되면 Azure Blob Storage 데이터를 확인합니다.
Storage Mover 복사 및 작업 로그에 대한 자세한 내용은 Azure Storage Mover 복사 및 작업 로그를 사용하도록 설정하는 방법을 참조하세요 .
마이그레이션 후 유효성 검사
마이그레이션 후 데이터 유효성 검사를 통해 데이터가 정확하고 GCS에서 Azure Blob Storage 전송이 완료됩니다. 이 유효성 검사 프로세스는 마이그레이션된 데이터를 원본의 동일한 데이터와 비교하여 데이터 무결성을 확인합니다.
수동 유효성 검사를 완료하고 사용되지 않는 GCS 리소스를 정리하려면 다음 단계를 수행합니다.
- 원본 및 대상 비교: GCS 버킷과 Azure Blob 컨테이너 간의 개체 수와 총 데이터 크기를 비교하여 모든 예상 개체가 전송되는지 확인합니다.
- 스폿 검사 데이터 무결성: 원본 및 대상 모두에서 개체의 대표적인 샘플을 다운로드하고 체크섬을 비교합니다.
- 증분 동기화 사용(필요한 경우): 시간이 지남에 따라 GCS 버킷 및 Azure Blob 컨테이너를 동기화 상태로 유지해야 하는 경우 되풀이 작업 실행을 예약합니다.
- 서비스 해제 원본: 마이그레이션이 완전히 완료되고 확인된 후 GCS 버킷 및 HMAC 키를 삭제합니다. 더 이상 필요하지 않은 경우 Azure Key Vault 해당 비밀을 제거합니다.
문제 해결 및 지원
마이그레이션 중에 문제가 발생하는 경우 다음 단계를 수행하여 문제 해결을 시작합니다.
| Issue | 해결 방법 |
|---|---|
| 마이그레이션 작업이 실패했습니다. | 자세한 오류 메시지는 복사 및 작업 로그를 확인합니다. 일반적인 원인으로는 잘못된 자격 증명 또는 네트워크 연결 문제가 있습니다. |
| 인증 오류 | Azure Key Vault 저장된 HMAC 액세스 키 및 비밀 키가 올바르고 만료되지 않았는지 확인합니다. 원본 엔드포인트의 관리 ID에 사용자의 Key Vault에 대한 Key Vault Secrets User 액세스 권한이 부여되어 있는지 확인합니다. |
| 대상에 대한 사용 권한 오류 | 대상 엔드포인트의 관리 ID에 대상 Blob 컨테이너에 대한 Storage Blob 데이터 기여자 역할이 있는지 확인합니다. |
| 데이터 전송 속도가 느림 | 네트워크 대역폭이 충분한지 확인합니다. GCS는 S3 호환 API 요청에 대한 속도 제한을 구현할 수 있습니다. 스로틀링이 발생하는 경우 동시 작업 수를 줄이는 것을 고려하세요. |
| 동기화 후 누락된 개체 | GCS 타임스탬프 두 번째 수준 세분성으로 인해 마지막 동기화와 동일한 초 내에 수정된 개체는 다음 작업이 실행될 때까지 검색되지 않을 수 있습니다. 보조 동기화를 기다렸다가 실행합니다. |
| 대상의 예기치 않은 개체 | GCS 디렉터리 자리 표시자 객체(/로 끝나는 0바이트 객체)는 자동으로 건너뛰어지며 대상에 표시되지 않아야 합니다. 예상치 못한 개체가 있는 경우 자세한 내용은 복사 로그를 검토하세요. |
| 원본 URL이 거부됨 | 원본 URL이 HTTPS를 사용하고, 쿼리 매개 변수, 조각 또는 IP 주소를 포함하지 않으며, 유효한 정규화된 도메인 이름을 가리키는지 확인합니다. |
문제를 해결할 수 없는 경우 Azure 지원 요청을 만듭니다.
관련 콘텐츠
다음 문서는 Storage Mover 서비스에 익숙해지는 데 도움이 될 수 있습니다.
- Storage Mover 리소스 계층 구조 이해
- Storage Mover 리소스 배포
- Azure Storage Mover 복사 및 작업 로그를 사용하도록 설정하는 방법입니다.
- Azure Storage Mover 엔드포인트를 관리합니다.