

# SAP HANA 接続の作成
<a name="creating-saphana-connection"></a>

AWS Glue から SAP HANA に接続するには、SAP HANA 認証情報を作成して AWS Secrets Manager シークレットに保存し、そのシークレットを SAP HANA AWS Glue 接続に関連付ける必要があります。SAP HANA サービスと AWS Glue の間のネットワーク接続を設定する必要があります。

**前提条件**:
+ SAP HANA サービスが Amazon VPC 内にある場合は、トラフィックがパブリックインターネットを経由することなく、AWS Glue ジョブが SAP HANA サービスと通信できるように Amazon VPC を設定します。

  Amazon VPC で、AWS Glue がジョブの実行中に使用する **[VPC]**、**[サブネット]**、および **[セキュリティグループ]** を特定または作成します。さらに、SAP HANA エンドポイントとこの場所の間のネットワークトラフィックを許可するように Amazon VPC が設定されているようにする必要があります。ジョブでは、SAP HANA JDBC ポートとの TCP 接続を確立する必要があります。SAP HANA ポートの詳細については、[SAP HANA のドキュメント](https://help.sap.com/docs/HANA_SMART_DATA_INTEGRATION/7952ef28a6914997abc01745fef1b607/88e2e8bded9e4041ad3ad87dc46c7b55.html?locale=en-US)を参照してください。ネットワークレイアウトに基づいて、セキュリティグループルール、ネットワーク ACL、NAT ゲートウェイ、およびピアリング接続の変更が必要になる場合があります。

**SAP HANA に対する接続を設定するには:**

1. AWS Secrets Manager で、SAP HANA 認証情報を使用してシークレットを作成します。Secrets Manager でシークレットを作成するには、AWS Secrets Manager ドキュメントの [AWS Secrets Manager シークレットを作成する](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html) にあるチュートリアルに従ってください。シークレットを作成したら、次のステップのためにシークレット名 {{secretName}} を保存しておきます。
   + **[key/value ペア]** を選択する際に、{{saphanaUsername}} という値を持つキー `username/USERNAME` のペアを作成します。
   + **[key/value ペア]** を選択する際に、{{saphanaPassword}} という値を持つキー `password/PASSWORD` のペアを作成します。

1. AWS Glue コンソールで、「[AWS Glue 接続の追加](console-connections.md)」にあるステップに従って接続を作成します。接続を作成したら、将来的に AWS Glue で使用するために、接続名 {{connectionName}} を維持します。
   + **[接続タイプ]** を選択する際に、[SAP HANA] を選択します。
   + **[SAP HANA URL]** を入力する場合は、インスタンスの URL を入力します。

     SAP HANA JDBC URL の形式は `jdbc:sap://{{saphanaHostname}}:{{saphanaPort}}/?{{databaseName}}={{saphanaDBname}},{{ParameterName}}={{ParameterValue}}` です

     AWS Glue には次の JDBC URL パラメータが必要です。
     + `databaseName` – 接続先の SAP HANA のデフォルトデータベース。
   + **[AWS Secret]** をクリックして、{{secretName}} を入力します。

AWS Glue SAP HANA 接続を作成した後、AWS Glue ジョブを実行する前に次のステップを実行する必要があります。
+ AWS Glue ジョブに関連付けられている IAM ロールに {{secretName}} を読み取るアクセス許可を付与します。