기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Rclone를 사용하여 Microsoft Azure Blob에서 Amazon S3로 데이터 마이그레이션하기
수하스 바사바라즈 (AWS), 에이단 킨 (), 코리 레인 (AWS) 이 제작했습니다. AWS
환경: PoC 또는 파일럿 | 소스: Microsoft Azure 스토리지 컨테이너 | 대상: Amazon S3 버킷 |
R 유형: 리플랫포밍 | 워크로드: Microsoft | 기술: 마이그레이션, 스토리지 및 백업 |
AWS서비스: 아마존 S3 |
요약
이 패턴은 Microsoft Azure Blob 객체 스토리지에서 Amazon Simple Storage Service(Amazon S3) 버킷으로 데이터를 마이그레이션하기 위해 Rclone
사전 조건 및 제한 사항
사전 조건
활성 AWS 계정
Azure Blob 컨테이너 서비스에 저장된 데이터
아키텍처
소스 기술 스택
Azure Blob 스토리지 컨테이너너
대상 기술 스택
Amazon S3 버킷
아마존 엘라스틱 컴퓨트 클라우드 (아마존EC2) 리눅스 인스턴스
아키텍처
![Microsoft Azure에서 Amazon S3로 데이터 마이그레이션하기](images/pattern-img/6ead815d-7768-4726-b27d-97a70cd21081/images/abe69eee-632f-4ca2-abf6-3223f3f3ec94.png)
도구
Amazon Simple Storage Service(S3)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다.
Rclone
은 rsync에서 영감을 받은 오픈 소스 명령줄 프로그램입니다. 여러 클라우드 스토리지 플랫폼에서 파일을 관리하는 데 사용됩니다.
모범 사례
Azure에서 Amazon S3로 데이터를 마이그레이션할 때는 불필요한 비용이나 느린 전송 속도를 방지하기 위해 다음 고려 사항을 염두에 두십시오.
Azure 스토리지 계정 및 Blob 컨테이너와 동일한 지리적 지역 (예: 지역
us-east-1
(버지니아 북부) 및 Azure AWS 지역에 AWS 인프라를 생성합니다.East US
NAT게이트웨이를 사용하면 수신 대역폭과 송신 대역폭 모두에 대해 데이터 전송 요금이 발생하므로 가능하면 Gateway를 사용하지 마십시오.
Amazon S3용 VPC 게이트웨이 엔드포인트를 사용하여 성능을 향상시키십시오.
Intel x86 인스턴스보다 비용을 낮추고 성능을 높이려면 AWS Graviton2 (ARM) 프로세서 기반 EC2 인스턴스를 사용해 보십시오. Rclone은 주로 크로스 컴파일되며 사전 컴파일된 바이너리를 제공합니다. ARM
에픽
작업 | 설명 | 필요한 기술 |
---|---|---|
대상 S3 버킷을 준비합니다. | 적절한 AWS 지역에 새 S3 버킷을 만들거나 마이그레이션할 데이터의 대상으로 기존 버킷을 선택합니다. | AWS관리자 |
Amazon의 IAM 인스턴스 역할을 생성합니다EC2. | Amazon의 새 AWS Identity 및 Access Management (IAM) 역할을 생성합니다 EC2. 이 역할은 EC2 인스턴스에 대상 S3 버킷에 대한 쓰기 액세스 권한을 부여합니다. | AWS관리자 |
정책을 IAM 인스턴스 역할에 연결합니다. | IAM콘솔 또는 AWS 명령줄 인터페이스 (AWSCLI) 를 사용하여 대상 S3 버킷에 대한 쓰기 액세스 권한을 허용하는 EC2 인스턴스 역할에 대한 인라인 정책을 생성합니다. 예제 정책은 추가 정보 섹션을 참조하세요. | AWS관리자 |
EC2 인스턴스를 시작합니다. | 새로 생성한 IAM 서비스 역할을 사용하도록 구성된 Amazon Linux EC2 인스턴스를 시작합니다. 또한 이 인스턴스는 인터넷을 통해 Azure 퍼블릭 API 엔드포인트에 액세스해야 합니다. 참고: 비용을 낮추려면 AWS Graviton 기반 인스턴스를 EC2 사용해 보세요. Rclone은 컴파일된 바이너리를 제공합니다. ARM | AWS관리자 |
Azure AD 서비스 보안 주체를 생성합니다. | CLIAzure를 사용하여 소스 Azure Blob 스토리지 컨테이너에 대한 읽기 전용 액세스 권한이 있는 Azure Active Directory (Azure AD) 서비스 주체를 만들 수 있습니다. 지침은 추가 정보 섹션을 참조하세요. 이러한 자격 증명을 인스턴스의 해당 위치에 저장합니다. EC2 | 클라우드 관리자, Azure |
작업 | 설명 | 필요한 기술 |
---|---|---|
Rclone을 다운로드하고 설치합니다. | Rclone 명령줄 프로그램을 다운로드하고 설치합니다. 설치 지침은 Rclone 설치 설명서 | 일반AWS, 클라우드 관리자 |
Rclone을 구성합니다. | 다음
| 일반AWS, 클라우드 관리자 |
Rclone 구성을 확인하십시오. | Rclone이 구성되어 있고 권한이 제대로 작동하는지 확인하려면, Rclone이 구성 파일을 파싱할 수 있고 Azure Blob 컨테이너 및 S3 버킷 내의 객체에 액세스할 수 있는지 확인하십시오. 검증 명령 예는 다음을 참조하십시오.
| 일반AWS, 클라우드 관리자 |
작업 | 설명 | 필요한 기술 |
---|---|---|
컨테이너에서 데이터를 마이그레이션합니다. | 예: 복사 이 명령은 소스 Azure Blob 컨테이너의 데이터를 대상 S3 버킷으로 복사합니다.
예: 동기화 이 명령은 소스 Azure Blob 컨테이너와 대상 S3 버킷 간에 데이터를 동기화합니다.
중요: 동기화 명령을 사용하면 소스 컨테이너에 없는 데이터가 대상 S3 버킷에서 삭제됩니다. | 일반AWS, 클라우드 관리자 |
컨테이너를 동기화합니다. | 초기 복사가 완료된 후, Rclone 동기화 명령을 실행하여 대상 S3 버킷에서 누락된 새 파일만 복사되도록 지속적인 마이그레이션을 수행합니다. | 일반AWS, 클라우드 관리자 |
데이터가 성공적으로 마이그레이션되었는지 확인하십시오. | 데이터가 대상 S3 버킷에 성공적으로 복사되었는지 확인하려면 Rclone lsd | 일반AWS, 클라우드 관리자 |
관련 리소스
Amazon S3 사용 설명서 (AWS설명서)
IAM아마존의 역할 EC2 (AWS설명서)
Microsoft Azure Blob 컨테이너 만들기
(Microsoft Azure 설명서) Rclone 명령
(Rclone 설명서)
추가 정보
EC2인스턴스의 역할 정책 예시
이 정책은 EC2 인스턴스에 계정의 특정 버킷에 대한 읽기 및 쓰기 권한을 부여합니다. 버킷이 서버 측 암호화에 고객 관리 키를 사용하는 경우 정책에 따라 키 관리 서비스 () AWS KMS 에 AWS 대한 추가 액세스 권한이 필요할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:DeleteObject", "s3:GetObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::BUCKET_NAME/*", "arn:aws:s3:::BUCKET_NAME" ] }, { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "arn:aws:s3:::*" } ] }
읽기 전용 Azure AD 서비스 보안 주체 생성
Azure 서비스 보안 주체는 고객 애플리케이션, 서비스 및 자동화 도구가 특정 Azure 리소스에 액세스하는 데 사용하는 보안 ID입니다. 특정 역할이 있고 리소스에 액세스할 수 있도록 엄격하게 제어되는 권한을 가진 사용자 ID(로그인 및 암호 또는 인증서)라고 생각하면 됩니다. 최소 권한을 따르고 Azure의 데이터가 실수로 삭제되지 않도록 보호하는 읽기 전용 서비스 보안 주체를 만들려면 다음 단계를 따릅니다.
Microsoft Azure 클라우드 계정 포털에 로그인하고 워크스테이션에서 클라우드 셸을 PowerShell 실행하거나 Azure 명령줄 인터페이스 (CLI) 를 사용하십시오.
서비스 보안 주체를 만들고 Azure Blob 저장소 계정에 대한 읽기 전용
액세스 권한으로 구성하세요. 이 명령의 JSON 출력을 라는 로컬 파일에 저장합니다. azure-principal.json
파일이 EC2 인스턴스에 업로드됩니다. 중괄호({
및}
)로 표시된 자리 표시자 변수를 Azure 구독 ID, 리소스 그룹 이름 및 스토리지 계정 이름으로 바꿉니다.az ad sp create-for-rbac ` --name AWS-Rclone-Reader ` --role "Storage Blob Data Reader" ` --scopes /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Storage/storageAccounts/{Storage Account Name}