

# 자체 JDBC 드라이버를 사용하여 JDBC 연결 추가
<a name="console-connections-jdbc-drivers"></a>

 JDBC 연결을 사용할 때 자체 JDBC 드라이버를 사용할 수 있습니다. AWS Glue 크롤러가 사용하는 기본 드라이버에서 데이터베이스에 연결할 수 없는 경우 자체 JDBC 드라이버를 사용할 수 있습니다. 예를 들어 Postgres 데이터베이스에서 SHA-256을 사용하려고 하지만 이전 Postgres 드라이버에서 이를 지원하지 않는 경우 자체 JDBC 드라이버를 사용할 수 있습니다.

## 지원되는 데이터 소스
<a name="w2aac25c29d135b5"></a>


| 지원되는 데이터 소스 | 지원되지 않는 데이터 소스 | 
| --- | --- | 
| MySQL | Snowflake | 
| Postgres |  | 
| Oracle |  | 
| Redshift |  | 
| SQL Server |  | 
| Aurora\* |  | 

 \*기본 JDBC 드라이버를 사용하는 경우 지원됩니다. 일부 드라이버 기능은 사용할 수 없습니다.

## JDBC 연결에 JDBC 드라이버 추가
<a name="w2aac25c29d135b9"></a>

**참고**  
 자체 JDBC 드라이버 버전을 가져오기로 선택한 경우 AWS Glue 크롤러는 AWS Glue작업 및 Amazon S3 버킷의 리소스를 소비하여 제공된 드라이버가 사용자 환경에서 실행되도록 합니다. 리소스의 추가 사용량은 계정에 반영됩니다. AWS Glue 크롤러 및 작업 비용은 청구에서 AWS Glue 카테고리에 속합니다. 또한 자체 JDBC 드라이버를 제공한다고 해서 크롤러가 해당 드라이버의 모든 기능을 사용할 수 있는 것은 아닙니다.

**JDBC 연결에 자체 JDBC 드라이버를 추가하려면:**

1.  JDBC 드라이버 파일을 Amazon S3 위치에 추가합니다. 버킷 및/또는 폴더를 생성하거나 기존 버킷 및/또는 폴더를 사용할 수 있습니다.

1.  AWS Glue 콘솔의 왼쪽 메뉴에서 **데이터 카탈로그** 아래 **연결**을 선택한 다음 새 연결을 생성합니다.

1.  **연결 속성** 필드를 작성하고 **연결 유형**으로 JDBC를 선택합니다.

1.  **연결 액세스**에서 **JDBC URL** 및 **JDBC** 드라이버 클래스 - *선택 사항*을 입력합니다. 드라이버 클래스 이름은 AWS Glue 크롤러에서 지원하는 데이터 소스의 이름이어야 합니다.  
![스크린샷은 데이터 소스 추가 창에서 JDBC가 선택된 데이터 소스 및 연결을 보여줍니다.](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/add-connection-connection-access.png)

1.  **JDBC 드라이버 Amazon S3 경로** - *선택 사항* 필드에서 JDBC 드라이버가 있는 Amazon S3 경로를 선택합니다.

1.  사용자 이름과 암호 또는 보안 암호를 입력하는 경우 보안 인증 유형 필드를 작성합니다. 완료되면 **연결 생성**을 선택합니다.
**참고**  
 현재 테스트 연결은 지원되지 않습니다. 사용자가 제공한 JDBC 드라이버로 데이터 소스를 크롤링하는 경우 크롤러는 이 단계를 건너뛰습니다.

1.  새로 생성된 연결을 크롤러에 추가합니다. AWS Glue 콘솔 왼쪽 메뉴에서 **데이터 카탈로그** 아래 **크롤러**를 선택한 다음 새 크롤러를 생성합니다.

1.  **크롤러 추가** 마법사의 2단계에서 **데이터 소스 추가**를 선택합니다.  
![스크린샷은 데이터 소스 추가 창에서 JDBC가 선택된 데이터 소스 및 연결을 보여줍니다.](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/images/add-crawler-add-data-source.png)

1.  **JDBC**를 데이터 소스로 선택하고 이전 단계에서 생성한 연결을 선택합니다. 완료 

1.  AWS Glue 크롤러와 함께 자체 JDBC 드라이버를 사용하려면 크롤러가 사용하는 역할에 다음 권한을 추가합니다.
   +  `CreateJob`, `DeleteJob`, `GetJob`, `GetJobRun`, `StartJobRun` 작업에 대한 권한을 부여합니다.
   +  IAM 작업, `iam:PassRole`에 대한 권한 부여 
   +  Amazon S3 작업, `s3:DeleteObjects`, `s3:GetObject`, `s3:ListBucket`, `s3:PutObject`에 대한 권한을 부여합니다.
   +  서비스 보안 주체에 IAM 정책의 버킷 및 폴더에 대한 액세스 권한을 부여합니다.

    IAM 정책 예제: 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "VisualEditor0",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:GetObject",
           "s3:ListBucket",
           "s3:DeleteObject"
         ],
         "Resource": [
           "arn:aws:s3:::{{amzn-s3-demo-bucket}}/driver-parent-folder/driver.jar",
           "arn:aws:s3:::{{amzn-s3-demo-bucket}}"
         ]
       }
     ]
   }
   ```

------

    AWS Glue 크롤러는 \_glue\_job\_crawler 및 \_crawler라는 두 개의 폴더를 생성합니다.

   드라이버 jar이 `s3://amzn-s3-demo-bucket/driver.jar"` 폴더에 있는 경우 다음 리소스를 추가하세요.

   ```
   "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/_glue_job_crawler/*",
     		 "arn:aws:s3:::amzn-s3-demo-bucket/_crawler/*"
               ]
   ```

   드라이버 jar이 `s3://amzn-s3-demo-bucket/tmp/driver/subfolder/driver.jar"` 폴더에 있는 경우 다음 리소스를 추가하세요.

   ```
   "Resource": [
                  "arn:aws:s3:::amzn-s3-demo-bucket/tmp/_glue_job_crawler/*",
     		"arn:aws:s3:::amzn-s3-demo-bucket/tmp/_crawler/*"
               ]
   ```

1.  VPC를 사용하는 경우 인터페이스 엔드포인트를 생성하여 AWS Glue 엔드포인트에 대한 액세스를 허용하고 이를 라우팅 테이블에 추가해야 합니다. 자세한 내용은 [AWS Glue에 대한 인터페이스 VPC 엔드포인트 생성](https://docs.aws.amazon.com/glue/latest/dg/vpc-interface-endpoints.html#vpc-endpoint-create)을 참조하세요.

1.  데이터 카탈로그에서 암호화를 사용하는 경우 AWS KMS 인터페이스 엔드포인트를 생성하고 이를 라우팅 테이블에 추가합니다. 자세한 내용은 [AWS KMS용 VPC 엔드포인트 생성](https://docs.aws.amazon.com/kms/latest/developerguide/kms-vpc-endpoint.html#vpce-create-endpoint)을 참조하세요.