자습서 설치: 개발 엔드포인트 자습서용 사전 요구 사항 - AWS Glue

자습서 설치: 개발 엔드포인트 자습서용 사전 요구 사항

개발 엔드포인트는 AWS Glue 작업으로써 실행되기 전에 다양한 방식으로 ETL 스크립트를 대화식으로 테스트하고 디버깅할 수 있는 환경을 만듭니다. 이 단원의 자습서를 통해 IDE를 사용하여 이런 작업을 수행하는 방법을 알아봅니다. 모두가 개발 엔드포인트를 설치하고 다음 섹션의 단계에 따라 샘플 데이터를 크롤러하여 테이블을 AWS Glue Data Catalog에 생성한다는 것을 수임합니다.

경우에 따라 Amazon Simple Storage Service(Amazon S3) 데이터만 사용할 때도 있고 JDBC와 Amazon S3 데이터를 섞어 쓸 때도 있으므로, Virtual Private Cloud(VPC)에 속하지 않는 것 하나와 그에 속하는 것 하나로 개발 엔드포인트를 설정하게 됩니다.

자습서에 사용된 샘플 데이터 크롤링

첫 단계는 몇몇 샘플 데이터를 크롤할 수 있는 크롤러를 생성하고 크롤러 메타데이터를 Data Catalog의 테이블에 기록합니다. 사용된 샘플 데이터는 http://everypolitician.org/에서 가져왔고 자습용으로 약간 수정되었습니다. 데이터셋은 미국 제정자와 미국 상원과 하원에 차지한 의석에 대한 JSON 형식의 데이터를 포함합니다.

  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/glue/에서 AWS Glue 콘솔을 엽니다.

    AWS Glue 콘솔 탐색 창에서 Databases(데이터베이스)를 선택한 다음 Add datebase(데이터베이스 추가)를 선택합니다. 데이터베이스 legislators 이름

  2. Crawlers(크롤러)를 선택한 후 Add crawler(크롤러 추가)를 선택합니다. 크롤러에 이름을 붙인 legislator_crawler 다음 Next(다음)를 선택합니다.

  3. 기본 크롤러 소스 유형(데이터 스토어)을 수락하고 다음을 클릭하십시오.

  4. 데이터 스토어로 S3를 둡니다. Crawl data in(데이터 크롤링)Specified path in another account(다른 계정으로 지정된 경로)를 선택합니다. 그런 다음, Include path(경로 바꾸기) 상자에 s3://awsglue-datasets/examples/us-legislators/all을 입력합니다. Next(다음)를 선택한 다음 Next(다음)을 다시 선택하여 다른 데이터 스토어의 추가를 원하지 않다는 것을 확인합니다.

  5. 크롤러가 실행되면서 수행할 IAM 역할을 제공합니다.

    s3://awsglue-datasets/examples/us-legislators/all에 액세스할 수 있는 역할을 제공하거나, IAM 역할 생성을 선택하고 이름을 입력하여 해당 위치에 액세스할 수 있는 역할을 생성하십시오.

  6. 다음을 선택하고 다시 다음을 선택하여 크롤러가 요청 시 실행된다는 점을 확인합니다.

  7. Database(데이터베이스)의 경우, legislators 데이터베이스를 선택합니다. [Next(다음)]를 선택한 다음 [Finish]를 선택하여 새로운 크롤러 생성을 완료합니다.

  8. 탐색 창에서 다시 Crawlers(크롤러)를 선택합니다. 새로운 legislator_crawler 크롤러 옆의 확인란을 선택한 후 Run crawler(크롤러 실행)를 선택합니다.

  9. 탐색 창에서 [Databases(데이터베이스)]를 선택합니다. legislators 데이터베이스를 선택한 다음 Tables in legislators(제정자의 테이블)을 선택합니다. 크롤러가 가져온 메타데이터를 포함하는 Data Catalog에서 크롤러가 생성한 6개의 테이블을 볼 수 있습니다.

Amazon S3 데이터용 개발 엔드포인트 생성

다음으로 Amazon S3 데이터용 개발 엔드포인트를 생성합니다. JDBC 데이터 원본 또는 대상을 사용하여 개발 엔드포인트는 VPC로 생성되어야 합니다. 하지만 이 튜토리얼에서는 Amazon S3에만 액세스해야 하는 것은 아닙니다.

  1. AWS Glue 콘솔에서 Dev endpoints(개발 엔드포인트)를 선택합니다. Add endpoint(엔드포인트 추가)를 선택합니다.

  2. demo-endpoint와 같은 엔드포인트 이름을 지정합니다.

  3. AWS Glue ETL 작업을 실행하는 데 사용하는 IAM 역할과 비슷한 권한을 통해 [IAM 역할(IAM role)]을 사용합니다. 자세한 정보는 2단계: AWS Glue에 대한 IAM 역할 생성을 참조하십시오. 다음(Next)을 선택합니다.

  4. Networking(네트워킹)에서 선택된 Skip networking information(네트워크 정보 건너뛰기)에서 나와 Next(다음)를 선택합니다.

  5. [SSH 퍼블릭 키(SSH Public Key)]에 SSH 키 생성기 프로그램이 생성한 퍼블릭 키(예: ssh-keygen)를 입력합니다(Amazon EC2 키 페어를 사용하면 안 됨). 생성된 퍼블릭 키는 개발 엔드포인트로 가져옵니다. SSH를 사용하여 개발 엔드포인트로 나중에 연결할 때 해당 프라이빗 키가 필요합니다. 다음(Next)을 선택합니다. 자세한 내용은 Wikipedia의 ssh-keygen을 참조하십시오.

    참고

    Microsoft Windows에 키를 생성할 경우, PuTTYgen의 현재 버전을 사용하고 PuTTYgen 창에서 퍼블릭 키를 AWS Glue 콘솔로 복사합니다. RSA 키 생성 퍼블릭 키로 파일을 업로드하지 말고 대신 Public key for pasting into OpenSSH authorized_keys file(OpenSSH 인증 키 파일에 복사하기 위한 퍼블릭 키) 필드에 생성된 키를 사용합니다. 개발 엔드포인트로 연결할 때 해당 프라이빗 키(.ppk)가 PuTTY에서 사용됩니다. Windows에서 SSH를 포함한 개발 엔드포인트에 연결하려면 프라이빗 키를 .ppk 포맷에서 OpenSSH .pem 포맷으로 변환합니다. 이때 [변환(Conversion)] 메뉴의 PuTTYgen을 사용하면 됩니다. 자세한 내용은 PuTTY를 사용하여 Windows에서 Linux 인스턴스에 연결을 참조하십시오.

  6. Review(검토)에서 Finish(완료)를 선택합니다. 개발 엔드포인트가 생성된 후, 개발 엔드포인트의 프로비저닝 상태를 기다리고 READY(준비)로 이동합니다.

출력에 사용할 Amazon S3 위치 생성

버킷이 없는 경우 버킷 생성의 지침을 따라 샘플 ETL 스크립트에서 출력을 저장할 수 있는 Amazon S3에 버킷을 하나 설정합니다.

VPC를 통해 개발 엔드포인트 생성

이 튜토리얼에서는 필요하지 않지만, ETL 문으로 Amazon S3와 JDBC 데이터 스토어에 둘 다 액세스하는 경우 VPC 개발 엔드포인트가 있어야 합니다. 이 경우, 개발 엔드포인트를 생성할 때 JDBC 데이터 스토어를 포함한 Virtual Private Cloud(Amazon VPC)의 네트워크 속성을 지정합니다. 시작하기 전에, AWS Glue의 개발에 대한 네트워킹 설정에 설명된 환경을 설치합니다.

  1. AWS Glue 콘솔의 탐색 창에서 Dev endpoints(개발 엔드포인트)를 선택합니다. 그런 다음 Add endpoint(엔드포인트 추가)를 선택합니다.

  2. vpc-demo-endpoint와 같은 엔드포인트 이름을 지정합니다.

  3. AWS Glue ETL 작업을 실행하는 데 사용하는 IAM 역할과 비슷한 권한을 통해 [IAM 역할(IAM role)]을 사용합니다. 자세한 정보는 2단계: AWS Glue에 대한 IAM 역할 생성을 참조하십시오. 다음(Next)을 선택합니다.

  4. [네트워킹(Networking)]에서 Amazon VPC, 서브넷 및 보안 그룹을 지정합니다. 안전하게 데이터 리소스로 연결할 수 있는 개발 엔드포인트를 생성할 때 이 정보가 사용됩니다. 엔드포인트 속성을 채울 때 다음과 같은 제안을 고려합니다.

    • 데이터 스토어로의 연결을 이미 설정한 경우, 기존 연결에서 연결 세부 정보를 가져와 엔드포인트 Amazon VPC, 서브넷과 보안 그룹 파라미터를 구성하는 데 쓰면 됩니다. 그렇지 않으면 이 파라미터를 각각 지정합니다.

    • Amazon VPC의 [DNS 호스트 이름 편집(Edit DNS hostnames)]이 [예(yes)]로 설정되어 있어야 합니다. 이 파라미터는 Amazon VPC 콘솔(https://console.aws.amazon.com/vpc/)에서 설정하면 됩니다. 자세한 정보는 VPC에서 DNS 설정을 참조하십시오.

    • 이 튜토리얼에서는 선택한 Amazon VPC에 Amazon S3 VPC 엔드포인트가 있어야 합니다. Amazon S3 VPC 엔드포인트 생성 방법에 대한 자세한 내용은 Amazon S3용 Amazon VPC 엔드포인트 섹션을 참조하세요.

    • 개발 엔드포인트용 퍼블릭 서브넷을 선택합니다. 인터넷 게이트웨이에 경로를 추가하여 서브넷을 퍼블릭 서브넷으로 만들 수 있습니다. IPv4 트래픽에 대해 Destination(대상 주소) 0.0.0.0/0으로 경로를 생성하고 인터넷 게이트웨이 ID를 Target(대상)으로 합니다. 서브넷 경로 테이블은 NAT 게이트웨이가 아니라 인터넷 게이트웨이와 연결되어야 합니다. 이 정보는 Amazon VPC 콘솔(https://console.aws.amazon.com/vpc/)에서 설정하면 됩니다. 예:

      인터넷 게이트웨이를 통한 라우팅 테이블 예제.

      자세한 내용은 인터넷 게이트웨이용 라우팅 테이블을 참조하십시오. 인터넷 게이트웨이 생성 방법에 대한 자세한 내용은 인터넷 게이트웨이를 참조하십시오.

    • 인바운드 자기 참조 규칙이 있는 보안 그룹을 선택했는지 확인합니다. 이 정보는 Amazon VPC 콘솔(https://console.aws.amazon.com/vpc/)에서 설정하면 됩니다. 예:

      자기 참조 인바운드 규칙 예제

      서브넷을 설치하는 방법에 대한 자세한 내용은 AWS Glue의 개발에 대한 네트워킹 설정 섹션을 참조하십시오.

    다음(Next)을 선택합니다.

  5. [SSH Public Key(SSH 퍼블릭 키)]에 SSH 키 생성기 프로그램이 생성한 퍼블릭 키를 입력합니다(Amazon EC2 키 페어를 사용하면 안 됨). SSH를 사용하여 개발 엔드포인트로 나중에 연결할 때 해당 프라이빗 키가 필요합니다. 다음(Next)을 선택합니다.

    참고

    Microsoft Windows에 키를 생성할 경우, PuTTYgen의 현재 버전을 사용하고 PuTTYgen 창에서 퍼블릭 키를 AWS Glue 콘솔로 복사합니다. RSA 키 생성 퍼블릭 키로 파일을 업로드하지 말고 대신 Public key for pasting into OpenSSH authorized_keys file(OpenSSH 인증 키 파일에 복사하기 위한 퍼블릭 키) 필드에 생성된 키를 사용합니다. 개발 엔드포인트로 연결할 때 해당 프라이빗 키(.ppk)가 PuTTY에서 사용됩니다. Windows에서 SSH를 포함한 개발 엔드포인트에 연결하려면 프라이빗 키를 .ppk 포맷에서 OpenSSH .pem 포맷으로 변환합니다. 이때 [변환(Conversion)] 메뉴의 PuTTYgen을 사용하면 됩니다. 자세한 내용은 PuTTY를 사용하여 Windows에서 Linux 인스턴스에 연결을 참조하십시오.

  6. Review(검토)에서 Finish(완료)를 선택합니다. 개발 엔드포인트가 생성된 후, 개발 엔드포인트의 프로비저닝 상태를 기다리고 READY(준비)로 이동합니다.

다음 섹션에서 자습서를 시작할 준비가 되었습니다.