

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS DataSync를 사용하여 서로 다른 AWS 리전의 Amazon EFS 파일 시스템 간에 데이터 동기화
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync"></a>

*Sarat Chandra Pothula 및 Aditya Ambati, Amazon Web Services*

## 요약
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-summary"></a>

이 솔루션은 다양한 AWS 리전의 Amazon Elastic File System(Amazon EFS) 인스턴스 간에 효율적이고 안전한 데이터 동기화를 위한 강력한 프레임워크를 제공합니다. 이 접근 방식은 확장 가능하며 제어되는 리전 간 데이터 복제를 제공합니다. 이 솔루션은 재해 복구 및 데이터 중복 전략을 개선할 수 있습니다.

AWS Cloud Development Kit(AWS CDK)를 사용하여이 패턴은를 코드형 인프라(IaC) 접근 방식으로 사용하여 솔루션 리소스를 배포합니다. AWS CDK 애플리케이션은 필수 AWS DataSync, Amazon EFS, Amazon Virtual Private Cloud(VPC) 및 Amazon Elastic Compute Cloud(Amazon EC2) 리소스를 배포합니다. 이 IaC는 AWS 모범 사례에 완전히 부합하는 반복 가능하고 버전 관리된 배포 프로세스를 제공합니다.

## 사전 조건 및 제한 사항
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-prereqs"></a>

**사전 조건 **
+ 활성 상태의 계정.
+ AWS Command Line Interface(AWS CLI) 버전 2, [설치](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) 및 [구성됨](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ AWS CDK 버전 2.114.1 이상 [설치](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install) 및 [부트스트래핑](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_bootstrap)
+ NodeJS 버전 20.8.0 이상 [설치](https://nodejs.org/en/download)

**제한 사항 **
+ 이 솔루션은 데이터 전송 속도, 크기 제한 및 리전 가용성과 같은 DataSync 및 Amazon EFS의 제한을 상속합니다. 자세한 내용은 [AWS DataSync 할당량](https://docs.aws.amazon.com/datasync/latest/userguide/datasync-limits.html) 및 [Amazon EFS 할당량을 참조하세요](https://docs.aws.amazon.com/efs/latest/ug/limits.html).
+ 이 솔루션은 Amazon EFS만 지원합니다. DataSync는 Amazon Simple Storage Service(Amazon S3) 및 Amazon FSx for Lustre와 같은 [다른 AWS 서비스를](https://docs.aws.amazon.com/datasync/latest/userguide/working-with-locations.html) 지원합니다. 그러나이 솔루션을 사용하려면 데이터를 이러한 다른 서비스와 동기화하도록 수정해야 합니다.

## 아키텍처
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-architecture"></a>

![\[다른 리전의 EFS 파일 시스템에 데이터를 복제하기 위한 아키텍처 다이어그램\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/e28ba6c2-ab8b-4812-932e-f038106d5496/images/18b35ae9-a22e-43e7-b7a3-30e40321c44e.png)


이 솔루션은 다음 AWS CDK 스택을 배포합니다.
+ **Amazon VPC 스택** -""이 스택은 기본 및 보조 AWS 리전 모두에서 서브넷, 인터넷 게이트웨이 및 NAT 게이트웨이를 포함한 Virtual Private Cloud(VPC) 리소스를 설정합니다.
+ **Amazon EFS 스택** -이 스택은 Amazon EFS 파일 시스템을 기본 및 보조 리전에 배포하고 해당 VPCs에 연결합니다.
+ **Amazon EC2 스택** -이 스택은 기본 및 보조 리전에서 EC2 인스턴스를 시작합니다. 이러한 인스턴스는 Amazon EFS 파일 시스템을 탑재하도록 구성되어 공유 스토리지에 액세스할 수 있습니다.
+ **DataSync 위치 스택** -이 스택은 라는 사용자 지정 구문`DataSyncLocationConstruct`을 사용하여 기본 및 보조 리전에서 DataSync 위치 리소스를 생성합니다. 이러한 리소스는 데이터 동기화를 위한 엔드포인트를 정의합니다.
+ **DataSync 작업 스택** -이 스택은 라는 사용자 지정 구문을 사용하여 기본 리전에서 DataSync 작업을 `DataSyncTaskConstruct` 생성합니다. 이 작업은 DataSync 소스 및 대상 위치를 사용하여 기본 리전과 보조 리전 간에 데이터를 동기화하도록 구성됩니다.

## 도구
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-tools"></a>

**서비스**
+ [AWS Cloud Development Kit(AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html)는 AWS 클라우드 인프라를 코드로 정의하고 프로비저닝하는 데 도움이 되는 소프트웨어 개발 프레임워크입니다.
+ [AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html)는 파일 또는 객체 데이터를 AWS 스토리지 서비스 간에, AWS 스토리지 서비스 간에 이동하는 데 도움이 되는 온라인 데이터 전송 및 검색 서비스입니다.
+ [Amazon Elastic Compute Cloud(Amazon EC2)](https://docs.aws.amazon.com/ec2/)는 AWS 클라우드에서 확장 가능한 컴퓨팅 용량을 제공합니다. 필요한 만큼 가상 서버를 시작하고 빠르게 스케일 업하거나 스케일 다운할 수 있습니다.
+ [Amazon Elastic File System(Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html)은 클라우드에서 공유 파일 시스템을 생성하고 구성하는 데 도움이 됩니다.
+ [Amazon Virtual Private Cloud(VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)를 사용하면 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 사용자의 자체 데이터 센터에서 운영하는 기존 네트워크와 유사하며 AWS의 확장 가능한 인프라를 사용한다는 이점이 있습니다.

**코드 리포지토리**

이 패턴의 코드는 GitHub [Amazon EFS 교차 리전 DataSync 프로젝트](https://github.com/aws-samples/aws-efs-crossregion-datasync/tree/main) 리포지토리에서 사용할 수 있습니다.

## 모범 사례
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-best-practices"></a>

IaC 프로젝트를 생성하기 위해 TypeScript에서 AWS CDK 사용 모범 사례

## 에픽
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-epics"></a>

### AWS CDK 애플리케이션을 배포합니다.
<a name="deploy-the-aws-cdk-app"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 프로젝트 리포지토리를 복제합니다. | 다음 명령을 입력하여 [Amazon EFS 교차 리전 DataSync 프로젝트](https://github.com/aws-samples/aws-efs-crossregion-datasync/tree/main) 리포지토리를 복제합니다.<pre>git clone https://github.com/aws-samples/aws-efs-crossregion-datasync.git</pre> | DevOps | 
| 종속성을 설치합니다. | 다음 명령을 입력합니다.<pre>npm ci</pre> | DevOps | 
| 기본 및 보조 리전을 선택합니다. | 복제된 리포지토리가 들어 있는 디렉터리로 이동합니다. `SECONDARY_AWS_REGION` 파일의 `Launcher.ts` 및 `PRIMARY_AWS_REGION` 목록을 업데이트하십시오. 해당 [리전 코드를](https://docs.aws.amazon.com/general/latest/gr/datasync.html#datasync-region) 사용합니다.<pre>const primaryRegion = { account: account, region: '<PRIMARY_AWS_REGION>' };<br />const secondaryRegion = { account: account, region: '<SECONDARY_AWS_REGION>' };</pre> | DevOps | 
| 환경을 부트스트랩합니다. | 다음 명령을 입력하여 사용하려는 AWS 계정 및 AWS 리전을 부트스트랩합니다.<pre>cdk bootstrap <aws_account>/<aws_region></pre>자세한 내용은 AWS CDK 설명서의 [부트스트래핑](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html)을 참조하세요. | DevOps | 
| AWS CDK 스택을 나열합니다. | 다음 명령을 입력하여 앱에서 AWS CDK 스택 목록을 봅니다.<pre>cdk ls</pre> | DevOps | 
| AWS CDK 스택 작성(합성) | 다음 명령을 입력하여 AWS CDK 앱에 정의된 각 스택에 대한 AWS CloudFormation 템플릿을 생성합니다.<pre>cdk synth</pre> | DevOps | 
| AWS CDK 애플리케이션을 배포합니다. | 다음 명령을 입력하여 변경 사항에 대한 수동 승인 없이 모든 스택을 AWS 계정에 배포합니다.<pre>cdk deploy --all --require-approval never</pre> | DevOps | 

### 배포 검증
<a name="validate-the-deployment"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 기본 리전의 EC2 인스턴스에 로그인합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync.html) | DevOps | 
| 임시 파일을 생성합니다. | 다음 명령을 입력하여 Amazon EFS 탑재 경로에 임시 파일을 생성합니다.<pre>sudo dd if=/dev/zero \<br />of=tmptst.dat \<br />bs=1G \<br />seek=5 \<br />count=0<br /><br />ls -lrt tmptst.dat</pre> | DevOps | 
| DataSync 작업을 시작합니다. | 다음 명령을 입력하여 기본 리전에서 보조 리전으로 임시 파일을 복제합니다. 여기서 `<ARN-task>`는 DataSync 작업의 Amazon 리소스 이름(ARN)입니다.<pre>aws datasync start-task-execution \<br />    --task-arn <ARN-task></pre>명령은 작업 실행의 ARN을 다음 형식으로 반환합니다.`arn:aws:datasync:<region>:<account-ID>:task/task-execution/<exec-ID>` | DevOps | 
| 데이터 전송 상태를 확인합니다. | 다음 명령을 입력하여 DataSync 실행 작업을 설명합니다. 여기서 `<ARN-task-execution>`는 작업 실행의 ARN입니다.<pre>aws datasync describe-task-execution \<br />    --task-execution-arn <ARN-task-execution></pre>DataSync 작업은 `PrepareStatus`, `TransferStatus`및 `VerifyStatus` 모두 값이 인 경우 완료됩니다`SUCCESS`. | DevOps | 
| 보조 리전의 EC2 인스턴스에 로그인합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync.html) | DevOps | 
| 애플리케이션을 검증합니다. | 다음 명령을 입력하여 임시 파일이 Amazon EFS 파일 시스템에 존재하는지 확인합니다.<pre>ls -lrt<br />tmptst.dat</pre> | DevOps | 

## 관련 리소스
<a name="synchronize-data-between-amazon-efs-file-systems-in-different-aws-regions-by-using-aws-datasync-resources"></a>

**AWS 설명서**
+ [CDK API 레퍼런스](https://docs.aws.amazon.com/cdk/api/v2/python/modules.html)
+ [Amazon EFS를 사용하여 AWS DataSync 전송 구성](https://docs.aws.amazon.com/datasync/latest/userguide/create-efs-location.html)
+ [AWS DataSync 전송 관련 문제 해결](https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync-locations-tasks.html)

**기타 AWS 리소스**
+ [AWS DataSync FAQs](https://aws.amazon.com/datasync/faqs/)