

# 独自の 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/ja_jp/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/ja_jp/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 の 2 つのフォルダを作成します。

   ドライバー 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) を参照してください。