

# VPC 엔드포인트를 사용한 Amazon S3 데이터 스토어 크롤링
<a name="connection-S3-VPC"></a>

Amazon S3 데이터 스토어 또는 Amazon S3 기반 데이터 카탈로그 테이블이 보안, 감사 또는 제어를 위해 Amazon Virtual Private Cloud 환경(Amazon VPC)에 의해서만 액세스되도록 구성할 수 있습니다. 이 주제에서는 `Network` 연결 유형을 사용하여 VPC 엔드포인트에서 Amazon S3 데이터 스토어 또는 Amazon S3 기반 데이터 카탈로그 테이블에 대한 연결을 생성하고 테스트하는 방법을 설명합니다.

데이터 스토어에서 크롤러를 실행하려면 다음 태스크를 수행합니다.
+ [사전 조건](#connection-S3-VPC-prerequisites)
+ [Amazon S3에 대한 연결 생성](#connection-S3-VPC-create-connection)
+ [Amazon S3에 대한 연결 테스트](#connection-S3-VPC-test-connection)
+ [Amazon S3 데이터 스토어의 크롤러 생성](#connection-S3-VPC-create-crawler)
+ [크롤러 실행](#connection-S3-VPC-run-crawler)

## 사전 조건
<a name="connection-S3-VPC-prerequisites"></a>

Amazon S3 데이터 스토어 또는 Amazon S3 기반 데이터 카탈로그 테이블이 Amazon Virtual Private Cloud 환경(Amazon VPC)을 통해 액세스되도록 설정하기 위한 다음과 같은 필수 조건을 충족했는지 확인합니다.
+ 구성된 VPC. 예: vpc-01685961063b0d84b. 자세한 내용은 *Amazon VPC 사용 설명서*의 [Amazon VPC 시작하기](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html)를 참조하세요.
+ VPC에 연결된 Amazon S3 엔드포인트. 예: vpc-01685961063b0d84b. 자세한 내용은 *Amazon VPC 사용 설명서*의 [Amazon S3용 엔드포인트 정책](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html)을 참조하세요.  
![VPC에 연결된 Amazon S3 엔드포인트의 예.](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/network_s3_vpc_s3_endpoint_attached.png)
+ VPC 엔드포인트를 가리키는 경로 항목. 예: VPC 엔드포인트(vpce-0ec5da4d265227786)에서 사용하는 라우팅 테이블의 vpce-0ec5da4d265227786.  
![VPC 엔드포인트를 가리키는 경로 항목의 예.](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/network_s3_vpc_route_entry.png)
+ VPC에 연결된 네트워크 ACL은 트래픽을 허용합니다.
+ VPC에 연결된 보안 그룹은 트래픽을 허용합니다.

## Amazon S3에 대한 연결 생성
<a name="connection-S3-VPC-create-connection"></a>

일반적으로 리소스는 퍼블릭 인터넷을 통해 액세스할 수 없도록 Amazon Virtual Private Cloud(Amazon VPC) 내에 생성합니다. 기본적으로 AWS Glue는 VPC 내의 리소스에 액세스할 수 없습니다. AWS Glue가 VPC 내부의 리소스에 액세스할 수 있도록 하려면 VPC 서브넷 ID 및 보안 그룹 ID를 포함하는 추가 VPC별 구성 정보를 제공해야 합니다. `Network` 연결을 생성하려면 다음 정보를 지정해야 합니다.
+ VPC ID
+ VPC 내의 서브넷
+ 보안 그룹

`Network` 연결을 설정하려면

1. AWS Glue 콘솔의 탐색 창에서 [**연결 추가(Add connection)**]를 선택합니다.

1. 연결 이름을 입력하고 연결 유형으로 [**네트워크(Network)**]를 선택합니다. **다음**을 선택합니다.  
![연결 유형 선택.](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/network_s3_vpc_add_network_1.png)

1. VPC, 서브넷 및 보안 그룹 정보를 구성합니다.
   + VPC: 데이터 스토어를 포함하는 VPC 이름을 선택합니다.
   + 서브넷: VPC 내의 서브넷을 선택합니다.
   + 보안 그룹: VPC의 데이터 스토어에 대한 액세스를 허용하는 하나 이상의 보안 그룹을 선택합니다.  
![연결 유형 선택.](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/network_s3_vpc_add_network_2.png)

1. **다음**을 선택합니다.

1. 연결 정보를 확인하고 [**마침(Finish)**]을 선택합니다.  
![연결 유형 선택.](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/network_s3_vpc_add_network_3.png)

## Amazon S3에 대한 연결 테스트
<a name="connection-S3-VPC-test-connection"></a>

`Network` 연결을 생성한 후에는 VPC 엔드포인트에서 Amazon S3 데이터 스토어에 대한 연결을 테스트할 수 있습니다.

연결을 테스트할 때 다음 오류가 발생할 수 있습니다.
+ [인터넷 연결 오류(INTERNET CONNECTION ERROR)]: 인터넷 연결 문제를 나타냅니다.
+ [잘못된 버킷 오류(INVALID BUCKET ERROR)]: Amazon S3 버킷에 문제가 있음을 나타냅니다.
+ [S3 연결 오류(S3 CONNECTION ERROR)]: Amazon S3 연결에 실패했음을 나타냅니다.
+ [잘못된 연결 유형(INVALID CONNECTION TYPE)]: 연결 유형에 예상 값 `NETWORK`가 없음을 나타냅니다.
+ [잘못된 연결 테스트 유형(INVALID CONNECTION TEST TYPE)]: 네트워크 연결 테스트의 유형에 문제가 있음을 나타냅니다.
+ [잘못된 대상(INVALID TARGET)]: Amazon S3 버킷이 제대로 지정되지 않았음을 나타냅니다.

`Network` 연결을 테스트하려면

1. AWS Glue 콘솔에서 [**네트워크(Network)**] 연결을 선택합니다.

1. **연결 테스트**를 선택합니다.

1. 이전 단계에서 생성한 IAM 역할을 선택하고 Amazon S3 버킷을 지정합니다.

1. [**연결 테스트(Test connection)**]를 선택하여 테스트를 시작합니다. 결과를 표시하는 데 몇 분 정도 걸릴 수 있습니다.

![연결을 테스트합니다.](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/network_s3_vpc_test_network.png)


 오류가 발생하면 다음을 확인합니다.
+ 선택한 역할에 올바른 권한이 제공됩니다.
+ 올바른 Amazon S3 버킷이 제공됩니다.
+ 보안 그룹과 네트워크 ACL은 필요한 수신 및 발신 트래픽을 허용합니다.
+ 지정한 VPC가 Amazon S3 VPC 엔드포인트에 연결되어 있습니다.

연결 테스트에 성공하면 크롤러를 생성할 수 있습니다.

## Amazon S3 데이터 스토어의 크롤러 생성
<a name="connection-S3-VPC-create-crawler"></a>

이제 생성한 `Network` 연결을 지정하는 크롤러를 생성할 수 있습니다. 크롤러 생성에 대한 자세한 내용은 [크롤러 구성](define-crawler.md) 섹션을 참조하세요.

1. AWS Glue 콘솔의 탐색 창에서 [**크롤러(Crawlers)**]를 선택하여 시작합니다.

1. **크롤러 추가**를 선택합니다.

1. 크롤러 이름을 지정하고 [**다음(Next)**]을 선택합니다.

1. 데이터 원본을 묻는 메시지가 표시되면 [**S3**]를 선택하고 Amazon S3 버킷 접두사와 이전에 생성한 연결을 지정합니다.  
![연결을 테스트합니다.](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/network_s3_vpc_add_crawler_1.png)

1. 필요한 경우 동일한 네트워크 연결에 다른 데이터 스토어를 추가합니다.

1. IAM 역할을 선택합니다. IAM 역할은 AWS Glue 서비스 및 Amazon S3 버킷에 대한 액세스를 허용해야 합니다. 자세한 내용은 [크롤러 구성](define-crawler.md) 섹션을 참조하세요.  
![연결을 테스트합니다.](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/network_s3_vpc_add_crawler_2.png)

1. 크롤러의 일정을 정의합니다.

1. 데이터 카탈로그에서 기존 데이터베이스를 선택하거나 새 데이터베이스 항목을 생성합니다.  
![연결을 테스트합니다.](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/network_s3_vpc_add_crawler_3.png)

1. 나머지 설정을 완료합니다.

## Amazon S3 기반 데이터 카탈로그 테이블의 크롤러 생성
<a name="connection-S3-VPC-create-crawler-catalog-vpc"></a>

이제 앞에서 생성한 `Network` 연결과 카탈로그 소스 유형을 지정하는 크롤러를 생성할 수 있습니다. 크롤러 생성에 대한 자세한 내용은 [크롤러 구성](define-crawler.md) 섹션을 참조하세요.

1. AWS Glue 콘솔의 탐색 창에서 [**크롤러(Crawlers)**]를 선택하여 시작합니다.

1. **크롤러 추가**를 선택합니다.

1. 크롤러 이름을 지정하고 [**다음(Next)**]을 선택합니다.

1. 크롤러 소스 유형을 묻는 메시지가 표시되면 **Existing catalog tables**(기존 카탈로그 테이블)를 선택한 후 Available Tables(사용 가능한 테이블) 목록에서 크롤링할 기존 카탈로그 테이블을 지정합니다.  
![크롤러 소스 유형 선택.](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/catalog-vpc-1.png)

1. IAM 역할을 선택합니다. IAM 역할은 AWS Glue 서비스 및 Amazon S3 버킷에 대한 액세스를 허용해야 합니다. 자세한 내용은 [크롤러 구성](define-crawler.md) 섹션을 참조하세요.

1. 크롤러의 일정을 정의합니다.

1. 데이터 카탈로그에서 기존 데이터베이스를 선택하거나 새 데이터베이스 항목을 생성합니다.

1. 나머지 설정을 완료하고 단계를 검토합니다.  
![크롤러 소스 유형 선택.](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/catalog-vpc-2.png)

## 크롤러 실행
<a name="connection-S3-VPC-run-crawler"></a>

크롤러를 실행합니다.

![온디맨드로 크롤러 실행.](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/network_s3_vpc_s3_endpoint_run_crawler.png)


## 문제 해결
<a name="connection-S3-VPC-troubleshooting"></a>

VPC 게이트웨이를 사용하는 Amazon S3 버킷과 관련된 문제 해결은 [왜 게이트웨이 VPC 엔드포인트를 사용하여 S3 버킷에 연결할 수 없나요?](https://aws.amazon.com/premiumsupport/knowledge-center/connect-s3-vpc-endpoint/)를 참조하세요.