Amazon Redshift 서버리스에 연결 - Amazon Redshift

Amazon Redshift 서버리스에 연결

Amazon Redshift Serverless 인스턴스를 설정한 후에는 아래에 설명된 다양한 방법으로 인스턴스에 연결할 수 있습니다. 여러 팀이나 프로젝트가 있고 비용을 별도로 관리하고 싶다면 별도의 AWS 계정를 사용할 수 있습니다.

Amazon Redshift Serverless를 사용할 수 있는 AWS 리전 목록은 Amazon Web Services 일반 참조Amazon Redshift Serverless API에 나열된 엔드포인트를 참조하세요.

Amazon Redshift Serverless는 현재 AWS 리전의 AWS 계정에 있는 서버리스 환경에 연결됩니다. Amazon Redshift Serverless는 포트 범위 5431~5455 및 8191~8215 내의 VPC에서 실행됩니다. 기본값은 5439입니다. 현재는 API 작업 UpdateWorkgroup 및 AWS CLI 작업 update-workgroup을 통해서만 포트를 변경할 수 있습니다.

Amazon Redshift 서버리스에 연결

다음 구문을 사용하여 Amazon Redshift Serverless의 데이터베이스(이름: dev)에 연결할 수 있습니다.

workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com:port/dev

예를 들어 다음 연결 문자열은 us-east-1 리전을 지정합니다.

default.123456789012.us-east-1.redshift-serverless.amazonaws.com:5439/dev

JDBC 드라이버를 통해 Amazon Redshift 서버리스에 연결

다음 방법 중 하나를 통해 Amazon Redshift에서 제공하는 JDBC 드라이버 버전 2 드라이버를 사용하여 원하는 SQL 클라이언트로 Amazon Redshift Serverless에 연결할 수 있습니다.

JDBC 드라이버 버전 2.1.x 이상을 사용하여 데이터베이스 인증을 위한 로그인 보안 인증과 연결하려면 다음 구문을 사용합니다. 포트 번호는 선택 사항입니다. 포함되지 않은 경우 Amazon Redshift Serverless는 기본적으로 포트 번호 5439로 설정됩니다. 포트 범위 5431~5455 또는 8191~8215에서 다른 포트로 변경할 수 있습니다. 서버리스 엔드포인트의 기본 포트를 변경하려면 AWS CLI 및 Amazon Redshift API를 사용하세요.

jdbc:redshift://workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com:5439/dev

예를 들어 다음 연결 문자열은 작업 그룹 기본값, 계정 ID 123456789012 및 리전 us-east-2를 지정합니다.

jdbc:redshift://default.123456789012.us-east-2.redshift-serverless.amazonaws.com:5439/dev

JDBC 드라이버 버전 2.1.x를 사용하여 IAM에 연결하려면 다음 구문을 사용합니다. 포트 번호는 선택 사항입니다. 포함되지 않은 경우 Amazon Redshift Serverless는 기본적으로 포트 번호 5439로 설정됩니다. 포트 범위 5431~5455 또는 8191~8215에서 다른 포트로 변경할 수 있습니다. 서버리스 엔드포인트의 기본 포트를 변경하려면 AWS CLI 및 Amazon Redshift API를 사용하세요.

jdbc:redshift:iam://workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com:5439/dev

예를 들어 다음 연결 문자열은 작업 그룹 기본값, 계정 ID 123456789012 및 리전 us-east-2를 지정합니다.

jdbc:redshift:iam://default.123456789012.us-east-2.redshift-serverless.amazonaws.com:5439/dev

ODBC의 경우 다음 구문을 사용합니다.

Driver={Amazon Redshift (x64)}; Server=workgroup-name.account-number.aws-region.redshift-serverless.amazonaws.com; Database=dev

2.1.0.9 이전 버전의 JDBC 드라이버를 사용 중이며 IAM에 연결하는 경우 다음 구문을 사용해야 합니다.

jdbc:redshift:iam://redshift-serverless-<name>:aws-region/database-name

예를 들어 다음 연결 문자열은 작업 그룹 기본값 및 AWS 리전 us-east-1을 지정합니다.

jdbc:redshift:iam://redshift-serverless-default:us-east-1/dev

드라이버에 대한 자세한 내용은 Amazon Redshift에서 연결 구성 섹션을 참조하세요.

JDBC 및 ODBC 연결 문자열 찾기

SQL 클라이언트 도구를 사용하여 작업 그룹에 연결하려면 JDBC 또는 ODBC 연결 문자열이 있어야 합니다. Amazon Redshift Serverless 콘솔의 작업 그룹 세부 정보 페이지에서 연결 문자열을 확인할 수 있습니다.

작업 그룹의 연결 문자열 찾기
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/redshiftv2/에서 Amazon Redshift 콘솔을 엽니다.

  2. 탐색 메뉴에서 Redshift Serverless를 선택합니다.

  3. 탐색 메뉴에서 작업 그룹 구성을 선택한 후 목록에서 작업 그룹 이름을 선택하여 세부 정보를 엽니다.

  4. JDBC URLODBC URL 연결 문자열은 일반 정보(General information) 섹션에서 추가 세부 정보와 함께 사용할 수 있습니다. 각 문자열은 작업 그룹이 실행되는 AWS 리전을 기반으로 합니다. 해당 연결 문자열 옆에 있는 아이콘을 선택하여 연결 문자열을 복사합니다.

Data API를 사용하여 Amazon Redshift Serverless에 연결

Amazon Redshift Data API를 사용하여 Amazon Redshift Serverless에 연결할 수도 있습니다. AWS CLI 호출에서 cluster-identifier 파라미터 대신 workgroup-name 파라미터를 사용합니다.

Data API에 대한 자세한 내용은 Amazon Redshift Data API 사용 섹션을 참조하세요. Python에서 데이터 API를 호출하는 예제 코드 및 기타 예제는 Redshift 데이터 API 시작하기를 참조하고 GitHub의 quick-startuse-cases 폴더를 살펴보세요.

SSL을 사용하여 Amazon Redshift Serverless에 연결

Amazon Redshift Serverless에 대한 보안 연결 구성

SSL 연결을 지원하기 위해 Redshift Serverless는 AWS Certificate Manager(ACM)에서 발급한 SSL 인증서를 생성해 각 작업 그룹에 설치합니다. ACM 인증서는 대부분의 운영 체제, 웹 브라우저 및 클라이언트에서 공개적으로 신뢰합니다. SQL 클라이언트 또는 애플리케이션의 sslmode 연결 옵션이 require, verify-ca 또는 verify-full로 설정된 상태에서 SSL을 사용하여 Redshift Serverless에 연결하는 경우 인증서 번들을 다운로드해야 합니다. 클라이언트에 인증서가 필요한 경우 Redshift Serverless는 다음과 같이 번들 인증서를 제공합니다.

  • https://s3.amazonaws.com/redshift-downloads/amazon-trust-ca-bundle.crt에서 번들을 다운로드합니다.

    • 예상 MD5 체크섬 번호는 418dea9b6d5d5de7a8f1ac42e164cdcf입니다.

    • sha256 체크섬 번호는 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550입니다.

    https://s3.amazonaws.com/redshift-downloads/redshift-ca-bundle.crt에 있던 이전 인증서 번들을 사용하지 마세요.

  • 중국 AWS 리전에서는 https://s3---cn-north-1.amazonaws.com.rproxy.goskope.com.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt에서 번들을 다운로드합니다.

    • 예상 MD5 체크섬 번호는 418dea9b6d5d5de7a8f1ac42e164cdcf입니다.

    • sha256 체크섬 번호는 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550입니다.

    https://s3---cn-north-1.amazonaws.com.rproxy.goskope.com.cn/redshift-downloads-cn/redshift-ca-bundle.crthttps://s3---cn-north-1.amazonaws.com.rproxy.goskope.com.cn/redshift-downloads-cn/redshift-ssl-ca-cert.pem에 있던 이전 인증서 번들을 사용하지 마세요.

중요

Redshift Serverless는 SSL 인증서 관리 방법을 바꿨습니다. 계속해서 SSL을 사용하여 작업 그룹에 연결하려면 현재 신뢰하는 루트 CA 인증서를 업데이트해야 할 수 있습니다. SSL 연결용 ACM 인증서에 대한 자세한 내용은 SSL 연결을 위해 ACM 인증서로 이전 섹션을 참조하세요.

기본적으로 작업 그룹 데이터베이스는 SSL의 사용 여부와 상관없이 연결을 허용합니다.

SSL 연결만 허용하는 새 작업 그룹을 만들려면 create-workgroup 명령을 사용하고 require_ssl 파라미터를 true로 설정합니다. 다음 예제를 사용하려면 네임스페이스 이름을 yourNamespaceName으로 바꾸고 WorkgroupName을 작업 그룹 이름으로 바꿉니다.

aws redshift-serverless create-workgroup \ --namespace-name yourNamespaceName \ --workgroup-name yourWorkgroupName \ --config-parameters parameterKey=require_ssl,parameterValue=true

SSL 연결만 허용하는 기존 작업 그룹을 업데이트하려면 update-workgroup 명령을 사용하고 require_ssl 파라미터를 true로 설정합니다. 참고로 Redshift Serverless는 require_ssl 파라미터가 업데이트되면 작업 그룹을 다시 시작합니다. 다음 예제에서 yourWorkgroupName을 작읍 그룹의 이름으로 바꿉니다.

aws redshift-serverless update-workgroup \ --workgroup-name yourWorkgroupName \ --config-parameters parameterKey=require_ssl,parameterValue=true

Amazon Redshift는 ECDHE(Elliptic Curve Diffie—Hellman Ephemeral) 키 계약 프로토콜을 지원합니다. ECDHE 프로토콜에서는 클라이언트와 서버가 비보안 채널을 통해 공유 비밀을 구성하는 데 사용하는 타원 곡선 공개-비공개 키 페어를 갖습니다. ECDHE를 사용하기 위해 Amazon Redshift에서 아무 것도 구성할 필요가 없습니다. ECDHE를 통해 클라이언트와 서버 간 통신을 암호화하는 SQL 클라이언트 도구에서 연결하는 경우 Amazon Redshift가 제공된 암호 목록을 사용해 적절히 연결합니다. 자세한 내용은 Wikipedia의 Elliptic curve diffie—hellman 및 OpenSSL 웹 사이트의 Ciphers 섹션을 참조하세요.

Amazon Redshift Serverless에 대한 FIPS 준수 SSL 연결 구성

FIPS 준수 SSL 연결을 사용하는 새 작업 그룹을 생성하려면 create-workgroup 명령을 사용하고 use_fips_ssl 파라미터를 true로 설정합니다. 다음 예제를 사용하려면 네임스페이스 이름을 yourNamespaceName으로 바꾸고 WorkgroupName을 작업 그룹 이름으로 바꿉니다.

aws redshift-serverless create-workgroup \ --namespace-name yourNamespaceName \ --workgroup-name yourWorkgroupName \ --config-parameters parameterKey=use_fips_ssl,parameterValue=true

FIPS 준수 SSL 연결을 사용하도록 기존 작업 그룹을 업데이트하려면 update-workgroup 명령을 사용하고 use_fips_ssl 파라미터를 true로 설정합니다. 참고로 Redshift Serverless는 use_fips_ssl 파라미터가 업데이트되면 작업 그룹을 다시 시작합니다. 다음 예제에서 yourWorkgroupName을 작읍 그룹의 이름으로 바꿉니다.

aws redshift-serverless update-workgroup \ --workgroup-name yourWorkgroupName \ --config-parameters parameterKey=use_fips_ssl,parameterValue=true

FIPS 준수 연결을 사용하도록 Redshift Serverless를 구성하는 방법에 대한 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서의 use_fips_ssl을 참조하세요.

Amazon Redshift 관리형 VPC 엔드포인트에서 Amazon Redshift Serverless에 연결

다른 VPC 엔드포인트에서 Amazon Redshift Serverless에 연결

Amazon Redshift Serverless 작업 그룹을 위한 관리형 VPC 엔드포인트를 설정 또는 구성하는 방법에 대한 자세한 내용은 Redshift 관리형 VPC 엔드포인트 작업을 참조하세요.

인터페이스 VPC 엔드포인트(AWS PrivateLink)에서 Amazon Redshift Serverless에 연결하는 방법에 대한 자세한 내용은 인터페이스 VPC 엔드포인트 섹션을 참조하세요.

다른 계정 또는 리전의 Redshift VPC 엔드포인트에서 Amazon Redshift Serverless에 연결

교차 VPC 엔드포인트에서 Amazon Redshift Serverless에 연결

Amazon Redshift Serverless는 VPC에서 프로비저닝됩니다. 다른 계정의 VPC에 액세스 권한을 부여하여 사용자 계정의 Amazon Redshift Serverless에 액세스하도록 할 수 있습니다. 이는 관리형 VPC 엔드포인트의 연결과 비슷하지만, 이 경우 연결은 예를 들어 다른 계정의 데이터베이스 클라이언트에서 시작됩니다. 수행할 수 있는 몇 가지 작업이 있습니다.

  • 데이터베이스 소유자는 Amazon Redshift Serverless가 포함된 VPC에 대한 액세스 권한을 동일한 리전의 다른 계정에 부여할 수 있습니다.

  • 데이터베이스 소유자는 Amazon Redshift Serverless 액세스를 취소할 수 있습니다.

크로스 계정 액세스의 주요 이점은 데이터베이스 협업이 더 쉬워진다는 것입니다. 데이터베이스가 포함된 계정에서 사용자를 프로비저닝하지 않아도 데이터베이스에 액세스할 수 있으므로 구성 단계가 줄어들고 시간이 절약됩니다.

다른 계정의 VPC에 대한 액세스 권한을 부여하는 데 필요한 권한

액세스를 허용하거나 허용된 액세스를 변경하려면 권한 부여자에게 다음 권한이 포함된 할당된 권한 정책이 필요합니다.

  • redshift-serverless:PutResourcePolicy

  • redshift-serverless:GetResourcePolicy

  • redshift-serverless:DeleteResourcePolicy

  • ec2:CreateVpcEndpoint

  • ec2:ModifyVpcEndpoint

AWS 관리형 정책 AmazonRedshiftFullAccess에 지정된 다른 권한이 필요할 수 있습니다. 자세한 내용은 Amazon Redshift Serverless에 권한 부여를 참조하세요.

피부여자에게는 다음 권한이 포함된 할당된 권한 정책이 필요합니다.

  • redshift-serverless:ListWorkgroups

  • redshift-serverless:CreateEndpointAccess

  • redshift-serverless:UpdateEndpointAccess

  • redshift-serverless:GetEndpointAccess

  • redshift-serverless:ListEndpointAccess

  • redshift-serverless:DeleteEndpointAccess

가장 좋은 방법은 권한 정책을 IAM 역할에 연결한 다음 필요에 따라 사용자 및 그룹에 할당하는 것입니다. 자세한 내용은 Amazon Redshift의 Identity and Access Management를 참조하세요.

다음은 VPC 간 액세스를 구성하는 데 사용되는 샘플 리소스 정책입니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountCrossVPCAccess", "Effect": "Allow", "Principal": { "AWS": [ "123456789012", "234567890123" ] }, "Action": [ "redshift-serverless:CreateEndpointAccess", "redshift-serverless:UpdateEndpointAccess", "redshift-serverless:DeleteEndpointAccess", "redshift-serverless:GetEndpointAccess" ], "Condition": { "ArnLike": { "redshift-serverless:AuthorizedVpc": [ "arn:aws:ec2:us-east-1:123456789012:vpc/*", "arn:aws:ec2:us-east-1:234567890123:vpc/vpc-456", "arn:aws:ec2:us-east-1:234567890123:vpc/vpc-987" ] } } } } ] }

이 섹션의 다음 절차에서는 이러한 작업을 수행하는 사용자가 예를 들어 해당 권한이 나열된 할당된 IAM 역할을 통해 적절한 권한을 할당받은 것으로 가정합니다. 또한 작업 그룹에 적절한 리소스 권한이 부여된 IAM 역할이 연결되어 있다고 가정합니다.

콘솔을 사용하여 다른 계정에 VPC 액세스 권한 부여

이 절차는 데이터베이스 소유자가 데이터베이스 액세스 권한을 부여하려는 경우 데이터베이스 액세스를 구성하는 단계를 보여줍니다.

소유자 계정으로부터 액세스 권한 부여
  1. Amazon Redshift Serverless 작업 그룹의 속성에는 데이터 액세스 탭에 부여된 계정이라는 목록이 있습니다. 작업 그룹에 대한 액세스 권한이 부여된 계정 및 VPC가 표시됩니다. 목록을 찾아 액세스 권한 부여를 선택하여 목록에 계정을 추가합니다.

  2. 피부여자 정보를 추가할 수 있는 창이 나타납니다. AWS 계정 ID를 입력합니다. 계정 ID는 액세스 권한을 부여할 계정의 12자리 ID입니다.

  3. 피부여자에게 모든 VPC에 대한 액세스 권한을 부여하거나 특정 VPC에 대한 액세스 권한을 부여합니다. 특정 VPC에만 액세스 권한을 부여하는 경우 각 ID를 입력하고 VPC 추가를 선택하여 해당 VPC에 ID를 추가할 수 있습니다.

  4. 완료한 후 변경 사항 저장을 선택합니다.

변경 사항을 저장하면 해당 계정이 부여된 계정 목록에 나타납니다. 항목에는 계정 ID와 액세스 권한이 부여된 VPC 목록이 표시됩니다.

데이터베이스 소유자는 계정에 대한 액세스 권한을 취소할 수도 있습니다. 소유자는 언제든지 액세스 권한을 취소할 수 있습니다.

계정 액세스 권한 취소
  1. 부여된 계정 목록에서 시작할 수 있습니다. 먼저 계정을 하나 이상 선택합니다.

  2. 액세스 취소를 선택합니다.

액세스 권한이 부여되면 피부여자의 데이터베이스 관리자는 콘솔을 확인하여 액세스 권한이 있는지 확인할 수 있습니다.

콘솔을 사용하여 다른 계정에 액세스할 수 있는 액세스 권한이 부여되었는지 확인
  1. Amazon Redshift Serverless 작업 그룹 속성의 데이터 액세스 탭에는 권한이 부여된 계정이라는 목록이 있습니다. 이 작업 그룹에서 액세스할 수 있는 계정이 표시됩니다. 피부여자는 작업 그룹의 엔드포인트 URL을 사용하여 작업 그룹에 직접 액세스할 수 없습니다. 작업 그룹에 액세스하려면 피부여자는 엔드포인트 섹션으로 이동하여 엔드포인트 생성을 선택합니다.

  2. 그런 다음 피부여자는 작업 그룹에 액세스하기 위해 엔드포인트 이름과 VPC를 제공합니다.

  3. 엔드포인트가 성공적으로 생성되면 엔드포인트 섹션에 엔드포인트가 나타나고 해당 엔드포인트에 대한 엔드포인트 URL이 표시됩니다. 이 엔드포인트 URL을 사용하여 작업 그룹에 액세스할 수 있습니다.

콘솔을 사용하여 다른 계정에 액세스 권한 부여

액세스 권한을 부여하는 계정은 먼저 put-resource-policy를 사용하여 연결할 다른 계정에 액세스 권한을 부여해야 합니다. 데이터베이스 소유자는 put-resource-policy를 호출하여 다른 계정이 작업 그룹에 연결을 생성하도록 권한을 부여할 수 있습니다. 그러면 피부여자 계정은 create-endpoint-authorization을 사용하여 허용된 VPC를 통해 작업 그룹에 대한 연결을 생성할 수 있습니다.

다음은 특정 계정 및 VPC에 대한 액세스를 허용하기 위해 호출할 수 있는 put-resource-policy 속성을 보여줍니다.

aws redshift-serverless put-resource-policy --resource-arn <value> --policy <value>

명령을 호출한 후 get-resource-policy를 호출하여 resource-arn을 지정함으로써 리소스에 액세스할 수 있는 계정과 VPC를 확인할 수 있습니다.

피부여자는 다음과 같은 호출을 할 수 있습니다. 부여된 액세스 권한에 대한 정보가 표시됩니다. 특히 액세스 권한이 부여된 VPC가 포함된 목록을 반환합니다.

aws redshift-serverless list-workgroups --owner-account <value>

이는 피부여자가 권한 부여 계정으로부터 엔드포인트 권한 부여에 대한 정보를 가져오기 위한 것입니다. owner-account는 공유하는 계정입니다. 실행하면 각 작업 그룹에 대해 허용된 VPC 목록인 CrossAccountVpcs가 반환됩니다. 참고로 다음은 작업 그룹에 사용할 수 있는 모든 속성을 보여줍니다.

Output: workgroup (Object) workgroupId String, workgroupArn String, workgroupName String, status: String, namespaceName: String, baseCapacity: Integer, (Not-applicable) enhancedVpcRouting: Boolean, configParameters: List, securityGroupIds: List, subnetIds: List, endpoint: String, publiclyAccessible: Boolean, creationDate: Timestamp, port: Integer, CrossAccountVpcs: List
참고

클러스터 재배치는 추가 Redshift 네트워킹 기능을 구성하기 위한 사전 조건은 아니라는 점을 기억하시기 바랍니다. 또한 다음을 활성화하기 위해 기능을 켤 필요도 없습니다.

  • 계정 간 또는 리전 간 VPC에서 Redshift로 연결 - 이 섹션에 설명된 대로 하나의 AWS Virtual Private Cloud(VPC)에서 Redshift 데이터베이스를 포함하는 다른 VPC로 연결할 수 있습니다.

  • 사용자 지정 도메인 이름 설정 - Amazon Redshift 클러스터 또는 Amazon Redshift Serverless 작업 그룹에 대해 사용자 지정 도메인(사용자 지정 URL이라고도 함)을 만들어 엔드포인트 이름을 더 기억하기 쉽고 간단하게 만들 수 있습니다. 자세한 내용은 클라이언트 연결에 사용자 지정 도메인 이름 사용을 참조하세요.

추가 리소스

네트워크 트래픽 설정을 지정하는 방법은 기본 또는 사용자 지정 보안 그룹 구성을 통한 퍼블릭 액세스 가능성에서 확인할 수 있습니다. 클러스터에 퍼블릭 액세스가 가능한 사용 사례가 나와 있습니다.

네트워크 트래픽 설정을 지정하는 방법은 기본 또는 사용자 지정 보안 그룹 구성을 통한 프라이빗 액세스 가능성에서 확인할 수 있습니다. 인터넷에서 클러스터를 사용할 수 없는 사용 사례가 나와 있습니다.

권한 부여, 추가 서비스에 대한 액세스 권한 부여, IAM 역할 생성을 비롯한 Amazon Redshift Serverless로의 보안 연결에 대한 자세한 내용은 Amazon Redshift Serverless의 Identity and Access Management 섹션을 참조하세요.