

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

# Amazon S3용 AWS PrivateLink와 함께 DistCP를 사용하여 온프레미스 Hadoop 환경에서 Amazon S3로 데이터 마이그레이션하기
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3"></a>

*Jason Owens, Andres Cantor, Jeff Klopfenstein, Bruno Rocha Oliveira, Samuel Schmidt, Amazon Web Services*

## 요약
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3-summary"></a>

이 패턴은 Amazon Simple Storage Service(Amazon S3)용 AWS PrivateLink와 함께 Apache 오픈 소스 도구인 [DistCp](https://hadoop.apache.org/docs/r1.2.1/distcp.html)를 사용하여 온프레미스 Apache Hadoop 환경에서 Amazon Web Services(AWS) Cloud로 거의 모든 양의 데이터를 마이그레이션하는 방법을 보여줍니다. 공개 인터넷 또는 프록시 솔루션을 사용하여 데이터를 마이그레이션하는 대신, [Amazon S3용 AWS PrivateLink](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html)를 사용하여 온프레미스 데이터 센터와 Amazon VPC(Virtual Private Cloud) 간의 개인 네트워크 연결을 통해 Amazon S3로 데이터를 마이그레이션할 수 있습니다. Amazon Route 53에서 DNS 항목을 사용하거나 온프레미스 Hadoop 클러스터의 모든 노드에 있는 **/etc/hosts** 파일에 항목을 추가하면 자동으로 올바른 인터페이스 엔드포인트로 이동합니다.

이 설명서는 DistCP를 사용하여 데이터를 AWS Cloud로 마이그레이션하는 방법에 대한 지침을 제공합니다. DistCP는 가장 일반적으로 사용되는 도구이지만, 다른 마이그레이션 도구도 사용할 수 있습니다. 예를 들어 [AWS Snowball](https://docs.aws.amazon.com/whitepapers/latest/how-aws-pricing-works/aws-snow-family.html#aws-snowball) 또는 [AWS Snowmobile](https://docs.aws.amazon.com/whitepapers/latest/how-aws-pricing-works/aws-snow-family.html#aws-snowmobile)과 같은 오프라인 AWS 도구나 [AWS Storage Gateway](https://docs.aws.amazon.com/storagegateway/latest/userguide/migrate-data.html) 또는 [AWS DataSync](https://aws.amazon.com/about-aws/whats-new/2021/11/aws-datasync-hadoop-aws-storage-services/)와 같은 온라인 AWS 도구를 사용할 수 있습니다. 또한, [Apache NiFi](https://nifi.apache.org/)와 같은 다른 오픈 소스 도구도 사용할 수 있습니다.

## 사전 조건 및 제한 사항
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3-prereqs"></a>

**사전 조건 **
+ 온프레미스 데이터 센터와 AWS 클라우드 간에 개인 네트워크로 연결된 활성 AWS 계정
+ [Hadoop](https://hadoop.apache.org/releases.html), [DistCp](https://hadoop.apache.org/docs/r1.2.1/distcp.html)를 사용하여 온프레미스에 설치됨
+ Hadoop 분산형 파일 시스템(HDFS)에서 마이그레이션 데이터에 액세스할 수 있는 Hadoop 사용자
+ AWS Command Line Interface(AWS CLI), [설치](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 및 [구성됨](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ 객체를 S3 버킷에 넣을 수 있는 [권한](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_s3_rw-bucket-console.html)

**제한 사항 **

AWS PrivateLink for Amazon S3에는 Virtual Private Cloud(VPC) 제한이 적용됩니다. 자세한 내용은 [인터페이스 엔드포인트 속성 및 제한](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#vpce-interface-limitations)과 [AWS PrivateLink 할당량](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-limits-endpoints.html)(AWS PrivateLink 설명서)을 참조하세요.

AWS PrivateLink for Amazon S3는 다음을 지원하지 않습니다.
+ [Federal Information Processing Standard(FIPS) 엔드포인트](https://aws.amazon.com/compliance/fips/)
+ [웹 사이트 엔드포인트](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteEndpoints.html)
+ [레거시 글로벌 엔드포인트](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#deprecated-global-endpoint)

## 아키텍처
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3-architecture"></a>

**소스 기술 스택**
+ DistCp가 설치된 Hadoop 클러스터

**대상 기술 스택**
+ Amazon S3
+ Amazon VPC

**대상 아키텍처**

![\[DistCp를 사용하는 Hadoop 클러스터는 Direct Connect를 통해 온프레미스 환경에서 S3로 데이터를 복사합니다.\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/8d2b47ae-e854-4e5d-8f19-b9c2606f2c59/images/b8a249bd-307b-41ec-b939-5039d0ae7123.png)


다이어그램은 Hadoop 관리자가 DistCp를 사용하여 AWS Direct Connect와 같은 개인 네트워크 연결을 통해 온프레미스 환경에서 Amazon S3 인터페이스 엔드포인트를 통해 Amazon S3로 데이터를 복사하는 방법을 보여줍니다.

## 도구
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3-tools"></a>

**서비스**
+ [AWS Identity and Access Management(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)를 사용하여 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있습니다.
+ [Amazon Simple Storage Service(S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다.
+ [Amazon Virtual Private Cloud(VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)를 사용하면 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 사용자의 자체 데이터 센터에서 운영하는 기존 네트워크와 유사하며 AWS의 확장 가능한 인프라를 사용한다는 이점이 있습니다.

**기타 도구**
+ [Apache Hadoop DistCp](https://hadoop.apache.org/docs/current/hadoop-distcp/DistCp.html)(분산된 복사본)는 대규모 클러스터 간 및 클러스터 내 복사에 사용되는 도구입니다. DistCp는 배포, 오류 처리, 복구, 보고에 Apache MapReduce를 사용합니다.

## 에픽
<a name="migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3-epics"></a>

### 데이터를 AWS 클라우드로 마이그레이션
<a name="migrate-data-to-the-aws-cloud"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| AWS PrivateLink for Amazon S3에 대한 엔드포인트를 생성합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3.html) | AWS 관리자 | 
| 엔드포인트를 확인하고 DNS 항목을 찾습니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3.html) | AWS 관리자 | 
| 방화벽 규칙 및 라우팅 구성을 확인합니다. | 방화벽 규칙이 열려 있고 네트워킹 구성이 올바르게 설정되었는지 확인하려면 텔넷을 사용하여 포트 443에서 엔드포인트를 테스트하십시오. 예제:<pre>$ telnet vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com 443<br /><br />Trying 10.104.88.6...<br /><br />Connected to vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com.<br /><br />...<br /><br />$ telnet vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com 443<br /><br />Trying 10.104.71.141...<br /><br />Connected to vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com.</pre>리전 항목을 사용하는 경우 테스트에 성공하면 Amazon VPC 콘솔에서 선택한 엔드포인트의 **서브넷** 탭에서 볼 수 있는 두 개의 IP 주소 사이에서 DNS가 번갈아 나타나는 것을 볼 수 있습니다. | 네트워크 관리자, AWS 관리자 | 
| 이름 풀이를 구성합니다. | Hadoop이 Amazon S3 인터페이스 엔드포인트에 액세스할 수 있도록 이름 풀이를 구성해야 합니다. 엔드포인트 이름 자체는 사용할 수 없습니다. 대신, `<your-bucket-name>.s3.<your-aws-region>.amazonaws.com` 또는 `*.s3.<your-aws-region>.amazonaws.com`을 해결해야 합니다. 이 이름 지정 제한 사항에 대한 자세한 내용은 [Hadoop S3A 클라이언트 소개](https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html#Introducing_the_Hadoop_S3A_client.)(Hadoop 웹사이트)를 참고하십시오.다음 구성 옵션 중 하나를 선택합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/migrate-data-from-an-on-premises-hadoop-environment-to-amazon-s3-using-distcp-with-aws-privatelink-for-amazon-s3.html) | AWS 관리자 | 
| Amazon S3에 대한 인증을 구성합니다. | Hadoop을 통해 Amazon S3에 인증하려면 임시 역할 보안 인증 정보를 Hadoop 환경으로 내보내는 것을 권장합니다. 자세한 내용은 [S3를 사용한 인증](https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html#Authenticating_with_S3)(Hadoop 웹사이트)을 참고하십시오. 장기 실행 작업의 경우, 사용자를 생성하고 S3 버킷에만 데이터를 넣을 권한이 있는 정책을 할당할 수 있습니다. 액세스 키와 비밀 키는 Hadoop에 저장할 수 있으며, DistCp 작업 자체와 Hadoop 관리자만 액세스할 수 있습니다. 암호 저장에 대한 자세한 내용은 [Hadoop 보안 인증 정보 공급자를 통한 암호 저장](https://hadoop.apache.org/docs/r3.1.1/hadoop-aws/tools/hadoop-aws/index.html#hadoop_credential_providers)(Hadoop 웹사이트)을 참고하십시오. 다른 인증 방법에 대한 자세한 내용은 AWS IAM Identity Center(AWS Single Sign-On 후속)용 설명서에서 [AWS 계정에 대한 CLI 액세스와 함께 사용할 IAM 역할의 자격 증명을 얻는 방법](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html)을 참고하십시오.임시 보안 인증 정보를 사용하려면 보안 인증 정보 파일에 임시 보안 인증 정보를 추가하거나 다음 명령을 실행하여 보안 인증 정보를 사용자 환경으로 내보내십시오.<pre>export AWS_SESSION_TOKEN=SECRET-SESSION-TOKEN<br />export AWS_ACCESS_KEY_ID=SESSION-ACCESS-KEY<br />export AWS_SECRET_ACCESS_KEY=SESSION-SECRET-KEY</pre>기존 액세스 키와 비밀 키 조합을 사용하는 경우 다음 명령을 실행하십시오.<pre>export AWS_ACCESS_KEY_ID=my.aws.key<br />export AWS_SECRET_ACCESS_KEY=my.secret.key</pre>액세스 키와 비밀 키 조합을 사용하는 경우, DistCp 명령의 보안 인증 정보 공급자를 `"org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider"`에서 `"org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider"`로 변경하십시오. | 관리자 | 
| DistCp를 사용하여 데이터를 전송합니다. | DistCp를 사용하여 데이터를 전송하려면 다음의 명령을 실행합니다.<pre>hadoop distcp -Dfs.s3a.aws.credentials.provider=\<br />"org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider" \<br />-Dfs.s3a.access.key="${AWS_ACCESS_KEY_ID}" \<br />-Dfs.s3a.secret.key="${AWS_SECRET_ACCESS_KEY}" \<br />-Dfs.s3a.session.token="${AWS_SESSION_TOKEN}" \<br />-Dfs.s3a.path.style.access=true \<br />-Dfs.s3a.connection.ssl.enabled=true \<br />-Dfs.s3a.endpoint=s3.<your-aws-region>.amazonaws.com \<br />hdfs:///user/root/ s3a://<your-bucket-name></pre>Amazon S3용 AWS PrivateLink와 함께 DistCp 명령을 사용할 때는 엔드포인트의 AWS 리전이 자동으로 검색되지 않습니다. Hadoop 3.3.2 이상 버전에서는 S3 버킷의 AWS 리전을 명시적으로 설정하는 옵션을 활성화하여 이 문제를 해결합니다. 자세한 내용은 [AWS 리전을 설정하기 위한 fs.s3a.endpoint.region 옵션을 추가하는 S3A](https://issues.apache.org/jira/browse/HADOOP-17705)를 참고하십시오(Hadoop 웹사이트).추가 S3A 공급자에 대한 자세한 내용은 [일반 S3A 클라이언트 구성](https://hadoop.apache.org/docs/stable/hadoop-aws/tools/hadoop-aws/index.html#General_S3A_Client_configuration)(Hadoop 웹사이트)을 참고하십시오. 예를 들어, 암호화를 사용하는 경우 암호화 유형에 따라 위의 명령 시리즈에 다음 옵션을 추가할 수 있습니다.<pre>-Dfs.s3a.server-side-encryption-algorithm=AES-256 [or SSE-C or SSE-KMS]</pre>S3A와 함께 인터페이스 엔드포인트를 사용하려면, 인터페이스 엔드포인트에 S3 리전 이름(예: `s3.<your-aws-region>.amazonaws.com`)의 DNS 별칭 항목을 생성해야 합니다. 지침은 *Amazon S3에 대한 인증 구성* 섹션을 참고하십시오. 이 해결 방법은 Hadoop 3.3.2 이하 버전에 필요합니다. S3A의 이후 버전에서는 이 해결 방법이 필요하지 않습니다.Amazon S3에 서명 문제가 있는 경우, Signature Version 4(SigV4) 서명을 사용하는 옵션을 추가합니다.<pre>-Dmapreduce.map.java.opts="-Dcom.amazonaws.services.s3.enableV4=true"</pre> | 마이그레이션 엔지니어, AWS 관리자 | 