AWS DataSync 이용하여 S3 버킷에서 EFS 파일 시스템으로 데이터 전송

2020. 4. 9. 11:12IT/AWS

728x90

1. 서비스 설명

DataSync는 온라인 데이터 전송 서비스로, AWS 스토리지에서 송수신되는 대량의 데이터 복사를 간소화, 자동화할 수 있게 한다.

NFS, SMB 파일 서버, Amazon S3, Amazon EFS 또는 Amazon FSx for Windows File Server 간에 데이터를 복사할 수 있다.

 

2. 구성 방법 

2.1 EC2 Agent 구성

EC2에 Agent를 설치한다. AMI를 이용하여 Agent를 설치할 수 있다. (AMI명은 ami-035a164051e598dd5이다.)

리소스가 존재하는 리전에서 AMI를 이용하여 EC2를 생성한다. 

AWS에서는 Agent 설치 권장사항이 존재한다. (볼륨 80GB, m5.2xlarge or m5.4xlarge)

 

2.2 Endpoint 생성

DataSync용 VPC Endpoint를 사용함으로써 Private 망으로 데이터 복사가 가능하다.

다음과 같이 Endpoint를 생성한다.

 

2.3 DataSync Agent 설정

DataSync에서 Agent를 생성한다. 앞서 생성한 Endpoint 정보를 선택하고, AMI를 통해 생성한 EC2의 Public IP를 넣어준다.

 

생성 후, 다음과 같이 Agent가 Online으로 활성화된다. Agent 안에 Task를 생성하여 작업을 수행할 수 있도록 준비한다.


생성 후, 다음과 같이 Agent가 Online으로 활성화된다. Agent 안에 Task를 생성하여 작업을 수행할 수 있도록 준비한다.

 

2.4 DataSync Task 설정

DataSync Task는 2개의 Location를 설정한다.  S3에 있는 파일을 EFS로 복사하기 위해 Source는 S3 bucket, Destination은 EFS로 설정한다.

다음과 같이 해당 IP, 경로 정보를 입력하고 Task를 생성한다.

 

생성한 Task의 내용은 다음과 같다.

 

2.5 EC2에서 EFS 마운트

EC2에서 EFS 마운트하는 명령은 다음과 같다. s3-data-sync 폴더와 50.0.2.123 주소를 가지는 EFS를 마운트한다.

# mkdir s3-data-sync
# sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport EFS_IP:/ /home/ec2-user/s3-data-sync

 

마운트 한 EC2를 AMI로 생성하여 새롭게 시작할때, 마운트가 풀려버린다. 인스턴스 시작시 마운트 될 수 있도록 rc.local 파일에 명령어를 넣어준다.

#vi /etc/rc.local 
sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport EFS_IP:/ /home/ec2-user/s3-data-sync
300x250