

 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)**입니다.
   +  {{<username>}}은 클러스터 연결 권한이 있는 사용자의 이름입니다.
   +  {{<databasename>}}은(는) 이전 단계에서 입력한 **데이터베이스 이름(Database Name)**입니다.
   +  {{<port>}}는 이전 단계에서 기록한 **포트(Port)**입니다. {{<port>}}는 선택적 파라미터입니다.

   예를 들면 다음과 같습니다.

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

1.  암호 프롬프트에서 {{<username>}} 사용자의 암호를 입력합니다.

   성공적인 연결 응답은 다음과 같습니다.

   ```
   % 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>

DSN을 통해 연결 속성 구성을 간소화하여 RSQL을 Amazon Redshift에 연결할 수 있습니다. 이 주제에는 ODBC 드라이버 설치 설명과 DSN 속성 설명이 포함되어 있습니다.

### 암호와 함께 DSN 연결 사용
<a name="rsql-query-tool-starting-tool-connection-dsn-example-password"></a>

다음은 암호를 사용하는 DSN 연결 구성의 예를 보여줍니다. 기본 `<path to driver>`은 Mac OSX의 경우 `/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>

Single Sign-On 인증을 위해 DSN을 구성할 수 있습니다. 다음은 Okta Single Sign-On을 사용하는 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 Single Sign-On을 사용하는 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` 키 값은AWS CLI 자격 증명에서 선택하는 명명된 프로파일입니다. 이 예에서는 `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이 Java용 AWS SDK에서 [AWS 자격 증명으로 작업하기](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html)에 나와 있는 순서대로 자격 증명 획득을 시도합니다. 체인에서 제공자 하나 이상이 `GetClusterCredentials` 권한이 있어야 합니다. 이것은 예를 들어 ECS 컨테이너에서 연결할 때 유용합니다.

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