

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# Amazon Redshift RSQL を使用してクラスターに接続する
<a name="rsql-query-tool-starting-tool-connection"></a>

Amazon Redshift では、クラスターに接続し、RSQL を使用してクラスターを操作できます。これは、データをクエリし、データベースオブジェクトを作成し、Amazon Redshift クラスターを管理するための安全な方法を提供するコマンドラインツールです。以下のセクションでは、データソース名 (DSN) の有無にかかわらず RSQL を使用してクラスターへの接続を確立する手順について説明します。

## DSN なしで接続する
<a name="rsql-query-tool-starting-tool-connection-dsn-less-example"></a>

1. Amazon Redshift コンソールで、接続するクラスターを選択し、エンドポイント、データベース、ポートを書き留めます。

1. コマンドプロンプトで、コマンドラインパラメータを使用して、接続情報を指定します。

   ```
   rsql -h <endpoint> -U <username> -d <databasename> -p <port>
   ```

    ここでは、次の条件が適用されます。
   +  *<endpoint>* は前のステップで書き留めた [**Endpoint (エンドポイント)**] です。
   +  *<ユーザーネーム>* は、クラスターに接続する権限を持つユーザーの名前です。
   +  *<databasename>* は前のステップで書き留めた [**Database Name (データベース名)**] です。
   +  *<ポート>* は、前のステップで記録した**ポート**です。*<ポート>* は、オプションのパラメータです。

   以下に例を示します。

   ```
   rsql -h testcluster.example.amazonaws.com -U user1 -d dev -p 5439
   ```

1.  パスワードプロンプトで、*<ユーザーネーム>* ユーザーのパスワードを入力します。

   接続に成功した場合のレスポンスは次のようになります。

   ```
   % rsql -h testcluster.example.com -d dev -U user1 -p 5349
   Password for user user1:
   DSN-less Connected
   DBMS Name: Amazon Redshift
   Driver Name: Amazon Redshift ODBC Driver
   Driver Version: 1.4.27.1000
   Rsql Version: 1.0.1
   Redshift Version: 1.0.29306
   Type "help" for help.
   
   (testcluster) user1@dev=#
   ```

接続するコマンドは、Linux、Mac OS、および Windows で同じパラメータを持ちます。

## DSN を使用して接続する
<a name="rsql-query-tool-starting-tool-connection-dsn-example"></a>

RSQL を Amazon Redshift に接続するには、DSN を使用して接続プロパティの組織を簡素化できます。このトピックでは、ODBC ドライバーのインストール手順と DSN プロパティの説明が含まれています。

### パスワードで DSN 接続を使用する
<a name="rsql-query-tool-starting-tool-connection-dsn-example-password"></a>

次に、パスワードを使用した DSN 接続の設定例を示します。Mac OSX のデフォルト`<path to driver>`は`/opt/amazon/redshift/lib/libamazonredshiftodbc.dylib`、Linux のデフォルトは`/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so`です。

```
[testuser]
Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so
SSLMode=verify-ca
Min_TLS=1.2
boolsaschar=0
Host=<server endpoint>
Port=<database port>
Database=<dbname>
UID=<username>
PWD=<password>
sslmode=prefer
```

接続に成功した場合の出力結果は次のようになります。

```
% rsql -D testuser
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) user1@dev=#
```

### シングルサインオン DSN の使用
<a name="rsql-query-tool-starting-tool-connection-dsn"></a>

シングルサインオン認証用に DSN を設定できます。次に、シングルサインオン SSO を使用する DSN 接続設定の例を示します。

```
[testokta]
Driver=<path to driver>
SSLMode=verify-ca
Min_TLS=1.2
boolsaschar=0
Host=<server endpoint>
clusterid=<cluster id>
region=<region name>
Database=<dbname>
locale=en-US
iam=1
plugin_name=<plugin name>
uid=<okta username>
pwd=<okta password>
idp_host=<idp endpoint>
app_id=<app id>
app_name=<app name>
preferred_role=<role arn>
```

成功した接続からの出力例。

```
% rsql -D testokta 
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) user1@dev=#
```

次の例は、Azure シングルサインオンを使用する DSN 接続設定の例を示しています。

```
[testazure]
Driver=<path to driver>
SSLMode=verify-ca
Min_TLS=1.2
boolsaschar=0
Host=<server endpoint>
Port=<cluster port>
clusterid=<cluster id>
region=<region name>
Database=<dbname>
locale=en-us
iam=1
plugin_name=<plugin name>
uid=<azure username>
pwd=<azure password>
idp_tenant=<Azure idp tenant uuid>
client_id=<Azure idp client uuid>
client_secret=<Azure idp client secret>
```

### IAM プロファイルで DSN 接続を使用する
<a name="rsql-query-tool-starting-tool-connection-dsn-iam"></a>

設定した IAM プロファイルを使用して Amazon Redshift に接続できます。IAM プロファイルは、`GetClusterCredentials`を呼び出すための権限が必要です。次の例は、使用する DSN プロパティを示しています。`ClusterID`および`Region`のパラメータは、`Host`が`examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com`のように Amazon が提供するエンドポイントではない場合にのみ必要になります。

```
[testiam]
Driver=Default
Host=testcluster.example.com
Database=dev
DbUser=testuser
ClusterID=rsqltestcluster
Region=us-east-1
IAM=1
Profile=default
```

`Profile`キーの値は、AWSCLI 認証情報から選択した名前付きプロファイルです。この例は、`default`という名前のプロファイルの認証情報を示しています。

```
$ cat .aws/credentials
[default]
aws_access_key_id = ASIAIOSFODNN7EXAMPLE 
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
```

接続レスポンスは次のとおりです。

```
$ rsql -D testiam
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) testuser@dev=>
```

### インスタンスプロファイルでの DSN 接続の使用
<a name="rsql-query-tool-starting-tool-connection-dsn-instance"></a>

Amazon EC2 インスタンスプロファイルを使用して Amazon Redshift に接続できます。インスタンスプロファイルには、`GetClusterCredentials`を呼び出すための権限が必要です。使用する DSN プロパティについては、以下の例を参照してください。`ClusterID`および`Region`のパラメータは、`Host`が`examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com`のように Amazon が提供するエンドポイントではない場合にのみ必要になります。

```
[testinstanceprofile]
Driver=Default
Host=testcluster.example.com
Database=dev
DbUser=testuser
ClusterID=rsqltestcluster
Region=us-east-1
IAM=1
Instanceprofile=1
```

接続レスポンスは次のとおりです。

```
$ rsql -D testinstanceprofile
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) testuser@dev=>
```

### デフォルトの認証情報プロバイダーチェーンで DSN 接続を使用する
<a name="rsql-query-tool-starting-tool-connection-dsn-provider-chain"></a>

デフォルトの認証情報プロバイダーチェーンを使用して接続するには、IAM プロパティのみを指定します。Amazon Redshift RSQL は、「AWS SDK for Java」の「[AWS 認証情報の使用](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html)」で説明されている順序で認証情報の取得を試みます。チェーン内の少なくとも 1 つのプロバイダーが `GetClusterCredentials` のアクセス許可を持っている必要があります。これは、ECS コンテナから接続する場合などに便利です。

```
[iamcredentials]
Driver=Default
Host=testcluster.example.com
Database=dev
DbUser=testuser
ClusterID=rsqltestcluster
Region=us-east-1
IAM=1
```