

 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/)을 참조하세요.

# AWS CloudFormation으로 PostgreSQL에 대한 연합 쿼리 사용 시작하기
<a name="getting-started-federated-CF"></a>

연합 쿼리를 사용하여 운영 데이터베이스 간에 쿼리할 수 있습니다. 이 시작 안내서에서는 샘플 AWS CloudFormation 스택을 사용하여 Amazon Redshift 클러스터에서 Aurora PostgreSQL 서버리스 데이터베이스로의 연합 쿼리를 사용하여 설정을 자동화할 수 있습니다. 리소스를 프로비저닝하기 위해 SQL 문을 실행할 필요 없이 빠르게 시작하고 실행할 수 있습니다.

스택은 샘플 데이터가 있는 테이블을 포함하는 Aurora PostgreSQL 인스턴스를 참조하는 외부 스키마를 생성합니다. Redshift 클러스터에서 외부 스키마의 테이블을 쿼리할 수 있습니다.

대신 CloudFormation을 사용하지 않고 SQL 문을 실행하여 외부 스키마를 설정하여 연합 쿼리를 시작하려는 경우 [PostgreSQL에 대한 연합 쿼리 사용 시작하기](getting-started-federated.md) 섹션을 참조하세요.

연합 쿼리를 위해 CloudFormation 스택을 실행하기 전에 Data API가 설정된 Amazon Aurora PostgreSQL 호환 버전 서버리스 데이터베이스가 있는지 확인합니다. 데이터베이스 속성에서 Data API를 설정할 수 있습니다. 설정을 찾을 수 없으면 Aurora PostgreSQL의 서버리스 인스턴스를 실행하고 있는지 다시 확인하세요. 또한 RA3 노드를 사용하는 Amazon Redshift 클러스터가 있는지 확인하세요. Redshift 클러스터와 서버리스 Aurora PostgreSQL 인스턴스가 동일한 Virtual Private Cloud(VPC) 및 서브넷 그룹에 있는 것이 좋습니다. 이런 방식으로 Aurora PostgreSQL 데이터베이스 인스턴스에 대한 보안 그룹의 인바운드 규칙에 Amazon Redshift 클러스터의 보안 그룹을 추가할 수 있습니다.

Amazon Redshift 클러스터 설정 시작하기에 대한 자세한 내용은 [Amazon Redshift 프로비저닝된 데이터 웨어하우스 시작하기](https://docs.aws.amazon.com/redshift/latest/gsg/new-user.html)를 참조하세요. CloudFormation으로 리소스 설정에 대한 자세한 내용은 [AWS CloudFormation이란 무엇인가요?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)를 참조하세요. Aurora DB 클러스터 데이터베이스 설정에 대한 자세한 내용은 [Aurora DB 클러스터 Serverless v1 DB 클러스터 생성](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.create.html)을 참조하세요.

## Redshift 연합 쿼리를 위한 CloudFormation 스택 시작
<a name="getting-started-federated-CF-stack"></a>

다음 절차에 따라 Amazon Redshift용 CloudFormation 스택을 시작하여 연합 쿼리를 사용합니다. 이렇게 하기 전에 Amazon Redshift 클러스터와 서버리스 Aurora PostgreSQL 인스턴스를 설정했는지 확인합니다.

**연합 쿼리용 CloudFormation 스택을 시작하려면**

1. 여기에서 [https://console.aws.amazon.com/cloudformation/home?#/stacks/new?stackName=FederatedQuery&templateURL=https://s3.amazonaws.com/redshift-downloads/docs-downloads/FederatedQuery.yml](https://console.aws.amazon.com/cloudformation/home?#/stacks/new?stackName=FederatedQuery&templateURL=https://s3.amazonaws.com/redshift-downloads/docs-downloads/FederatedQuery.yml)을 클릭하여 AWS Management Console에서 CloudFormation 서비스를 시작합니다.

   메시지가 나타나면 로그인합니다.

   Amazon S3에 저장된 CloudFormation 템플릿 파일을 참조하여 스택 생성 프로세스가 시작됩니다. CloudFormation *템플릿*은 스택을 구성하는 AWS 리소스를 선언하는 JSON 형식의 텍스트 파일입니다.

1. **다음(Next)**을 선택하여 스택 세부 정보를 입력합니다.

1. **파라미터(Parameters)**에서 클러스터에 대해 다음을 입력합니다.
   + Amazon Redshift 클러스터 이름(예: **ra3-consumer-cluster**)
   + 특정 데이터베이스 이름(예: **dev**)
   + 데이터베이스 사용자의 이름입니다(예: **consumeruser**).

   또한 사용자, 데이터베이스 이름, 포트 및 엔드포인트를 포함하여 Aurora DB 클러스터 데이터베이스에 대한 파라미터를 입력합니다. 스택은 여러 데이터베이스 객체를 생성하므로 테스트 클러스터와 테스트 서버리스 데이터베이스를 사용하는 것이 좋습니다.

   **다음**을 선택합니다.

   스택 옵션이 나타납니다.

1. **다음(Next)**을 선택하여 기본 설정을 적용합니다.

1. **기능(Capabilities)**에서 **AWS CloudFormation에서 IAM 리소스를 생성할 수 있음을 승인합니다(I acknowledge that AWS CloudFormation might create IAM resources)**를 선택합니다.

1. **스택 생성**을 선택합니다.

**스택 생성**을 선택합니다. CloudFormation은 약 10분 정도 소요되는 템플릿 리소스를 프로비저닝하고 외부 스키마를 생성합니다.

스택이 생성되는 동안 오류가 발생하면 다음을 수행합니다.
+ 오류 해결에 도움이 되는 정보는 CloudFormation **이벤트(Events)** 탭을 참조합니다.
+ Redshift 클러스터에 대해 올바른 이름, 데이터베이스 이름 및 데이터베이스 사용자 이름을 입력했는지 확인합니다. 또한 Aurora PostgreSQL 인스턴스의 파라미터도 확인합니다.
+ 클러스터에 RA3 노드가 있는지 확인합니다.
+ 데이터베이스와 Redshift 클러스터가 동일한 서브넷 및 보안 그룹에 있는지 확인합니다.

## 외부 스키마에서 데이터 쿼리
<a name="getting-started-federated-CF-stack-query"></a>

다음 절차를 사용하려면 설명된 클러스터와 데이터베이스에서 쿼리를 실행하는 데 필요한 권한이 있는지 확인해야 합니다.

**연합 쿼리를 사용하여 외부 데이터베이스를 쿼리하려면**

1. Redshift 쿼리 편집기와 같은 클라이언트 도구를 사용하여 스택을 생성할 때 입력한 Redshift 데이터베이스에 연결합니다.

1. 스택에서 생성한 외부 스키마를 쿼리합니다.

   ```
   select * from svv_external_schemas;
   ```

   [SVV\$1EXTERNAL\$1SCHEMAS](r_SVV_EXTERNAL_SCHEMAS.md) 보기는 사용 가능한 외부 스키마에 대한 정보를 반환합니다. 이 경우 스택에 의해 생성된 외부 스키마 `myfederated_schema`가 반환됩니다. 설정한 경우 다른 외부 스키마가 반환될 수도 있습니다. 보기는 스키마의 연결된 데이터베이스도 반환합니다. 데이터베이스는 스택을 생성할 때 입력한 Aurora DB 클러스터 데이터베이스입니다. 스택은 Aurora DB 클러스터 데이터베이스에 `category`라는 테이블과 `sales`라는 또 다른 테이블을 추가합니다.

1. Aurora PostgreSQL 데이터베이스를 참조하는 외부 스키마의 테이블에서 SQL 쿼리를 실행합니다. 다음 예에서는 쿼리를 보여줍니다.

   ```
   SELECT count(*) FROM myfederated_schema.category;
   ```

   `category` 테이블은 여러 레코드를 반환합니다. `sales` 테이블에서 레코드를 반환할 수도 있습니다.

   ```
   SELECT count(*) FROM myfederated_schema.sales;
   ```

   더 많은 예시는 [연합 쿼리 사용 예](federated_query_example.md)를 참조합니다.