

 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 Serverless로 마이그레이션
<a name="serverless-migration"></a>

기존의 프로비저닝된 클러스터를 Amazon Redshift Serverless로 마이그레이션하여 컴퓨팅 리소스 규모를 온디맨드 방식으로 자동 조정할 수 있습니다. 프로비저닝된 클러스터를 Amazon Redshift Serverless로 마이그레이션하면 사용한 리소스에 대해서만 비용을 지불하고 워크로드 수요에 따라 용량 규모를 자동으로 조정하여 비용을 최적화할 수 있습니다. 마이그레이션의 일반적인 사용 사례에는 임시 쿼리 실행, 주기적인 데이터 처리 작업 또는 리소스를 과도하게 프로비저닝하지 않고 예측할 수 없는 워크로드 처리 작업이 포함됩니다. 다음 태스크 세트를 수행하여 프로비저닝된 Amazon Redshift 클러스터를 서버리스 배포 옵션으로 마이그레이션하세요.

## 프로비저닝된 클러스터의 스냅샷 생성
<a name="serverless-migration-snapshots"></a>

**참고**  
Amazon Redshift는 프로비저닝된 클러스터 스냅샷을 서버리스 네임스페이스로 복원할 때 인터리브된 키를 복합 키로 자동 변환합니다.

 프로비저닝된 클러스터에서 Amazon Redshift Serverless로 데이터를 전송하려면 프로비저닝된 클러스터의 스냅샷을 생성한 후 Amazon Redshift Serverless에서 스냅샷을 복원합니다.

**참고**  
데이터를 서버리스 작업 그룹으로 마이그레이션하기 전에, 프로비저닝된 클러스터 요구 사항이 Amazon Redshift Serverless에서 선택한 RPU 양과 호환되는지 확인하세요.

프로비저닝된 클러스터의 스냅샷을 생성하려면

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 **Clusters(클러스터)**, **Snapshots(스냅샷)**을 선택한 다음 **Create snapshot(스냅샷 생성)**을 선택합니다.

1. 스냅샷 정의의 속성을 입력한 후 **스냅샷 생성**을 선택합니다. 스냅샷을 사용할 수 있을 때까지 시간이 다소 걸릴 수 있습니다.

프로비저닝된 클러스터 스냅샷을 서버리스 네임스페이스로 복원

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. Amazon Redshift 프로비저닝된 클러스터 콘솔에서 시작하여 **Clusters(클러스터)**, **Snapshots(스냅샷)** 페이지로 이동합니다.

1. 사용할 스냅샷을 선택합니다.

1. **Restore snapshot(스냅샷 복원)**, **Restore to serverless namespace(서버리스 네임스페이스로 복원)**을 선택합니다.

1. 스냅샷을 어느 네임스페이스로 복원할지 선택합니다.

1. 스냅샷에서 복원할 것인지 확인합니다. 이 작업은 서버리스 엔드포인트의 모든 데이터베이스를 프로비저닝된 클러스터의 데이터로 바꿉니다. **복원**을 선택합니다.

프로비저닝된 클러스터 스냅샷에 대한 자세한 내용은 [Amazon Redshift 스냅샷](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-snapshots.html)을 참조하세요.

## 드라이버를 사용하여 Amazon Redshift Serverless에 연결
<a name="serverless-migration-drivers"></a>

 원하는 SQL 클라이언트에 Amazon Redshift Serverless를 연결하려면, Amazon Redshift에서 제공하는 [JDBC 드라이버 버전 2.x](https://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-install.html)를 사용하면 됩니다. 최신 버전의 Amazon Redshift JDBC 드라이버 버전 2.x를 사용하여 Amazon Redshift에 연결하는 것이 좋습니다. 포트 번호는 선택에 따릅니다. 이 드라이버를 포함하지 않으면 Amazon Redshift Serverless는 기본적으로 포트 번호 5439로 설정됩니다. 포트 범위 5431\~5455 또는 8191\~8215에서 다른 포트로 변경할 수 있습니다. 서버리스 엔드포인트의 기본 포트를 변경하려면 AWS CLI 및 Amazon Redshift API를 사용하세요.

 JDBC, ODBC 또는 Python 드라이버에 사용할 정확한 엔드포인트를 찾으려면 Amazon Redshift Serverless에서 **작업 그룹 구성**을 참조하세요. Amazon Redshift Serverless API 작업인 `GetWorkgroup` 또는 AWS CLI 작업인 `get-workgroups`를 사용하여 작업 그룹에 대한 정보를 반환한 다음 연결할 수도 있습니다.

### 암호 기반 인증을 사용하여 연결
<a name="serverless-migration-drivers-password-auth"></a>

암호 기반 인증과 함께 Amazon Redshift JDBC 드라이버 버전 2.x를 사용하여 연결을 설정하려면 다음 구문을 사용합니다.

```
jdbc:redshift://<{{workgroup-name}}>.<{{account-number}}>.<{{aws-region}}>.redshift-serverless.amazonaws.com:5439/?username={{username}}&password={{password}}
```

암호 기반 인증과 함께 Amazon Redshift Python 커넥터를 사용하여 연결을 설정하려면 다음 구문을 사용합니다.

```
import redshift_connector
with redshift_connector.connect(
    host='<{{workgroup-name}}>.<{{account-number}}>.<{{aws-region}}>.redshift-serverless.amazonaws.com',
    database='<{{database-name}}>',
    user='{{username}}',
    password='{{password}}'
    # port value of 5439 is specified by default
) as conn:
    pass
```

암호 기반 인증과 함께 Amazon Redshift ODBC 드라이버 버전 2.x를 사용하여 연결을 설정하려면 다음 구문을 사용합니다.

```
Driver={Amazon Redshift ODBC Driver (x64)}; Server=<{{workgroup-name}}>.<{{account-number}}>.<{{aws-region}}>.redshift-serverless.amazonaws.com; Database={{database-name}}; User={{username}}; Password={{password}}
```

### IAM을 사용하여 연결
<a name="serverless-migration-drivers-iam"></a>

 IAM으로 로그인하려면 Amazon Redshift Serverless [https://docs.aws.amazon.com//redshift-serverless/latest/APIReference/API_GetCredentials.html](https://docs.aws.amazon.com//redshift-serverless/latest/APIReference/API_GetCredentials.html) API 작업을 사용합니다.

IAM 인증을 사용하려면 다음 예시에 보이는 것처럼 `jdbc:redshift:` 다음에 `iam:`을 Amazon Redshift JDBC URL에 넣습니다.

```
jdbc:redshift:iam://<{{workgroup-name}}>.<{{account-number}}>.<{{aws-region}}>.redshift-serverless.amazonaws.com:5439/<{{database-name}}>
```

이 Amazon Redshift Serverless 엔드포인트는 dbUser, dbGroup 또는 auto-create 사용자 지정을 지원하지 않습니다. 기본적으로 드라이버는 로그인 시 데이터베이스 사용자를 자동으로 생성합니다. 그런 다음 IAM에 지정된 태그 또는 ID 제공업체(idP)에 정의된 그룹을 기반으로 Amazon Redshift 데이터베이스 역할에 사용자를 할당합니다.

AWS 자격 증명에 `redshift-serverless:GetCredentials` 작업에 대한 올바른 IAM 정책이 있어야 합니다. 다음은 Amazon Redshift Serverless에 연결하기 위한 올바른 권한을 AWS 자격 증명에 부여하는 IAM 정책의 예입니다. IAM 권한에 대한 자세한 내용은 *IAM 사용 설명서*의 [IAM 자격 증명 권한 추가 및 제거](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)를 참조하세요.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": "redshift-serverless:GetCredentials",
            "Resource": "*"
        }
    ]
}
```

------

IAM 기반 인증과 함께 Amazon Redshift Python 커넥터를 사용하여 연결을 설정하려면 다음 구문과 같이 코드에 `iam=true`를 사용합니다.

```
import redshift_connector
with redshift_connector.connect(
    iam=True,
    host='<{{workgroup-name}}>.<{{account-number}}>.<{{aws-region}}>.redshift-serverless.amazonaws.com',
    database='<{{database-name}}>'
    <{{IAM credentials}}>
) as conn:
    pass
```

`IAM credentials`의 경우 다음을 포함한 모든 자격 증명을 사용할 수 있습니다.
+  AWS 프로파일 구성 
+  IAM 자격 증명(액세스 키 ID, 시크릿 액세스 키 및 선택적 세션 토큰) 
+  ID 제공업체 페더레이션 

IAM 기반 인증 및 프로파일과 함께 Amazon Redshift ODBC 드라이버 버전 2.x를 사용하여 연결을 설정하려면 다음 구문을 사용합니다.

```
Driver={Amazon Redshift ODBC Driver (x64)}; IAM=true; Server=<{{workgroup-name}}>.<{{account-number}}>.<{{aws-region}}>.redshift-serverless.amazonaws.com; Database={{database-name}}; Profile={{aws-profile-name}};
```

### GetClusterCredentials API로 IAM을 사용하여 연결
<a name="serverless-migration-drivers-iam-dbuser-group"></a>

**참고**  
Amazon Redshift Serverless에 연결할 때는 [https://docs.aws.amazon.com//redshift-serverless/latest/APIReference/API_GetCredentials.html](https://docs.aws.amazon.com//redshift-serverless/latest/APIReference/API_GetCredentials.html) API를 사용하는 것이 좋습니다. 이 API는 포괄적인 역할 기반 액세스 제어(RBAC) 기능과 `GetClusterCredentials`에서 사용할 수 없는 기타 새로운 기능을 제공합니다. 프로비저닝된 클러스터에서 서버리스 작업 그룹으로의 전환을 간소화하기 위해 `GetClusterCredentials` API를 지원하지만 최적의 호환성을 위해 가능한 한 빨리 `GetCredentials`를 사용하도록 마이그레이션하는 것이 좋습니다.

[https://docs.aws.amazon.com//redshift/latest/APIReference/API_GetClusterCredentials.html](https://docs.aws.amazon.com//redshift/latest/APIReference/API_GetClusterCredentials.html) API를 사용하여 Amazon Redshift Serverless에 대한 연결을 설정할 수 있습니다. 이 인증 방법을 구현하려면 다음 파라미터를 통합하여 클라이언트 또는 애플리케이션을 수정합니다.
+  `iam=true` 
+  `clusterid/cluster_identifier=redshift-serverless-<{{workgroup-name}}>` 
+  `region=<{{aws-region}}>` 

다음 예시는 세 드라이버 모두에서 BrowserSAML 플러그인을 사용하는 방법을 보여줍니다. 이는 사용 가능한 여러 인증 방식 중 하나입니다. 예시를 수정하여 특정 요구 사항에 따라 다른 인증 방식이나 플러그인을 사용할 수 있습니다.

#### GetClusterCredentials에 대한 IAM 정책 권한
<a name="serverless-migration-drivers-iam-dbuser-group-iam"></a>

다음은 Amazon Redshift Serverless에서 `GetClusterCredentials`를 사용하는 데 필요한 권한이 있는 샘플 IAM 정책입니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "redshift-serverless:GetWorkgroup",
                "redshift-serverless:GetNamespace",
                "redshift:GetClusterCredentials",
                "redshift:CreateClusterUser",
                "redshift:JoinGroup",
                "redshift:ExecuteQuery",
                "redshift:FetchResults",
                "redshift:DescribeClusters",
                "redshift:DescribeTable"
            ],
            "Resource": [
                "arn:aws:redshift-serverless:us-east-1:{{111122223333}}:workgroup/{{workgroup-name}}",
                "arn:aws:redshift-serverless:us-east-1:{{111122223333}}:namespace/{{namespace-name}}",
                "arn:aws:redshift:us-east-1:{{111122223333}}:cluster:{{cluster-name}}",
                "arn:aws:redshift:us-east-1:{{111122223333}}:dbuser:{{database-name}}/${redshift:DbUser}"
            ]
        }
    ]
}
```

------

`GetClusterCredentials`로 Amazon Redshift JDBC 드라이버 버전 2.x를 사용하여 연결을 설정하려면 다음 구문을 사용합니다.

```
jdbc:redshift:iam://redshift-serverless-<{{workgroup-name}}>:<{{aws-region}}>/<{{database-name}}>?plugin_name=com.amazon.redshift.plugin.BrowserSamlCredentialsProvider&login_url=<{{single sign-on URL from IdP}}>"
```

`GetClusterCredentials`로 Amazon Redshift Python 커넥터를 사용하여 연결을 설정하려면 다음 구문을 사용합니다.

```
import redshift_connector
with redshift_connector.connect(
    iam=True,
    cluster_identifier='redshift-serverless-<{{workgroup-name}}>',
    region='<{{aws-region}}>',
    database='<{{database-name}}>',
    credentials_provider='BrowserSamlCredentialsProvider'
    login_url='<{{single sign-on URL from IdP}}>'
    # port value of 5439 is specified by default
) as conn:
    pass
```

`GetClusterCredentials`로 Amazon Redshift ODBC 드라이버 버전 2.x를 사용하여 연결을 설정하려면 다음 구문을 사용합니다.

```
Driver= {Amazon Redshift ODBC Driver (x64)}; IAM=true; isServerless=true; ClusterId=redshift-serverless-<{{workgroup-name}}>; region=<{{aws-region}}>; plugin_name=BrowserSAML;login_url=<{{single sign-on URL from IdP}}>
```

다음은 Windows에서 ODBC DSN을 구성하는 예입니다.

![Windows의 Amazon Redshift ODBC 드라이버 연결 탭. 위의 샘플 구문에 해당하는 필드가 채워집니다.](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/images/GetClusterCredentials-odbc-windows.png)


## Amazon Redshift Serverless SDK 사용
<a name="serverless-migration-sdk"></a>

Amazon Redshift SDK를 사용하여 관리 스크립트를 작성한 경우 새로운 Amazon Redshift Serverless SDK를 사용하여 Amazon Redshift Serverless 및 관련 리소스를 관리해야 합니다. 사용 가능한 API 작업에 대한 자세한 내용은 [Amazon Redshift Serverless API 참조 가이드](https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/Welcome.html)를 참조하세요.