

 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란 무엇입니까?
<a name="welcome"></a>

*Amazon Redshift 관리 가이드*입니다. Amazon Redshift는 클라우드에서 완전히 관리되는 페타바이트급 데이터 웨어하우스 서비스입니다. Amazon Redshift Serverless를 사용하면 프로비저닝된 데이터 웨어하우스를 구성하지 않아도 데이터를 액세스하고 분석할 수 있습니다. 리소스가 자동으로 프로비저닝하고 데이터 웨어하우스 용량이 지능적으로 크기 조정되어 가장 까다롭고 예측할 수 없는 워크로드에도 빠른 성능을 제공합니다. 데이터 웨어하우스가 유휴 상태일 때는 요금이 발생하지 않으므로 사용량에 대한 요금만 지불합니다. Amazon Redshift 쿼리 에디터 v2 또는 자주 사용하는 비즈니스 인텔리전스(BI) 도구에서 바로 데이터를 로드하고 쿼리를 시작할 수 있습니다. 사용하기 쉽고 관리가 필요 없는 환경에서 최고의 가격 대비 성능과 친숙한 SQL 기능을 활용하세요.

Amazon Redshift는 데이터 집합의 크기와 상관없이 오늘날 사용되는 것과 동일한 SQL 기반 도구 및 비즈니스 인텔리전스 애플리케이션을 사용하여 쿼리 성능을 가속화합니다.

## Amazon Redshift를 처음 사용하시나요?
<a name="are-you-a-firsttime-redshift-user"></a>

 Amazon Redshift를 처음 사용할 경우 먼저 다음 섹션을 읽을 것을 권장합니다.
+ [서비스 하이라이트 및 요금](https://aws.amazon.com/redshift/redshift-serverless) – 이 제품 세부 정보 페이지에서는 Amazon Redshift 가치 제안, 서비스 하이라이트 및 요금에 대해 알아봅니다.
+ [Amazon Redshift Serverless 데이터 웨어하우스 시작하기](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html) – 이 주제에서는 서버리스 데이터 웨어하우스를 설정하고, 리소스를 생성하고, 샘플 데이터를 쿼리하는 프로세스를 안내합니다.
+ [Amazon Redshift 데이터베이스 개발자 안내서](https://docs.aws.amazon.com/redshift/latest/dg/) - 데이터베이스 개발자를 위한 이 안내서에서는 데이터 웨어하우스를 구성하는 데이터베이스의 설계부터 빌드, 쿼리 및 유지 관리에 이르는 방법에 대해서 설명합니다.

Amazon Redshift 리소스를 수동으로 관리하려는 경우 데이터 쿼리 요구 사항에 맞게 프로비저닝된 클러스터를 생성할 수 있습니다. 자세한 내용은 [Amazon Redshift 클러스터](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html) 섹션을 참조하세요.

애플리케이션 개발자라면 Amazon Redshift API 또는 AWS 소프트웨어 개발 키트(SDK) 라이브러리를 사용하여 프로그래밍 방식으로 클러스터를 관리할 수 있습니다. Amazon Redshift API를 사용하는 경우에는 서명을 통해 API에 대한 모든 HTTP 또는 HTTPS 요청을 인증해야 합니다. MySQL 옵션에 대한 자세한 내용은 [HTTP 요청 서명](amazon-redshift-signing-requests.md) 섹션을 참조하세요.

 API, CLI 및 SDK에 대한 자세한 내용은 다음 링크에서 확인할 수 있습니다.
+ [Amazon Redshift Serverless API 참조](https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/Welcome.html)
+ [Amazon Redshift API 참조](https://docs.aws.amazon.com/redshift/latest/APIReference/)
+ [Amazon Redshift 데이터 API 참조](https://docs.aws.amazon.com/redshift-data/latest/APIReference/Welcome.html)
+ [AWS CLI 명령 참조](https://docs.aws.amazon.com/cli/latest/reference/)
+ [Amazon Web Services용 도구](https://aws.amazon.com/tools/)의 SDK 참조 자료

# Amazon Redshift Serverless 기능 개요
<a name="serverless-considerations"></a>

Amazon Redshift 프로비저닝된 데이터 웨어하우스에서 지원하는 대부분의 기능은 Amazon Redshift Serverless에서도 지원됩니다. 다음은 몇 가지 주요 기능입니다.


| 기능 | 설명 | 
| --- | --- | 
| **스냅샷** | Amazon Redshift Serverless의 스냅샷이나 프로비저닝된 데이터 웨어하우스를 Amazon Redshift Serverless로 복원할 수 있습니다. 자세한 내용은 [스냅샷 및 복구 시점](serverless-snapshots-recovery-points.md) 섹션을 참조하세요. | 
| **복구 시점 ** | Amazon Redshift Serverless는 30분마다 자동으로 복구 시점을 생성합니다. 이러한 복구 시점은 24시간 동안 보관됩니다. 실수로 작성하거나 삭제한 후 복구 시점을 사용하여 복원할 수 있습니다. 복구 시점에서 복원하면 Amazon Redshift Serverless 데이터베이스에 있는 모든 데이터가 이전 시점으로 복원됩니다. 더 오랜 기간 동안 복구 시점을 유지해야 하는 경우 복구 시점에서 스냅샷을 생성할 수도 있습니다. 자세한 내용은 [스냅샷 및 복구 시점](serverless-snapshots-recovery-points.md) 섹션을 참조하세요. | 
| **기본 RPU 용량** | Redshift 처리 장치(RPU)로 기본 용량을 설정할 수 있습니다. 1RPU는 16GB의 메모리를 제공합니다. 이 설정을 사용하면 사용 중인 리소스와 워크로드 비용 간의 균형을 조절할 수 있습니다. 이 값을 늘려 사용 가능한 리소스를 늘리고 쿼리 성능을 개선하거나 이 값을 낮추어 지출을 제한할 수 있습니다. 기본값은 128RPU입니다. 하루에 사용되는 RPU와 같은 사용량 한도를 설정하여 비용을 관리할 수도 있습니다. 자세한 내용은 [Amazon Redshift Serverless에 대한 청구](serverless-billing.md) 섹션을 참조하세요. | 
| **데이터 공유의 사용량 한도** | 콘솔 또는 API를 사용하여 생산자 리전에서 소비자 리전으로 전송되는 데이터의 양을 제한할 수 있습니다. 이 데이터 전송 비용은 AWS 리전에 따라 다르며 테라바이트 단위로 측정됩니다. 데이터 공유에 대한 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [콘솔을 사용하여 데이터 공유 시작하기](https://docs.aws.amazon.com/redshift/latest/dg/getting-started-datashare-console.html)를 참조하세요. | 
| **사용자 정의 함수(UDF)** | Amazon Redshift Serverless에서 사용자 정의 함수(UDF)를 실행할 수 있습니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [사용자 정의 함수 생성](https://docs.aws.amazon.com//redshift/latest/dg/user-defined-functions.html)을 참조하세요. | 
| **저장 프로시저** | Amazon Redshift Serverless에서 저장 프로시저를 실행할 수 있습니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [저장 프로시저 생성](https://docs.aws.amazon.com//redshift/latest/dg/stored-procedure-overview.html)을 참조하세요. | 
| **구체화된 보기** | Amazon Redshift Serverless에서 구체화된 보기를 생성할 수 있습니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [구체화된 보기 생성](https://docs.aws.amazon.com//redshift/latest/dg/materialized-view-overview.html)을 참조하세요. | 
| **공간 함수** | Amazon Redshift Serverless에서 공간 함수를 실행할 수 있습니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [공간 데이터 쿼리](https://docs.aws.amazon.com//redshift/latest/dg/geospatial-overview.html)를 참조하세요. | 
| **페더레이션 쿼리** | Amazon Redshift Serverless에서 쿼리를 실행하여 Aurora DB 클러스터 및 Amazon RDS 데이터베이스와 데이터를 조인할 수 있습니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [연합 쿼리를 사용하여 데이터 쿼리](https://docs.aws.amazon.com//redshift/latest/dg/federated-overview.html)를 참조하세요. | 
| **데이터 레이크 쿼리** | Amazon Redshift Serverless에서 쿼리를 실행하여 Amazon S3 데이터 레이크와 데이터를 조인할 수 있습니다. 자세한 정보는 *Amazon Redshift 관리 가이드*의 [데이터 레이크 쿼리하기](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor-v2-querying-data-lake.html) 섹션을 참조하세요. | 
| **HyperLogLog** | Amazon Redshift Serverless에서 HyperLogLog 함수를 실행할 수 있습니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [HyperLogLog 스케치 사용](https://docs.aws.amazon.com//redshift/latest/dg/hyperloglog-overview.html)을 참조하세요. | 
| **데이터베이스 간 데이터 쿼리** | Amazon Redshift Serverless에서 데이터베이스 전반에 걸쳐 데이터를 쿼리할 수 있습니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [데이터베이스 간 데이터 쿼리](https://docs.aws.amazon.com//redshift/latest/dg/cross-database-overview.html)를 참조하세요. | 
| **데이터 공유** | Amazon Redshift Serverless에서 프로비저닝된 클러스터의 데이터 공유에 액세스할 수 있습니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [클러스터 간 데이터 공유](https://docs.aws.amazon.com//redshift/latest/dg/datashare-overview.html)를 참조하세요. | 
| **반정형 데이터 쿼리** | Amazon Redshift Serverless에서 `SUPER` 데이터 형식으로 반정형 데이터를 수집하고 저장할 수 있습니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [반정형 데이터 수집 및 쿼리](https://docs.aws.amazon.com//redshift/latest/dg/super-overview.html)를 참조하세요. | 
| **리소스에 태그 지정** | AWS CLI 또는 Amazon Redshift Serverless API를 통해 리소스와 관련된 메타데이터를 사용하여 리소스에 태그를 지정할 수 있습니다. 자세한 내용은 [리소스에 태그 지정](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-tagging-resources.html) 섹션을 참조하세요. | 
| **기계 학습** | Amazon Redshift Serverless에서 Amazon Redshift 기계 학습을 사용할 수 있습니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [기계 학습 사용](https://docs.aws.amazon.com//redshift/latest/dg/machine_learning.html)을 참조하세요. | 
| **SQL 명령 및 함수** | 몇 가지 예외(예: `REBOOT_CLUSTER`)를 제외하고는 Amazon Redshift Serverless에서 Amazon Redshift SQL 명령 및 함수를 사용할 수 있습니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [SQL 참조](https://docs.aws.amazon.com//redshift/latest/dg/cm_chap_SQLCommandRef.html)를 참조하세요. | 
| **CloudFormation 리소스** | CloudFormation 템플릿을 사용하여 Amazon Redshift Serverless 리소스를 배포하고 업데이트할 수 있습니다. 이 통합을 통해 리소스 관리에 소요되는 시간을 줄이고 애플리케이션에 집중할 수 있습니다. Amazon Redshift Serverless의 CloudFormation 리소스에 대한 자세한 내용은 [Amazon Redshift Serverless resource type reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_RedshiftServerless.html)(Amazon Redshift Serverless 리소스 유형 참조)를 참조하세요. | 
| **CloudTrail 리소스** | Amazon Redshift Serverless는 Amazon Redshift Serverless에서 수행한 작업의 기록을 제공하기 위해 AWS CloudTrail과 통합됩니다. CloudTrail은 Amazon Redshift Serverless에 대한 모든 API 호출을 이벤트로 캡처합니다. 자세한 내용은 [Amazon Redshift Serverless용 CloudTrail](https://docs.aws.amazon.com/redshift/latest/mgmt/logging-with-cloudtrail.html)을 참조하세요. | 

# Amazon Redshift 프로비저닝 클러스터 개요
<a name="overview"></a>

Amazon Redshift 서비스는 데이터 웨어하우스의 설정, 운영 및 조정 작업을 모두 관리합니다. 이 태스크 중에는 용량 프로비저닝과 클러스터 모니터링 및 백업, 그리고 Amazon Redshift 엔진의 패치 및 업그레이드도 포함됩니다.

다음 동영상은 Amazon Redshift 쿼리 에디터 v2를 사용하여 클러스터를 생성하고 데이터를 쿼리 하는 방법을 보여줍니다.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/8b58xGDHIog/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/8b58xGDHIog)


## 클러스터 관리
<a name="rs-overview-cluster-management"></a>

Amazon Redshift 클러스터는 리더 노드 1개와 컴퓨팅 노드 1개 이상으로 구성된 노드 집합입니다. 필요한 컴퓨팅 노드 유형 및 수는 데이터의 크기와 실행할 쿼리 수 그리고 필요한 쿼리 런타임 성능에 따라 결정됩니다.

### 클러스터 생성 및 관리
<a name="rs-overview-create-and-manage-clusters"></a>

데이터 웨어하우징 요건에 따라 처음에는 소규모의 단일 노드 클러스터로 시작하여 요건이 바뀌면서 대규모의 다중 노드 클러스터로 쉽게 확장할 수 있습니다. 또한 서비스 중단 없이 컴퓨팅 노드를 클러스터에 추가하거나 제거할 수도 있습니다. 자세한 내용은 [Amazon Redshift 프로비저닝 클러스터](working-with-clusters.md) 섹션을 참조하세요.

### 컴퓨팅 노드 예약
<a name="rs-overview-reserve-compute-nodes"></a>

클러스터를 1년 이상 계속해서 실행할 계획이라면 컴퓨팅 노드를 1년 또는 3년 단위로 예약하여 비용을 줄일 수 있습니다. 컴퓨팅 노드를 예약하면 온디맨드 방식으로 프로비저닝하여 시간 단위로 요금을 지불하는 것과 비교하여 비용 절감 효과가 매우 큽니다. 자세한 내용은 [예약 노드](purchase-reserved-node-instance.md) 섹션을 참조하세요.

### 클러스터 스냅샷 생성
<a name="rs-overview-create-cluster-snapshots"></a>

스냅샷은 클러스터의 특정 시점 백업입니다. 자동 및 수동의 2가지 유형의 스냅샷이 있습니다. Amazon Redshift는 암호화된 보안 소켓 계층(SSL) 연결을 사용하여 이러한 스냅샷을 Amazon Simple Storage Service(Amazon S3)에 내부적으로 저장합니다. 스냅샷에서 복원해야 하는 경우에는 Amazon Redshift가 새로운 클러스터를 생성하고 지정한 스냅샷에서 데이터를 가져옵니다. 스냅샷 복사에 대한 자세한 내용은 [Amazon Redshift 스냅샷 및 백업](working-with-snapshots.md) 섹션을 참조하세요

## 클러스터 액세스 및 보안
<a name="rs-overview-cluster-access-and-security"></a>

Amazon Redshift에는 클러스터 액세스 및 보안과 관련된 기능이 몇 가지 있습니다. 이러한 기능들은 클러스터에 대한 액세스를 제어하고, 연결 규칙을 정의하고, 데이터 및 연결을 암호화하는 데 효과적입니다. 또한 Amazon Redshift의 데이터베이스 액세스 및 보안 관련 기능만으로 그치지 않습니다. 데이터베이스 보안에 대한 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [데이터베이스 보안 관리](https://docs.aws.amazon.com/redshift/latest/dg/r_Database_objects.html) 섹션을 참조하세요.

### AWS 계정 및 IAM 자격 증명
<a name="rs-overview-aws-accounts-and-iam-credentials"></a>

기본적으로 Amazon Redshift 클러스터는 클러스터를 생성한 AWS 계정에서만 액세스가 가능합니다. 그 밖의 다른 계정에서는 액세스할 수 없도록 클러스터가 잠깁니다. AWS 계정에서는 AWS Identity and Access Management(IAM) 서비스를 사용하여 사용자 계정을 생성하거나, 혹은 클러스터 작업에 대한 계정의 제어 권한을 관리할 수 있습니다. 자세한 내용은 [Amazon Redshift의 보안](iam-redshift-user-mgmt.md) 섹션을 참조하세요. IAM 역할에 대한 지침 및 모범 사례를 비롯한 IAM ID 관리에 대한 자세한 내용은 [Amazon Redshift의 Identity and Access Management](redshift-iam-authentication-access-control.md) 섹션을 참조하세요.

### 보안 그룹
<a name="rs-overview-security-groups"></a>

기본적으로 생성하는 모든 클러스터는 모든 사용자에게 닫힙니다. IAM 자격 증명은 Amazon Redshift 콘솔, 명령줄 인터페이스(CLI), API 및 SDK와 같은 Amazon Redshift API 관련 리소스에 대한 액세스만 제어합니다. SQL 클라이언트 도구에서 JDBC 또는 ODBC를 통해 클러스터에 액세스하기 위해서는 다음과 같이 보안 그룹을 사용해야 합니다.
+ Amazon Redshift 클러스터에 EC2-VPC 플랫폼을 사용하는 경우에는 VPC 보안 그룹을 사용해야 합니다. EC2-VPC 플랫폼에서 클러스터를 시작하는 것이 좋습니다.

  EC2-Classic을 사용하여 클러스터를 시작한 후 클러스터를 VPC로 이동할 수 없습니다. 그러나 Amazon Redshift 콘솔을 사용하여 EC2-Classic 스냅샷을 EC2-VPC 클러스터로 복원할 수 있습니다. 자세한 내용은 [스냅샷에서 클러스터 복원](working-with-snapshot-restore-cluster-from-snapshot.md) 섹션을 참조하세요.
+ Amazon Redshift 클러스터에 EC2-Classic 플랫폼을 사용하는 경우에는 Amazon Redshift 보안 그룹을 사용해야 합니다.

위의 두 경우 모두 특정 범위의 CIDR/IP 주소에 명시적인 인바운드 액세스 권한을 부여하는 규칙을 보안 그룹에 또는 Amazon EC2 인스턴스에서 SQL 클라이언트를 실행하는 경우에는 Amazon Elastic Compute Cloud(Amazon EC2) 보안 그룹에 추가합니다. 자세한 내용은 [Amazon Redshift 보안 그룹](security-network-isolation.md#working-with-security-groups) 섹션을 참조하세요.

인바운드 액세스 규칙 외에도 데이터베이스 사용자를 생성하여 클러스터 자체의 데이터베이스 인증을 위한 자격 증명을 제공합니다. 자세한 내용은 이번 주제에서 전반부 [데이터베이스 수](#rs-overview-databases) 섹션을 참조하세요.

### 암호화
<a name="rs-overview-encryption"></a>

클러스터를 프로비저닝할 때 옵션으로 클러스터 암호화를 선택하여 보안을 강화할 수 있습니다. 암호화를 사용하면 Amazon Redshift가 모든 데이터를 암호화하여 사용자 생성 테이블에 저장합니다. AWS Key Management Service(AWS KMS)를 사용하여 Amazon Redshift 암호화 키를 관리할 수 있습니다.

암호화는 변경 불가능한 클러스터 속성입니다. 암호화된 클러스터를 암호화되지 않은 클러스터로 전환하려면 데이터를 언로드한 후 새로운 클러스터에 다시 로드하는 방법이 유일합니다. 암호화는 클러스터와 모든 백업에 적용됩니다. 암호화된 스냅샷에서 클러스터를 복원하면 복원된 클러스터 역시 암호화됩니다.

암호화, 키 및 하드웨어 보안 모듈에 대한 자세한 내용은 [Amazon Redshift 데이터베이스 암호화](working-with-db-encryption.md) 섹션을 참조하세요.

### SSL 연결
<a name="rs-overview-ssl-connections"></a>

SSL(Secure Sockets Layer) 암호화를 사용하여 SQL 클라이언트와 클러스터 사이의 연결을 암호화할 수 있습니다. 자세한 내용은 [연결을 위한 보안 옵션 구성](connecting-ssl-support.md) 섹션을 참조하세요.

## 클러스터 모니터링
<a name="rs-overview-monitoring-clusters"></a>

Amazon Redshift에는 모니터링과 관련된 기능이 몇 가지 있습니다. 데이터베이스 감사 로깅을 사용하여 활동 로그를 생성하고 이벤트 및 알림 구독을 구성하여 관심 있는 정보를 추적할 수 있습니다. 클러스터와 데이터베이스의 상태 및 성능에 대해 알아보려면 Amazon Redshift 및 Amazon CloudWatch의 지표를 사용합니다.

### 데이터베이스 감사 로깅
<a name="rs-overview-database-audit-logging"></a>

데이터베이스 감사 로깅 기능을 사용하여 인증 시도 횟수, 연결, 차단, 데이터베이스 사용자 정의 변경, 데이터베이스에서 실행된 쿼리 등에 대한 정보를 추적할 수 있습니다. 이러한 정보는 Amazon Redshift에서 보안 및 문제 해결 용도로 사용하는 데 유익합니다. 로그는 Amazon S3 버킷에 저장됩니다. 자세한 내용은 [데이터베이스 감사 로깅](db-auditing.md) 섹션을 참조하세요.

### 이벤트 및 알림
<a name="rs-overview-events-and-notifications"></a>

Amazon Redshift는 이벤트를 추적하여 이벤트 관련 정보를 AWS 계정에 몇 주간 저장합니다. 또한 이벤트가 있을 때마다 Amazon Redshift는 이벤트 발생 날짜, 설명, 이벤트 소스(클러스터, 파라미터 그룹 또는 스냅샷), 소스 ID 등의 정보를 보고합니다. 이벤트 필터 집합을 지정하여 Amazon Redshift 이벤트 알림 구독을 생성할 수 있습니다. 이후 필터 기준과 일치하는 이벤트가 발생하면 Amazon Redshift가 Amazon Simple Notification Service를 사용하여 이벤트 발생 사실을 알립니다. 이벤트에 대한 자세한 내용은 [Amazon Redshift 이벤트](working-with-events.md) 섹션을 참조하세요.

### 성능
<a name="rs-overview-performance"></a>

Amazon Redshift는 클러스터와 데이터베이스의 상태 및 성능을 추적할 수 있도록 성능 지표와 데이터를 제공합니다. Amazon Redshift는 Amazon CloudWatch 지표를 사용하여 CPU 사용량, 지연 시간, 처리량 등 클러스터의 물리적 요소를 모니터링합니다. Amazon Redshift는 또한 클러스터의 데이터베이스 활동을 모니터링하는 데 도움이 되는 쿼리 및 로드 성능 데이터를 제공합니다. 성능 지표 및 모니터링에 대한 자세한 내용은 [Amazon Redshift 클러스터 성능 모니터링](metrics.md) 섹션을 참조하세요.

## 데이터베이스 수
<a name="rs-overview-databases"></a>

Amazon Redshift는 클러스터를 프로비저닝할 때 데이터베이스를 1개 생성합니다. 이때 생성된 데이터베이스가 데이터를 로드하거나, 데이터에 대한 쿼리를 실행할 때 사용됩니다. 그 밖에 데이터베이스가 추가로 필요하다면 SQL 명령을 실행하여 생성할 수 있습니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [1단계: 데이터베이스 생성](https://docs.aws.amazon.com/redshift/latest/dg/t_creating_database.html)을 참조하세요.

클러스터를 프로비저닝할 때는 클러스터에 생성되는 모든 데이터베이스에 액세스할 수 있는 관리자를 지정합니다. 이 관리자는 처음부터 데이터베이스 액세스 권한을 갖는 유일한 사용자이자 슈퍼 사용자입니다. 단, 관리자는 슈퍼 사용자와 사용자를 추가로 생성할 수 있습니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [슈퍼 사용자](https://docs.aws.amazon.com/redshift/latest/dg/r_superusers.html)와 [사용자](https://docs.aws.amazon.com/redshift/latest/dg/r_Users.html)를 참조하세요.

Amazon Redshift는 파라미터 그룹을 사용하여 데이터 표현 방식이나 부동 소수점 정밀도 같이 클러스터에 속한 모든 데이터베이스의 동작을 정의합니다. 클러스터를 프로비저닝하면서 파라미터 그룹을 지정하지 않으면 Amazon Redshift가 기본 파라미터 그룹을 클러스터와 연결합니다. 자세한 내용은 [Amazon Redshift 파라미터 그룹](working-with-parameter-groups.md) 섹션을 참조하세요.

Amazon Redshift의 데이터베이스에 대한 자세한 내용은 [Amazon Redshift 데이터베이스 개발자 안내서](https://docs.aws.amazon.com/redshift/latest/dg/)를 참조하세요.

# Amazon Redshift Serverless를 Amazon Redshift 프로비저닝된 데이터 웨어하우스와 비교
<a name="serverless-console-comparison"></a>

Amazon Redshift Serverless는 일부 개념 및 기능이 Amazon Redshift Redshift 프로비저닝된 데이터 웨어하우스와 다릅니다. 예를 들어, Amazon Redshift Serverless에는 클러스터나 노드의 개념이 없습니다. 다음 테이블에서는 Amazon Redshift Serverless의 기능과 동작을 설명하고 프로비저닝된 클러스터의 해당 기능과 비교하여 차이점을 설명합니다.


| 기능 | 설명 | 서버리스 | 프로비저닝됨 | 
| --- | --- | --- | --- | 
| **작업 그룹 및 네임스페이스** | Amazon Redshift Serverless 내에서 워크로드를 격리하고 다양한 리소스를 관리하려면 네임스페이스와 작업 그룹을 생성하고 스토리지 리소스와 컴퓨팅 리소스를 별도로 관리하면 됩니다. | 네임스페이스는 데이터베이스 객체와 사용자의 모음입니다. 작업 그룹은 컴퓨팅 리소스의 모음입니다. 자세한 내용을 알아보고 Amazon Redshift Serverless의 설계를 이해하려면 [Amazon Redshift Serverless](working-with-serverless.md)를 참조하세요. | 프로비저닝된 클러스터는 사용자가 직접 관리하는 컴퓨팅 노드와 리더 노드의 모음입니다. 자세한 내용은 [Amazon Redshift 프로비저닝 클러스터](working-with-clusters.md) 섹션을 참조하세요. | 
| **노드 유형** | Amazon Redshift Serverless를 사용하는 경우 프로비저닝된 Amazon Redshift 클러스터를 사용할 때와 마찬가지로 노드 유형을 선택하거나 노드 수를 지정하지 않습니다. | Amazon Redshift Serverless에서 자동으로 용량을 프로비저닝하고 관리합니다. 선택적으로 기본 데이터 웨어하우스 용량을 지정하여 워크로드에 적합한 가격과 성능의 균형을 선택할 수 있습니다. 또한 최대 RPU 시간을 지정하여 비용을 예측할 수 있도록 비용 제어를 설정할 수 있습니다. 자세한 내용은 [Amazon Redshift Serverless의 컴퓨팅 용량](serverless-capacity.md) 섹션을 참조하세요. | 비용 및 성능 사양을 충족하는 노드 유형으로 클러스터를 구축합니다. 자세한 내용은 [Amazon Redshift 프로비저닝 클러스터](working-with-clusters.md) 섹션을 참조하세요. | 
| **워크로드 관리 및 동시성 확장** | Amazon Redshift는 부하가 높은 기간에도 확장할 수 있습니다. 또한 Amazon Redshift Serverless는 간헐적인 고부하 기간에 맞춰 확장할 수 있습니다. | Amazon Redshift Serverless는 자동으로 리소스를 효율적으로 관리하며 비용 제어 임계값 내에서 워크로드에 따라 확장합니다. 자세한 내용은 [컴퓨팅 용량에 대한 결제](serverless-billing.md#serverless-rpu-billing) 섹션을 참조하세요. | 프로비저닝된 데이터 웨어하우스를 사용하면 클러스터에서 동시성 확장을 활성화하여 고부하 기간을 처리할 수 있습니다. 자세한 내용은 [동시성 확장](https://docs.aws.amazon.com/redshift/latest/dg/concurrency-scaling.html)을 참조하세요. | 
| **포트** | 연결하는 데 사용하는 포트 번호입니다. | Amazon Redshift Serverless를 사용하면 포트 범위 5431\$15455 또는 8191\$18215에서 다른 포트로 변경할 수 있습니다. 자세한 내용은 [Amazon Redshift 서버리스에 연결](serverless-connecting.md) 섹션을 참조하세요. | 프로비저닝된 클러스터에서는 연결할 포트를 선택할 수 있습니다. | 
| **크기 조정** | 워크로드에 적합한 성능을 낼 수 있도록 컴퓨팅 리소스를 추가 또는 제거합니다. | Amazon Redshift Serverless에는 크기 조정이 적용되지 않습니다. 그러나 가격 및 성능 요구 사항에 따라 기본 데이터 웨어하우스 RPU 용량을 변경할 수 있습니다. 자세한 내용은 [Amazon Redshift Serverless의 컴퓨팅 용량](serverless-capacity.md) 섹션을 참조하세요. | 프로비저닝된 클러스터에서는 클러스터 크기 조정을 수행하여 노드를 추가하거나 제거할 수 있습니다. 자세한 내용은 [Amazon Redshift에서 클러스터 관리 개요](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-cluster-operations.html)를 참조하세요. | 
| **일시 중지 및 다시 시작** | 실행할 워크로드가 없을 때는 프로비저닝된 클러스터를 일시 중지하여 비용을 절감할 수 있습니다. | Amazon Redshift Serverless를 사용하는 경우 쿼리 실행에 대해서만 비용을 결제하므로 일시 중지하거나 다시 시작할 필요가 없습니다. 자세한 내용은 [컴퓨팅 용량에 대한 결제](serverless-billing.md#serverless-rpu-billing) 섹션을 참조하세요. | 다양한 시간에서의 워크로드 평가를 기반으로 클러스터를 수동으로 일시 중지하고 다시 시작할 수 있습니다. 자세한 내용은 [Amazon Redshift에서 클러스터 관리 개요](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-cluster-operations.html)를 참조하세요. | 
| **스펙트럼 쿼리를 사용하여 외부 데이터 쿼리** | Amazon S3 버킷의 데이터를 JSON과 같은 다양한 형식으로 쿼리할 수 있습니다. | 컴퓨팅 리소스가 워크로드를 처리할 때는 요금이 발생합니다. 다른 트랜잭션과 마찬가지로 Redshift Spectrum 데이터가 쿼리될 때 요금이 발생합니다. 자세한 내용은 [컴퓨팅 용량에 대한 결제](serverless-billing.md#serverless-rpu-billing) 섹션을 참조하세요. | 프로비저닝된 데이터 웨어하우스에서는 Amazon Redshift Spectrum 용량이 Amazon Redshift 클러스터에서 쿼리되는 별도의 서버에 존재합니다. 자세한 내용은 [Amazon Redshift Spectrum을 사용하여 외부 데이터 쿼리](https://docs.aws.amazon.com/redshift/latest/dg/c-using-spectrum.html)를 참조하세요. | 
| **컴퓨팅 리소스 요금** | Amazon Redshift와 Amazon Redshift Serverless의 요금 청구 금액 비교. | Amazon Redshift Serverless에서는 실행하는 워크로드에 대해 초 단위의 RPU 시간 당 비용이 결제되며, 최소 요금 단위는 60초입니다. 여기에는 Amazon S3에서 열린 파일 형식의 데이터에 액세스하는 쿼리가 포함됩니다. 자세한 내용은 [컴퓨팅 용량에 대한 결제](serverless-billing.md#serverless-rpu-billing) 섹션을 참조하세요. | 프로비저닝된 클러스터에서는 클러스터가 일시 중지되지 않을 때 초당 요금이 발생합니다. | 
| **유지 관리 윈도우** | 서버 유지 관리 작동 방식. | Amazon Redshift Serverless에는 유지 관리 기간이 없습니다. 업데이트는 원활하게 처리됩니다. 자세한 내용은 [Amazon Redshift Serverless란 무엇인가요?](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-whatis.html)를 참조하세요. | 프로비저닝된 클러스터에서는 패치가 발생할 때 유지 관리 기간을 지정합니다. 일반적으로 사용량이 적을 때 반복 시간을 선택합니다. | 
| **암호화** | 데이터베이스 암호화를 활성화할 수 있습니다. | Amazon Redshift Serverless는 항상 AWS KMS(AWS 관리형 또는 고객 관리형 키 사용)를 사용하여 암호화됩니다. | 프로비저닝된 데이터 웨어하우스의 데이터는 AWS KMS(AWS 관리형 또는 고객 관리형 키 사용)를 사용하여 암호화될 수도 있고 암호화되지 않을 수도 있습니다. [Amazon Redshift 데이터베이스 암호화](working-with-db-encryption.md)을(를) 참조하세요. | 
| **스토리지 요금** | 스토리지 요금 산정 방식. | Amazon Redshift Serverless. 요금은 월별 용량(GB)에 따라 계산됩니다. [컴퓨팅 용량에 대한 결제](serverless-billing.md#serverless-rpu-billing)을(를) 참조하세요. |  RA3 노드가 있는 프로비저닝된 클러스터에서 스토리지는 컴퓨팅 리소스와 별도 요금이 발생합니다. | 
| **사용자 관리** | 사용자 관리 방법. | Amazon Redshift Serverless에서 사용자는 IAM 또는 Redshift 사용자입니다. 자세한 내용은 [Amazon Redshift Serverless의 Identity and Access Management](serverless-iam.md) 섹션을 참조하세요. IAM 역할에 대한 모범 사례를 비롯한 IAM ID 관리에 대한 자세한 내용은 [Amazon Redshift의 Identity and Access Management](redshift-iam-authentication-access-control.md) 섹션을 참조하세요. | 프로비저닝된 데이터 웨어하우스에서 사용자는 IAM 또는 Redshift 사용자입니다. 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서**의 [데이터베이스 보안 관리](https://docs.aws.amazon.com/redshift/latest/dg/r_Database_objects.html)를 참조하세요. IAM 역할에 대한 모범 사례를 비롯한 IAM ID 관리에 대한 자세한 내용은 [Amazon Redshift의 Identity and Access Management](redshift-iam-authentication-access-control.md) 섹션을 참조하세요. | 
| **JDBC/ODBC 도구 및 호환성** | 클라이언트 연결 작동 방식. | Amazon Redshift Serverless는 JDBC 또는 ODBC 호환 도구 또는 클라이언트 애플리케이션과 호환됩니다. 드라이버에 대한 자세한 내용은 *Amazon Redshift 관리 가이드*의 [연결 구성](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html) 섹션을 참조하세요. Amazon Redshift Serverless에 연결하는 방법에 대한 자세한 내용은 [Redshift 서버리스에 연결](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-connecting.html)을 참조하세요. | 프로비저닝된 Amazon Redshift는 JDBC 또는 ODBC 호환 도구 또는 클라이언트 애플리케이션과 호환됩니다. 드라이버에 대한 자세한 내용은 *Amazon Redshift 관리 가이드*의 [연결 구성](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html) 섹션을 참조하세요. 클러스터 연결에 관한 자세한 내용은 [SQL 클라이언트 도구를 사용하여 Amazon Redshift 데이터 웨어하우스에 연결](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-to-cluster.html)을 참조하세요. | 
| **로그인 시 보안 인증 요구** | 보안 인증 정보 처리 방법. | Amazon Redshift Serverless의 경우 모든 인스턴스에서 보안 인증 정보를 입력할 필요가 없습니다. 자세한 내용은 [Amazon Redshift 서버리스에 연결](serverless-connecting.md#serverless-connecting-endpoint) 섹션을 참조하세요. | Amazon Redshift에 액세스하려면 IAM 역할과 연결된 사용자의 로그인 자격 증명이 필요합니다. IAM 역할에는 프로비저닝된 데이터 웨어하우스에 대한 특정 권한이 부여됩니다. 인증된 사용자는 데이터베이스, Redshift 콘솔 및 쿼리 편집기 v2에 직접 연결할 수 있습니다. | 
| **데이터 API** | 웹 서비스 및 기타 애플리케이션에서 데이터에 액세스할 수 있습니다. | Amazon Redshift Serverless는 Amazon Redshift Data API를 지원합니다. Amazon Redshift Serverless에서는 `cluster-identity` 파라미터 대신 `workgroup-name` 파라미터를 사용합니다. 데이터 API 호출에 대한 자세한 내용은 [Amazon Redshift Data API 사용](data-api.md) 섹션을 참조하세요. | 프로비저닝된 Amazon Redshift는 Amazon Redshift Data API를 지원합니다. Amazon Redshift 클러스터에서는 `workgroup-name` 파라미터 대신 `cluster-identity` 파라미터를 사용합니다. 데이터 API 호출에 대한 자세한 내용은 [Amazon Redshift Data API 사용](data-api.md) 섹션을 참조하세요. | 
| **스냅샷** | 특정 시점으로 복구 기능을 제공합니다. | Amazon Redshift Serverless에서는 스냅샷 및 복구 시점을 지원합니다. 네임스페이스의 스냅샷 및 복구 시점에 대한 자세한 내용은 [스냅샷 및 복구 시점](serverless-snapshots-recovery-points.md) 섹션을 참조하세요. | 프로비저닝된 클러스터는 스냅샷을 지원합니다. 자세한 내용은 [콘솔을 사용한 클러스터 관리](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-snapshots-console.html)를 참조하세요. | 
| **데이터 공유** | 동일한 계정 또는 다른 계정의 데이터베이스 간에 데이터를 공유하는 기능을 제공합니다. | Amazon Redshift Serverless에서는 프로비저닝된 데이터 웨어하우스가 수행하는 모든 데이터 공유 기능을 지원합니다. Amazon Redshift Serverless와 프로비저닝된 데이터 웨어하우스, 도구 또는 클라이언트 애플리케이션 간의 데이터 공유도 지원합니다. | 프로비저닝된 클러스터에서는 교차 데이터베이스, 교차 계정, 교차 리전 및 AWS Data Exchange 데이터 공유를 지원합니다. 자세한 내용은 [Amazon Redshift에서 클러스터 간 데이터 공유](https://docs.aws.amazon.com/redshift/latest/dg/datashare-overview.html)를 참조하세요. | 
| **트랙** | 소프트웨어 업데이트 일정을 제공합니다. | Amazon Redshift Serverless에는 트랙에 대한 개념이 없습니다. 버전 및 업데이트는 서비스가 처리합니다. Amazon Redshift Serverless의 설계에 대한 자세한 내용은 [스냅샷 및 복구 시점](serverless-snapshots-recovery-points.md)를 참조하세요. | 프로비저닝된 클러스터에서는 현재 트랙과 후행 트랙 간 전환을 지원합니다. | 
| **시스템 테이블 및 뷰** | 리소스 및 시스템 메타데이터를 모니터링하는 방법을 제공합니다. | Amazon Redshift Serverless에서는 새 시스템 테이블 및 뷰를 지원합니다. 시스템 테이블에 대한 자세한 내용은 [Amazon Redshift Serverless로 쿼리 및 워크로드 모니터링쿼리 및 워크로드 모니터링](serverless-monitoring.md) 섹션을 참조하세요. 이전에 프로비저닝된 시스템 테이블 및 뷰를 사용하던 쿼리를 새 뷰를 사용하도록 마이그레이션하는 방법에 대한 자세한 내용은 [SYS 모니터링 뷰로 마이그레이션](https://docs.aws.amazon.com/redshift/latest/dg/sys_view_migration.html)을 참조하세요. | 프로비저닝된 데이터 웨어하우스는 모니터링 및 시스템 메타데이터가 필요한 기타 작업에 대한 기존 시스템 테이블 및 뷰 세트를 지원합니다. | 
| **파라미터 그룹** | 이것은 클러스터에서 생성되는 모든 데이터베이스에 적용되는 파라미터 그룹입니다. 이러한 파라미터가 쿼리 제한 시간이나 날짜 스타일 같은 데이터베이스 설정을 구성합니다. | Amazon Redshift Serverless에는 파라미터 그룹의 개념이 없습니다. | 프로비저닝된 데이터 웨어하우스는 파라미터 그룹을 지원합니다. 프로비저닝된 클러스터의 파라미터 그룹에 대한 자세한 내용은 [Amazon Redshift 파라미터 그룹](working-with-parameter-groups.md) 섹션을 참조하세요. | 
| **쿼리 모니터링** | 실행된 쿼리에 대한 시간 기반 보기를 제공합니다. | Amazon Redshift Serverless에 대한 쿼리 모니터링을 수행하려면 사용자가 데이터베이스에 연결하여 시스템 테이블을 사용해야 합니다. 따라서 쿼리 모니터링 및 시스템 테이블이 동기화됩니다. Amazon Redshift Serverless에 대한 시스템 테이블 쿼리는 쿼리 모니터링을 사용하기 위해 IAM 사용자에 매핑된 데이터베이스 사용자를 사용합니다. 쿼리 모니터링에 대한 자세한 내용은 [Amazon Redshift Serverless로 쿼리 및 워크로드 모니터링](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-monitoring.html)을 참조하세요. | 프로비저닝된 클러스터의 쿼리 모니터링은 시스템 테이블의 모든 데이터를 표시하지는 않습니다. | 
| **감사 로깅** | 연결 및 사용자 작업에 대한 정보를 데이터베이스에 기록합니다. | Amazon Redshift Serverless의 경우 CloudWatch가 감사 로그의 대상입니다. Amazon S3 기반의 감사 로그 전달은 Amazon Redshift Serverless에서 지원되지 않습니다. 자세한 내용은 [Amazon Redshift Serverless용 감사 로깅](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-audit-logging.html)을 참조하세요. | 프로비저닝된 클러스터의 경우 Amazon S3 기반의 감사 로그 전달이 표준이었습니다. 이제 CloudWatch로의 감사 로그 전달이 프로비저닝된 데이터 웨어하우스까지 확대 적용됩니다. | 
| **이벤트 알림** | Amazon EventBridge는 애플리케이션을 다양한 소스의 이벤트 데이터와 연결하는 데 사용할 수 있는 서버리스 이벤트 버스 서비스입니다. | Amazon Redshift Serverless는 Amazon EventBridge를 통해 이벤트 알림을 관리하여 데이터 웨어하우스의 변경 사항에 대한 최신 정보를 제공합니다. 자세한 내용은 [Amazon EventBridge로 Amazon Redshift Serverless 이벤트 알림](serverless-event-notifications-eventbridge.md) 섹션을 참조하세요. | 프로비저닝된 클러스터의 경우, Amazon Redshift 콘솔을 사용하여 이벤트 알림을 관리하고 이벤트 구독을 생성할 수 있습니다. 자세한 내용은 [이벤트 알림 구독 생성](event-subscribe.md) 섹션을 참조하세요. | 
| **커서 제약 조건** | Amazon Redshift는 모든 커서 결과 세트의 크기에 제약을 적용합니다. | Amazon Redshift Serverless의 커서 최대 총 결과 세트 크기는 150,000MB입니다. | 프로비저닝된 클러스터의 경우 커서 총 결과 세트의 최대 크기는 클러스터 유형에 따라 다릅니다. 자세한 내용은 [커서 제약 조건](https://docs.aws.amazon.com/redshift/latest/dg/declare.html#declare-constraints)을 참조하세요. | 

# 프로비저닝된 클러스터에 Amazon Redshift 관리 인터페이스 사용
<a name="using-aws-sdk"></a>

**참고**  
이 주제에서는 프로비저닝된 클러스터에 대한 Amazon Redshift 관리 인터페이스에 중점을 둡니다. Amazon Redshift Serverless와 Amazon Redshift Data API는 관리 인터페이스가 유사합니다.

Amazon Redshift는 AWS SDK, AWS Command Line Interface(AWS CLI), Amazon Redshift 관리 API 등 Amazon Redshift 클러스터를 생성, 관리 및 삭제하는 데 사용할 수 있는 여러 관리 인터페이스를 지원합니다.

**Amazon Redshift API** – 요청을 제출하여 이 Amazon Redshift 관리 API를 호출할 수 있습니다. 요청은 이름이 `GET`인 파라미터와 함께 HTTP 동사 `POST` 또는 `Action`를 사용하는 HTTP 또는 HTTPS 요청입니다. Amazon Redshift API 호출은 Amazon Redshift 서비스에 액세스할 수 있는 가장 직접적인 방법입니다. 그러나 이 방법을 사용하려면 애플리케이션에서 오류 처리 및 요청에 서명할 해시 생성 등과 같은 하위 수준의 세부 정보를 처리해야 합니다.
+ Amazon Redshift API 요청 작성 및 서명에 대한 자세한 내용은 [HTTP 요청 서명](amazon-redshift-signing-requests.md) 섹션을 참조하세요.
+ Amazon Redshift API 작업 및 데이터 형식에 대한 자세한 내용은 [Amazon Redshift API Reference](https://docs.aws.amazon.com/redshift/latest/APIReference/Welcome.html)를 참조하세요.

**AWS SDK** – AWS SDK를 사용하여 Amazon Redshift 클러스터 관련 작업을 수행할 수 있습니다. 일부 SDK 라이브러리에는 기본적인 Amazon Redshift API가 래핑되어 있습니다. 이러한 라이브러리들은 API 기능을 특정 프로그래밍 언어로 통합하여 서명 계산, 요청 재시도 횟수 처리, 오류 처리 등 비교적 중요하지 않은 세부 정보를 다수 처리합니다. SDK 라이브러리에서 래퍼(wrapper) 함수를 호출하면 Amazon Redshift 클러스터 관리용 애플리케이션의 개발 프로세스가 크게 간소화됩니다.
+ Amazon Redshift는 Java, .NET, PHP, Python, Ruby 및 Node.js용 AWS SDK에서 지원됩니다. Amazon Redshift에서 사용되는 래퍼 함수는 각 SDK의 참조 설명서에 기록되어 있습니다. AWS SDK 목록과 각 설명서 링크는 [Amazon Web Services용 도구](https://aws.amazon.com/tools/)에서 확인할 수 있습니다.
+ 본 안내서는 Java SDK를 사용한 Amazon Redshift 작업 예를 제공하고 있습니다. 보다 일반적인 AWS SDK 코드 예시는 [AWS SDK를 사용한 Amazon Redshift용 코드 예제](service_code_examples.md) 섹션을 참조하세요.

**AWS CLI** – CLI는 Windows, Mac 및 Linux 컴퓨터에서 AWS 서비스를 관리하는 데 사용할 수 있는 일련의 명령줄 도구를 제공합니다. AWS CLI에는 Amazon Redshift API 작업에 따른 명령이 포함되어 있습니다.
+ Amazon Redshift CLI 설치 및 설정에 대한 자세한 내용은 [Amazon Redshift CLI 설정](setting-up-rs-cli.md) 섹션을 참조하세요.
+ Amazon Redshift CLI 명령에 대한 참조 자료는 *AWS CLI Reference*의 [Amazon Redshift](https://docs.aws.amazon.com/cli/latest/reference/redshift/index.html)를 참조하세요.

# AWS SDK와 함께 이 서비스 사용
<a name="sdk-general-information-section"></a>

다양한 프로그래밍 언어에 대해 AWS 소프트웨어 개발 키트(SDK)를 사용할 수 있습니다. 각 SDK는 개발자가 선호하는 언어로 애플리케이션을 쉽게 구축할 수 있도록 하는 API, 코드 예제 및 설명서를 제공합니다.


| SDK 설명서 | 코드 예제 | 
| --- | --- | 
| [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/sdk-for-cpp) | [AWS SDK for C\$1\$1 코드 예제](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp) | 
| [AWS CLI](https://docs.aws.amazon.com/cli) | [AWS CLI 코드 예제](https://docs.aws.amazon.com/code-library/latest/ug/cli_2_code_examples.html) | 
| [AWS SDK for Go](https://docs.aws.amazon.com/sdk-for-go) | [AWS SDK for Go 코드 예제](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2) | 
| [AWS SDK for Java](https://docs.aws.amazon.com/sdk-for-java) | [AWS SDK for Java 코드 예제](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2) | 
| [AWS SDK for JavaScript](https://docs.aws.amazon.com/sdk-for-javascript) | [AWS SDK for JavaScript 코드 예제](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3) | 
| [AWS SDK for Kotlin](https://docs.aws.amazon.com/sdk-for-kotlin) | [AWS SDK for Kotlin 코드 예제](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin) | 
| [AWS SDK for .NET](https://docs.aws.amazon.com/sdk-for-net) | [AWS SDK for .NET 코드 예제](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3) | 
| [AWS SDK for PHP](https://docs.aws.amazon.com/sdk-for-php) | [AWS SDK for PHP 코드 예제](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php) | 
| [AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell) | [AWS Tools for PowerShell 코드 예제](https://docs.aws.amazon.com/code-library/latest/ug/powershell_5_code_examples.html) | 
| [AWS SDK for Python (Boto3)](https://docs.aws.amazon.com/pythonsdk) | [AWS SDK for Python (Boto3) 코드 예제](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python) | 
| [AWS SDK for Ruby](https://docs.aws.amazon.com/sdk-for-ruby) | [AWS SDK for Ruby 코드 예제](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby) | 
| [AWS SDK for Rust](https://docs.aws.amazon.com/sdk-for-rust) | [AWS SDK for Rust 코드 예제](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1) | 
| [AWS SDK for SAP ABAP](https://docs.aws.amazon.com/sdk-for-sapabap) | [AWS SDK for SAP ABAP 코드 예제](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap) | 
| [AWS SDK for Swift](https://docs.aws.amazon.com/sdk-for-swift) | [AWS SDK for Swift 코드 예제](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift) | 

**예제 사용 가능 여부**  
필요한 예제를 찾을 수 없습니까? 이 페이지 하단의 **피드백 제공** 링크를 사용하여 코드 예제를 요청합니다.

# HTTP 요청 서명
<a name="amazon-redshift-signing-requests"></a>

Amazon Redshift는 관리 API에 보내는 요청마다 서명을 통해 인증을 받도록 합니다. 이번 주제에서는 요청의 서명 방법에 대해서 설명합니다.

AWS 소프트웨어 개발 키트(SDK) 중 하나 또는 AWS Command Line Interface를 사용하는 경우에는 요청 서명이 자동으로 처리되기 때문에 이번 섹션을 건너뛰어도 좋습니다. AWS SDK 사용에 대한 자세한 내용은 [프로비저닝된 클러스터에 Amazon Redshift 관리 인터페이스 사용](using-aws-sdk.md) 섹션을 참조하세요. Amazon Redshift 명령줄 인터페이스 사용에 대한 자세한 내용은 [Amazon Redshift 명령줄 레퍼런스](https://docs.aws.amazon.com/cli/latest/reference/redshift/index.html) 섹션을 참조하세요.

요청에 서명하려면 암호화 해시 함수를 이용해 디지털 서명을 계산해야 합니다. 암호화 해시는 입력을 근거로 하여 고유 해시 값을 반환하는 함수입니다. 해시 함수에 대한 입력에는 요청 텍스트와 임시 보안 인증 정보를 통해 얻은 비밀 액세스 키가 포함됩니다. 해시 함수는 요청에 서명으로 포함하는 해시 값을 반환합니다. 서명은 요청에서 `Authorization` 헤더의 일부입니다.

**참고**  
사용자가 AWS Management Console 외부에서 AWS와 상호 작용하려면 프로그래밍 방식의 액세스 권한이 필요합니다. 프로그래밍 방식의 액세스 권한을 부여하는 방법은 AWS에 액세스하는 사용자 유형에 따라 다릅니다.  
사용자에게 프로그래밍 방식의 액세스 권한을 부여하려면 다음 옵션 중 하나를 선택합니다.  


****  

| 프로그래밍 방식 액세스가 필요한 사용자 | 목적 | 방법 | 
| --- | --- | --- | 
| IAM | (권장됨) 콘솔 자격 증명을 임시 자격 증명으로 사용하여 AWS CLI, AWS SDK 또는 AWS API에 대한 프로그래밍 요청에 서명합니다. |  사용하고자 하는 인터페이스에 대한 지침을 따릅니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/amazon-redshift-signing-requests.html)  | 
|  작업 인력 ID (IAM Identity Center에서 관리되는 사용자)  | 임시 자격 증명을 사용하여 AWS CLI, AWS SDK 또는 AWS API에 대한 프로그래밍 요청에 서명합니다. |  사용하고자 하는 인터페이스에 대한 지침을 따릅니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/amazon-redshift-signing-requests.html)  | 
| IAM | 임시 자격 증명을 사용하여 AWS CLI, AWS SDK 또는 AWS API에 대한 프로그래밍 요청에 서명합니다. | IAM 사용자 설명서의 [AWS 리소스와 함께 임시 자격 증명 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)에 나와 있는 지침을 따르세요. | 
| IAM | (권장되지 않음)장기 자격 증명을 사용하여 AWS CLI, AWS SDK 또는 AWS API에 대한 프로그래밍 요청에 서명합니다. |  사용하고자 하는 인터페이스에 대한 지침을 따릅니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/redshift/latest/mgmt/amazon-redshift-signing-requests.html)  | 

Amazon Redshift는 요청을 수신한 후 본인이 요청에 서명할 때 사용한 것과 동일한 해시 함수 및 입력을 사용하여 서명을 재계산합니다. 그 결과 얻은 서명이 요청의 서명과 일치할 경우 Amazon Redshift가 요청을 처리합니다. 그렇지 않으면 요청이 거부됩니다.

Amazon Redshift는 [AWS 서명 버전 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html)를 이용한 인증을 지원합니다. 서명을 계산하기 위한 프로세스는 다음 세 작업으로 구성됩니다. 이 작업들은 아래 예에도 설명되어 있습니다.
+   [작업 1: 표준 요청 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#create-canonical-request)

  HTTP 요청을 정규 형식으로 재배열합니다. 정식 양식을 사용해야 하는 이유는 Amazon Redshift가 서명을 계산하여 본인이 전송한 서명과 비교할 때 동일한 정식 양식을 사용하기 때문입니다.
+   [작업 2: 서명할 문자열 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#create-string-to-sign)

  암호화 해시 함수에 대한 입력 값 중 하나로 사용할 문자열을 만듭니다. *서명할 문자열*이라는 문자열은 해시 알고리즘의 이름, 요청 날짜, *자격 증명 범위* 문자열, 이전 작업에서 정규화된 요청을 연결한 것입니다. *자격 증명 범위* 문자열 자체는 날짜, 리전 및 서비스 정보를 연결한 것입니다.
+   [작업 3: 서명 계산](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html#calculate-signature)

  서명할 문자열과 **파생된 키라는 두 개의 입력 문자열을 허용하는 암호화 해시 함수를 사용하여 요청에 대한 서명을 계산합니다. 파생된 키는 보안 액세스 키로 시작해서 자격 증명 범위 문자열을 사용하여 일련의 해시 기반 메시지 인증 코드(HMAC)를 만들어 계산됩니다.

## 서명 계산 예시
<a name="example-signature-calculation"></a>

다음 예시에서는 [CreateCluster](https://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateCluster.html)에 대해 서명을 생성하는 세부 과정을 안내합니다. 이 예는 서명 계산 방법을 점검하기 우한 참조로 사용할 수 있습니다. 기타 참조 계산은 IAM 사용 설명서의 [서명 요청 예제 섹션](https://docs.aws.amazon.com/IAM/latest/UserGuide/signature-v4-examples.html)에 포함되어 있습니다.

GET 또는 POST 요청을 사용하여 Amazon Redshift에 요청을 전송할 수 있습니다. 두 가지의 차이는, GET 요청의 경우 파라미터가 쿼리 문자열 파라미터로 전송되는 반면 POST 요청의 경우에는 요청 본문에 포함된다는 데 있습니다. 아래 예는 POST 요청을 나타낸 것입니다.

이 예시에서는 다음과 같이 가정합니다.
+ 요청 타임스탬프는 `Fri, 07 Dec 2012 00:00:00 GMT`입니다.
+ 엔드포인트는 미국 동부(버지니아 북부) 리전인 `us-east-1`입니다.

일반적인 요청 구문은 다음과 같습니다.

```
https://redshift.us-east-1.amazonaws.com/
   ?Action=CreateCluster
   &ClusterIdentifier=examplecluster
   &MasterUsername=masteruser
   &MasterUserPassword=12345678Aa
   &NumberOfNode=2
   &NodeType=dc2.large
   &Version=2012-12-01
   &x-amz-algorithm=AWS4-HMAC-SHA256
   &x-amz-credential=AKIAIOSFODNN7EXAMPLE/20121207/us-east-1/redshift/aws4_request
   &x-amz-date=20121207T000000Z
   &x-amz-signedheaders=content-type;host;x-amz-date
```

[작업 1: 표준 요청 생성](#SignatureCalculationTask1)에서 계산되는 요청의 정규 형식은 다음과 같습니다.

```
POST
/

content-type:application/x-www-form-urlencoded; charset=utf-8
host:redshift.us-east-1.amazonaws.com
x-amz-date:20121207T000000Z

content-type;host;x-amz-date
55141b5d2aff6042ccd9d2af808fdf95ac78255e25b823d2dbd720226de1625d
```

표준 요청의 마지막 줄은 요청 본문의 해시입니다. 정식 요청에서 세 번째 줄은 이 API에 대한 쿼리 파라미터가 없기 때문에 비어있습니다.

[작업 2: 서명할 문자열 생성](#SignatureCalculationTask2)에서 서명할 문자열은 다음과 같습니다.

```
AWS4-HMAC-SHA256
20121207T000000Z
20121207/us-east-1/redshift/aws4_request
06b6bef4f4f060a5558b60c627cc6c5b5b5a959b9902b5ac2187be80cbac0714
```

*서명할 문자열*의 첫째 줄은 알고리즘, 둘째 줄은 타임스탬프, 셋째 줄은 *자격 증명 범위*, 마지막 줄은 [작업 1: 표준 요청 생성](#SignatureCalculationTask1)의 표준 요청에 대한 해시입니다. 자격 증명 범위에서 사용하는 서비스 이름은 `redshift`입니다.

[작업 3: 서명 계산](#SignatureCalculationTask3)에서 파생된 키는 다음과 같이 표현할 수 있습니다.

```
derived key = HMAC(HMAC(HMAC(HMAC("AWS4" + YourSecretAccessKey,"20121207"),"us-east-1"),"redshift"),"aws4_request")
```

파생된 키는 연속된 해시 함수로 계산됩니다. 위 공식의 내부 HMAC 문부터 시작하여 구문 **AWS4**를 비밀 액세스 키와 병합한 후 이것을 데이터 "us-east-1"을 해시 처리하는 키로 사용합니다. 이러한 해시 결과가 다음 해시 함수의 키가 됩니다.

파생된 키에 대한 계산을 마친 후에는 계산된 결과를 두 입력 문자열인 서명할 문자열과 파생된 키를 허용하는 해시 함수에 사용합니다. 예를 들어 앞선 내용을 고려하여 보안 액세스 키 `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`과 서명할 문자열을 사용하는 경우 계산된 서명은 다음과 같습니다.

```
9a6b557aa9f38dea83d9215d8f0eae54100877f3e0735d38498d7ae489117920
```

마지막 단계는 `Authorization` 헤더를 생성하는 것입니다. 데모용 액세스 키 `AKIAIOSFODNN7EXAMPLE`의 경우 헤더는 다음과 같습니다(가독성을 높이기 위해 줄 바꿈을 추가함).

```
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20121207/us-east-1/redshift/aws4_request, 
SignedHeaders=content-type;host;x-amz-date, 
Signature=9a6b557aa9f38dea83d9215d8f0eae54100877f3e0735d38498d7ae489117920
```

# Amazon Redshift CLI 설정
<a name="setting-up-rs-cli"></a>

이번 섹션에서는 Amazon Redshift 관리에 사용할 목적으로 AWS CLI 명령줄 도구를 설정하고 실행하는 방법에 대해 설명합니다. Amazon Redshift 명령줄 도구는 AWS Command Line Interface(AWS CLI)에서 실행되므로 Python([https://www.python.org/](https://www.python.org))을 사용합니다. AWS CLI는 Python만 지원한다면 어떤 운영 체제에서든지 실행할 수 있습니다.

## AWS Command Line Interface 설치
<a name="setting-up.installing-the-tools"></a>

Amazon Redshift 명령줄 도구를 사용하려면 먼저 AWS CLI를 설정한 다음 Amazon Redshift CLI 옵션을 정의하는 구성 파일을 추가합니다.

이미 다른 AWS CLI 서비스에서 AWS를 설치 및 구성했다면 이번 단계를 건너뛰어도 좋습니다.

**AWS Command Line Interface를 설치하려면**

1. [최신 버전의 AWS CLI 설치 또는 업데이트](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html)로 이동한 다음, AWS CLI 설치 지침을 따르세요.

   CLI 액세스를 위해서는 액세스 키 ID 및 비밀 액세스 키가 필요합니다. 가능하다면 장기 액세스 키 대신 임시 보안 인증 정보를 사용하세요. 임시 보안 인증도 액세스 키 ID와 비밀 액세스 키로 구성되지만 보안 인증이 만료되는 시간을 나타내는 보안 토큰이 포함되어 있습니다. 자세한 내용은 IAM 사용 설명서의 [AWS 리소스에서 임시 자격 증명 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)**을 참조하세요.

1. 액세스 키, 기본 리전, 명령 출력 형식 같은 구성 정보가 저장된 파일을 생성합니다. 그런 다음 해당 파일을 참조할 수 있는 `AWS_CONFIG_FILE` 환경 변수를 설정합니다. 자세한 지침은 AWS Command Line Interface 사용 설명서의 [AWS 명령줄 인터페이스 구성](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)을 참조하세요.

1. 테스트 명령을 실행하여 AWS CLI 인터페이스가 올바로 실행되는지 확인합니다. 예를 들어 다음 명령을 실행하면 AWS CLI의 도움말 정보가 표시되어야 합니다.

   ```
   aws help
   ```

   다음 명령을 실행하면 Amazon Redshift의 도움말 정보가 표시되어야 합니다.

   ```
   aws redshift help
   ```

Amazon Redshift CLI 명령에 대한 참조 자료는 AWS CLI Reference의 [Amazon Redshift](https://docs.aws.amazon.com/cli/latest/reference/redshift/index.html)를 참조하세요.