AWS PrivateLink를 사용하여 Amazon Aurora DSQL 클러스터 관리 및 연결
AWS PrivateLink for Amazon Aurora DSQL을 사용하면 Amazon Virtual Private Cloud에서 인터페이스 Amazon VPC 엔드포인트(인터페이스 엔드포인트)를 프로비저닝할 수 있습니다. 이러한 엔드포인트는 Amazon VPC 및 AWS Direct Connect를 통해 온프레미스에 있는 애플리케이션에서 또는 Amazon VPC 피어링을 통해 다른 AWS 리전에 있는 애플리케이션에서 직접 액세스할 수 있습니다. AWS PrivateLink 및 인터페이스 엔드포인트를 사용하면 애플리케이션에서 Aurora DSQL로의 프라이빗 네트워크 연결을 단순화할 수 있습니다.
Amazon VPC 내의 애플리케이션은 퍼블릭 IP 주소 없이 Amazon VPC 인터페이스 엔드포인트를 사용하여 Aurora DSQL에 액세스할 수 있습니다.
인터페이스 엔드포인트는 Amazon VPC의 서브넷에서 프라이빗 IP 주소가 할당된 하나 이상의 탄력적 네트워크 인터페이스(ENI)로 표시됩니다. 인터페이스 엔드포인트를 통해 Aurora DSQL로 보내는 요청은 AWS 네트워크에 유지됩니다. Amazon VPC를 온프레미스 네트워크에 연결하는 방법에 대한 자세한 내용은 AWS Direct Connect 사용 설명서 및 AWS Site-to-Site VPN VPN 사용 설명서를 참조하세요.
인터페이스 엔드포인트에 대한 일반적인 내용은 AWS PrivateLink 사용 설명서의 Access an AWS service using an interface Amazon VPC endpoint를 참조하세요.
Aurora DSQL용 Amazon VPC 엔드포인트의 유형
Aurora DSQL에는 두 가지 유형의 AWS PrivateLink 엔드포인트가 필요합니다.
-
관리 엔드포인트 -이 엔드포인트는 Aurora DSQL 클러스터의
get
,create
,update
,delete
,list
와 같은 관리 작업에 사용됩니다. AWS PrivateLink를 사용하여 Aurora DSQL 클러스터 관리을(를) 참조하세요. -
연결 엔드포인트 -이 엔드포인트는 PostgreSQL 클라이언트를 통해 Aurora DSQL 클러스터에 연결하는 데 사용됩니다. AWS PrivateLink를 사용하여 Aurora DSQL 클러스터에 연결을(를) 참조하세요.
AWS PrivateLink for Aurora DSQL 사용 시 고려 사항
Amazon VPC 고려 사항은 AWS PrivateLink for Aurora DSQL에 적용됩니다. 자세한 내용은 AWS PrivateLink 안내서의 Access an AWS service using an interface VPC endpoint 및 AWS PrivateLink quotas를 참조하세요.
AWS PrivateLink를 사용하여 Aurora DSQL 클러스터 관리
AWS Command Line Interface 또는 AWS 소프트웨어 개발 키트(SDK)를 사용하여 Aurora DSQL 인터페이스 엔드포인트를 통해 Aurora DSQL 클러스터를 관리할 수 있습니다.
Amazon VPC 엔드포인트 생성
Amazon VPC 인터페이스 엔드포인트를 생성하려면 AWS PrivateLink 안내서의 Create an Amazon VPC endpoint를 참조하세요.
aws ec2 create-vpc-endpoint \ --region
region
\ --service-name com.amazonaws.region
.dsql \ --vpc-idyour-vpc-id
\ --subnet-idsyour-subnet-id
\ --vpc-endpoint-type Interface \ --security-group-idsclient-sg-id
\
Aurora DSQL API 요청에 기본 리전 DNS 이름을 사용하려면 Aurora DSQL 인터페이스 엔드포인트를 생성할 때 프라이빗 DNS를 비활성화하지 마세요. 프라이빗 DNS가 활성화되면 Amazon VPC 내에서 이루어진 Aurora DSQL 서비스에 대한 요청은 퍼블릭 DNS 이름이 아닌 Amazon VPC 엔드포인트의 프라이빗 IP 주소로 자동 확인됩니다. 프라이빗 DNS가 활성화되면 Amazon VPC 내에서 이루어진 Aurora DSQL 요청은 Amazon VPC 엔드포인트로 자동으로 확인됩니다.
프라이빗 DNS가 활성화되지 않은 경우 AWS CLI 명령과 함께 --region
및 --endpoint-url
파라미터를 사용하여 Aurora DSQL 인터페이스 엔드포인트를 통해 Aurora DSQL 클러스터를 관리합니다.
엔드포인트 URL을 사용하여 클러스터 나열
다음 예시에서 AWS 리전 us-east-1
및 VPC 엔드포인트 ID의 DNS 이름(vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com
)을 실제 정보로 바꿉니다.
aws dsql --region
us-east-1
--endpoint-url https://vpce-1a2b3c4d-5e6f.dsql.us-east-1.vpce.amazonaws.com
list-clusters
API 작업
Aurora DSQL의 리소스 관리에 대한 설명서는 Aurora DSQL API 참조를 참조하세요.
엔드포인트 정책 관리
Amazon VPC 엔드포인트 정책을 철저히 테스트하고 구성하면 Aurora DSQL 클러스터가 안전하고 규정을 준수하며 조직의 특정 액세스 제어 및 거버넌스 요구 사항에 부합하도록 할 수 있습니다.
예: 전체 Aurora DSQL 액세스 정책
다음 정책은 지정된 Amazon VPC 엔드포인트를 통해 모든 Aurora DSQL 작업 및 리소스에 대한 전체 액세스 권한을 부여합니다.
aws ec2 modify-vpc-endpoint \ --vpc-endpoint-id vpce-xxxxxxxxxxxxxxxxx \ --region region \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "dsql:*", "Resource": "*" } ] }'
예: 제한된 Aurora DSQL 액세스 정책
다음 정책은 이러한 Aurora DSQL 작업만 허용합니다.
-
CreateCluster
-
GetCluster
-
ListClusters
다른 Aurora DSQL 작업은 모두 거부됩니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "dsql:CreateCluster", "dsql:GetCluster", "dsql:ListClusters" ], "Resource": "*" } ] }
AWS PrivateLink를 사용하여 Aurora DSQL 클러스터에 연결
AWS PrivateLink 엔드포인트가 설정되고 활성화되면 PostgreSQL 클라이언트를 사용하여 Aurora DSQL 클러스터에 연결할 수 있습니다. 아래 연결 지침은 AWS PrivateLink 엔드포인트를 통해 연결하기 위한 적절한 호스트 이름을 구성하는 단계를 간략하게 설명합니다.
AWS PrivateLink 연결 엔드포인트 설정
1단계: 클러스터의 서비스 이름 가져오기
클러스터에 연결하기 위한 AWS PrivateLink 엔드포인트를 생성할 때 먼저 해당 클러스터의 서비스 이름을 가져와야 합니다.
2단계: Amazon VPC 엔드포인트 생성
이전 단계에서 얻은 서비스 이름을 사용하여 Amazon VPC 엔드포인트를 생성합니다.
중요
아래 연결 지침은 프라이빗이 DNS를 활성화한 경우에만 클러스터에 연결할 수 있습니다. 엔드포인트를 생성할 때 --no-private-dns-enabled
플래그를 사용하지 마세요. 사용하면 아래 연결 지침이 제대로 작동하지 않습니다. 프라이빗 DNS를 비활성화하는 경우 생성된 엔드포인트를 가리키는 자체 와일드카드 프라이빗 DNS 레코드를 생성해야 합니다.
AWS PrivateLink 연결 엔드포인트를 사용하여 Aurora DSQL 클러스터에 연결
AWS PrivateLink 엔드포인트가 설정되고 활성화되면(State
가 available
인지 확인) PostgreSQL 클라이언트를 사용하여 Aurora DSQL 클러스터에 연결할 수 있습니다. AWS SDK 사용에 대한 지침은 Programming with Aurora DSQL의 가이드를 참조하세요. 호스트 이름 형식과 일치하도록 클러스터 엔드포인트를 변경해야 합니다.
호스트 이름 구성
AWS PrivateLink를 통해 연결하기 위한 호스트 이름은 퍼블릭 DNS 호스트 이름과 다릅니다. 다음 구성 요소를 사용하여 구성해야 합니다.
-
Your-cluster-id
-
서비스 이름의 서비스 식별자입니다. 예:
dsql-fnh4
-
AWS 리전은
다음 형식을 사용합니다. cluster-id
.service-identifier
.region
.on.aws
예: PostgreSQL을 사용하여 연결
# Set environment variables export CLUSTERID=
your-cluster-id
export REGION=us-east-1 export SERVICE_IDENTIFIER=dsql-fnh4 # This should match the identifier in your service name # Construct the hostname export HOSTNAME="$CLUSTERID.$SERVICE_IDENTIFIER.$REGION.on.aws" # Generate authentication token export PGPASSWORD=$(aws dsql --region $REGION generate-db-connect-admin-auth-token --hostname $HOSTNAME) # Connect using psql psql -d postgres -h $HOSTNAME -U admin
AWS PrivateLink 문제 해결
일반적인 문제 및 해결 방법
다음 표에는 Aurora DSQL과 AWS PrivateLink를 함께 사용할 때와 관련된 일반적인 문제와 해결 방법이 나와 있습니다.
문제 | 가능한 원인 | Solution |
---|---|---|
연결 제한 시간 |
보안 그룹이 제대로 구성되지 않음 |
Amazon VPC Reachability Analyzer를 사용하여 네트워킹 설정이 포트 5432에서 트래픽을 허용하는지 확인합니다. |
DNS 확인 실패 |
프라이빗 DNS가 활성화되지 않음 |
프라이빗 DNS가 활성화된 상태에서 Amazon VPC 엔드포인트가 생성되었는지 확인합니다. |
인증 실패 |
자격 증명이 잘못됨 또는 토큰이 만료됨 |
새 인증 토큰을 생성하고 사용자 이름을 확인합니다. |
서비스 이름을 찾을 수 없음 |
클러스터 ID가 잘못됨 |
서비스 이름을 가져올 때 클러스터 ID와 AWS 리전을 다시 확인합니다. |
관련 리소스
자세한 정보는 다음 자료를 참조하세요.