본문 바로가기
AI 빅데이터/Amazon Web Services

[AWS] DataSync로 데이터 이전하기

by 마고커 2020. 3. 4.


흔하지는 않지만 프로젝트가 통합되거나 다른 Region으로 옮긴다고 했을 때, 데이터를 같이 이동하지 않으면 Outbound로 인해 네트워크 요금이 지속 발생할 수 있다. AWS에서는 이런 경우를 위해 DataSync라는 안정성 있는 이전 서비스를 제공하고 있다.

 

위의 그림은 EFS to EFS의 예시를 보여주고 있는데, S3 to EFS나 S3 to S3도 가능하다. 기본적인 원리는 데이터를 보내고자 하는 Source 쪽에 Data 이전을 담당할 Agent를 EC2로 구성하고, Destination의 DataSync 서비스로 해당 Agent와 연결하여, Source의 데이터에 직접 접근하지 않으면서 Data Transfer를 수행하는 구조다.

 

 

첫번째 단계로 소스쪽의 Agent를 구성해야 하는데, EC2 Instance 하나 구성하는 과정과 동일하다. 차이점이 있다면, DataSync Agent 모듈이 포함된 AMI(Amazon Machine Image)를 활용해야 한다는 것인데, 서울 리젼의 경우 아래의 링크를 통해 구성하면 된다.

https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2#LaunchInstanceWizard:ami=ami-03d858a112a65b4b0

DataSync를 사용한다는 자체가 대량 데이터 이전을 의미하는데, 2천만개 파일까지는 m5.2xlarge, 그 이상은 m5.4xlarge를 권고하고 있다. 테스트를 위해서는 Free Tier를 사용해도 무방하다.

Instance 생성 시, 다른 항목들은 모두 Default로 두고 보안 그룹 적용할 때 NFS(2049)와 HTTP(80) 포트를 Inbound에서 열어줘야 한다. (Outbound는 기본적으로 모두 열려 있으므로, 소스 데이터 파일이 수집되는 포트인 NFS와 Agent Activation에 필요한 80번만 열려 있으면 된다.)

 

Agent의 EC2 생성을 완료한 후에, 해당 Agent는 아래 URL에서 Activation이 가능하다.

https://ap-northeast-2.console.aws.amazon.com/datasync/home?region=ap-northeast-2#/agents

‘Activation Key’ 부분에 Agent의 Public IP를 적어주고 ‘Get Key’를 누르면 끝이다.

Agent가 만들어졌으니, Source Data와 데이터가 저장될 Destination의 위치를 설정해 주어야 한다. 주의할 점은 Source와 Destination을 (이유는 모르겠지만) 모두 EFS로 설정하면 안된다. Source쪽은 NFS로 설정하면 된다.

NFS의 IP와 Mount할 디렉토리를 적어주는 것으로 완료된다.

Destination은 EFS로 설정하는데 EFS File System의 ID와 Mount 경로를 설정해 주면 된다.


위치 설정에서 ‘choose existing location’으로 설정된 위치를 정해주면, Task의 Status가 곧 ‘Available’로 전환된다. 이제 ‘Start’를 선택하는 것만으로 데이터 이전은 시작된다.

Execution Status가 Launching → Preparing → Transferring → Verifying → Success로 변하는데 Launching 단계에서 꽤 오래 머물고 있으므로 당황하지 말고 기다리면 Transfer가 시작된다.



댓글