Amazon Aurora Global Database에 연결
각 Aurora Global Database에는 기본 DB 클러스터의 현재 라이터 인스턴스로 요청을 라우팅하기 위해 Aurora에서 자동으로 업데이트하는 라이터 엔드포인트가 함께 제공됩니다. 라이터 엔드포인트를 사용하면 관리형 Aurora Global Database 전환 및 장애 조치 기능을 사용하여 기본 리전의 위치를 변경한 후 연결 문자열을 수정할 필요가 없습니다. Aurora Global Database 전환 및 장애 조치와 함께 라이터 엔드포인트를 사용하는 방법에 대한 자세한 내용은 Amazon Aurora Global Database에서 전환 또는 장애 조치 사용 섹션을 참조하세요. RDS 프록시를 사용하여 Aurora Global Database에 연결하는 방법에 대한 자세한 내용은 Aurora Global Database에 RDS 프록시 사용을 참조하세요.
애플리케이션 요구 사항을 충족하는 엔드포인트 선택
Aurora Global Database에 연결하려면 데이터베이스와 요청을 라우팅하려는 AWS 리전에서 읽거나 쓸 필요가 있어야 합니다. 다음은 몇 가지 일반적인 사용 사례입니다.
-
라이터 인스턴스로 요청 라우팅: 데이터 조작 언어(DML) 및 데이터 정의 언어(DDL) 문을 실행해야 하거나 읽기와 쓰기 간에 강력한 일관성이 필요한 경우 Aurora Global Database 라이터 엔드포인트에 연결합니다. 이 엔드포인트는 요청을 글로벌 데이터베이스의 기본 클러스터에 있는 라이터 인스턴스로 라우팅합니다. 이 엔드포인트는 자동으로 업데이트되어 라이터 인스턴스로 요청을 라우팅하므로 글로벌 클러스터에서 라이터 위치를 변경할 때마다 애플리케이션을 업데이트할 필요가 없습니다. 글로벌 엔드포인트를 사용하여 리전 간 읽기/쓰기 요청을 라이터에게 보낼 수도 있습니다.
참고
Aurora Global Database 라이터 엔드포인트를 사용할 수 있기 전에 글로벌 데이터베이스를 설정한 경우 애플리케이션이 기본 클러스터의 클러스터 엔드포인트에 연결될 수 있습니다. 이 경우 대신 글로벌 라이터 엔드포인트를 사용하도록 연결 설정을 전환하는 것이 좋습니다. 이렇게 하면 Aurora Global Database 전환 또는 장애 조치 후에 매번 연결 설정을 변경할 필요가 없습니다.
라이터 엔드포인트 이름의 첫 번째 부분은 Aurora Global Database의 이름입니다. 따라서 Aurora Global Database의 이름을 바꾸면 라이터 엔드포인트 이름이 변경되고 이를 사용하는 모든 코드가 새 이름으로 업데이트되어야 합니다.
-
애플리케이션 리전에 더 가까운 읽기 규모 조정: 애플리케이션과 동일하거나 가까운 AWS 리전에서 읽기 전용 요청을 조정하려면 기본 또는 보조 Aurora 클러스터의 리더 엔드포인트에 연결합니다.
-
간헐적 리전 간 쓰기를 사용하여 읽기 규모 조정: 유지 관리 및 데이터 정리와 같은 간헐적 DML 문의 경우 쓰기 전달이 활성화된 보조 클러스터의 리더 엔드포인트에 연결합니다. 쓰기 전달을 사용하면 Aurora는 쓰기 문을 Aurora Global Database의 기본 리전에 있는 라이터에 자동으로 전달합니다. 쓰기 전달은 다음과 같은 이점을 제공합니다.
-
리전 간 쓰기를 전송하기 위해 보조 클러스터와 기본 클러스터 간에 연결을 설정하는 번거로운 작업을 수행할 필요가 없습니다.
-
애플리케이션에서 읽기 및 쓰기 요청을 분할할 필요가 없습니다.
-
읽기 후 쓰기 요청의 일관성을 관리하기 위해 복잡한 로직을 개발할 필요가 없습니다.
그러나 쓰기 전달을 사용하면 리전 간 장애 조치 또는 전환을 수행한 후 새로 승격된 기본 리전의 리더 엔드포인트에 연결하기 위해 애플리케이션 코드 또는 구성을 업데이트해야 합니다. 쓰기 요청을 처리하는 오버헤드를 확인하려면 쓰기 전달을 통해 수행되는 작업의 지연 시간을 모니터링하는 것이 좋습니다. 마지막으로 쓰기 전달은 데이터 정의 언어(DDL) 변경 또는
SELECT FOR UPDATE
문과 같은 특정 MySQL 또는 PostgreSQL 작업을 지원하지 않습니다.AWS 리전 간 쓰기 전달 사용에 대한 자세한 내용은 Amazon Aurora 글로벌 데이터베이스에서 쓰기 전달 사용 섹션을 참조하세요.
-
다양한 종류의 Aurora 엔드포인트에 대한 자세한 내용은 Amazon Aurora DB 클러스터에 연결 섹션을 참조하세요.
Amazon Aurora Global Database의 엔드포인트 보기
콘솔에서 Aurora Global Database를 볼 때 모든 관련 클러스터와 연결된 엔드포인트를 모두 볼 수 있습니다. 다음 그림은 기본 DB 클러스터의 세부 정보를 볼 때 표시되는 엔드포인트 유형의 예를 보여줍니다.
-
글로벌 라이터 - 항상 글로벌 데이터베이스 클러스터의 현재 라이터 DB 인스턴스를 가리키는 단일 읽기/쓰기 엔드포인트입니다.
-
라이터 - 글로벌 데이터베이스 클러스터의 기본 DB 클러스터에 대한 읽기/쓰기 요청을 위한 연결 엔드포인트입니다.
-
리더 - 글로벌 데이터베이스 클러스터의 기본 또는 보조 DB 클러스터에 대한 읽기 전용 요청을 위한 연결 엔드포인트입니다. 지연 시간을 최소화하려면 자신의 AWS 리전이나 가장 가까운 AWS 리전의 리더 엔드포인트를 선택합니다.

글로벌 데이터베이스의 엔드포인트를 보려면
-
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/
에서 Amazon RDS 콘솔을 엽니다. -
탐색 창에서 Databases(데이터베이스)를 선택합니다.
-
목록에서 글로벌 데이터베이스 또는 엔드포인트를 보려는 기본 또는 보조 DB 클러스터를 선택합니다.
-
연결 및 보안 탭을 선택하여 엔드포인트 세부 정보를 확인합니다. 표시되는 엔드포인트는 다음과 같이 선택한 클러스터 유형에 따라 달라집니다.
-
글로벌 데이터베이스 - 글로벌 라이터 엔드포인트입니다.
-
기본 DB 클러스터 - 글로벌 라이터 엔드포인트와 기본 클러스터의 클러스터 엔드포인트 및 리더 엔드포인트입니다.
-
보조 DB 클러스터 - 보조 클러스터의 클러스터 엔드포인트 및 리더 엔드포인트입니다. 보조 클러스터에서 클러스터 엔드포인트는 쓰기 요청을 처리하지 않으므로 비활성 상태를 표시합니다. 읽기 쿼리에 대해서만 클러스터 엔드포인트에 연결할 수 있습니다.
-
글로벌 클러스터의 라이터 엔드포인트를 보려면 다음 예제와 같이 AWS CLI describe-global-clusters 명령을 사용합니다.
aws rds describe-global-clusters --region
aws_region
{ "GlobalClusters": [ { "GlobalClusterIdentifier": "global_cluster_id
", "GlobalClusterResourceId": "cluster-unique_string
", "GlobalClusterArn": "arn:aws:rds::123456789012:global-cluster:global_cluster_id
", "Status": "available", "Engine": "aurora-mysql", "EngineVersion": "5.7.mysql_aurora.2.11.2", "GlobalClusterMembers": [ ... ], "Endpoint": "global_cluster_id
.global-unique_string
.global.rds.amazonaws.com" } ] }
글로벌 클러스터의 멤버 DB 클러스터에 대한 클러스터 및 리더 엔드포인트를 보려면 다음 예제와 같이 AWS CLI describe-db-clusters 명령을 사용합니다. Endpoint
및 ReaderEndpoint
에 대해 반환된 값은 각각 클러스터 및 리더 엔드포인트입니다.
aws rds describe-db-clusters --region
primary_region
--db-cluster-identifierdb_cluster_id
{ "DBClusters": [ { "AllocatedStorage": 1, "AvailabilityZones": [ "az_1
", "az_2
", "az_3
" ], "BackupRetentionPeriod": 1, "DBClusterIdentifier": "db_cluster_id
", "DBClusterParameterGroup": "default.aurora-mysql5.7", "DBSubnetGroup": "default", "Status": "available", "EarliestRestorableTime": "2023-08-01T18:21:11.301Z", "Endpoint": "db_cluster_id
.cluster-unique_string
.primary_region
.rds.amazonaws.com", "ReaderEndpoint": "db_cluster_id
.cluster-ro-unique_string
.primary_region
.rds.amazonaws.com", "MultiAZ": false, "Engine": "aurora-mysql", "EngineVersion": "5.7.mysql_aurora.2.11.2", "ReadReplicaIdentifiers": [ "arn:aws:rds:secondary_region
:123456789012:cluster:db_cluster_id
" ], "DBClusterMembers": [ { "DBInstanceIdentifier": "db_instance_id
", "IsClusterWriter": true, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 } ], ... "TagList": [], "GlobalWriteForwardingRequested": false } ] }
글로벌 클러스터의 라이터 엔드포인트를 보려면 RDS API DescribeGlobalClusters 작업을 사용합니다. 글로벌 클러스터의 멤버 DB 클러스터에 대한 클러스터 및 리더 엔드포인트를 보려면 RDS API DescribeDBClusters 작업을 사용합니다.
글로벌 라이터 엔드포인트 사용 시 고려 사항
다음 지침과 모범 사례에 따라 Aurora Global Database 라이터 엔드포인트를 효과적으로 사용할 수 있습니다.
-
리전 간 장애 조치 또는 전환 후 중단을 최소화하기 위해 애플리케이션 컴퓨팅과 기본 및 보조 AWS 리전 간에 VPC 연결을 설정할 수 있습니다. 예를 들어 기본 클러스터와 동일한 VPC에서 실행 중인 애플리케이션 또는 클라이언트 시스템이 있다고 가정해 보겠습니다. 보조 클러스터가 승격되면 전역 라이터 엔드포인트가 해당 클러스터를 가리키도록 자동으로 변경됩니다. 글로벌 라이터 엔드포인트를 사용하면 애플리케이션의 연결 설정을 변경할 수 없지만, 두 VPC 간에 네트워킹을 설정할 때까지 애플리케이션은 새로 승격된 기본 AWS 리전의 VPC에서 IP 주소에 액세스할 수 없습니다. 이 연결을 설정하기 위한 다양한 옵션을 평가하려면 Amazon VPC와 Amazon VPC 간 연결 옵션을 참조하세요.
-
글로벌 데이터베이스 장애 조치 또는 전환 후 글로벌 라이터 엔드포인트 업데이트는 도메인 이름 서비스(DNS) 캐싱 기간에 따라 시간이 오래 걸릴 수 있습니다. 자세한 내용은 DNS 캐싱을 참조하세요. Aurora Global Database는 글로벌 라이터 엔드포인트에서 DNS 변경 사항이 표시되면 RDS 이벤트를 내보냅니다. 이벤트를 사용하여 이벤트가 생성된 후 기간이 지나도 DNS 캐시가 연장되지 않도록 전략을 수립할 수 있습니다. 자세한 내용은 DB 클러스터 이벤트 단원을 참조하십시오.
-
Aurora Global Database는 데이터를 비동기적으로 복제합니다. 리전 간 장애 조치 방법을 사용하면 장애 조치가 시작되기 전에 선택한 보조에 복제되지 않은 일부 쓰기 트랜잭션 데이터가 발생할 수 있습니다. Aurora는 원래 기본 AWS 리전에서 쓰기를 차단하기 위해 최선의 노력을 기울일지라도 장애 조치는 브레인 분할 문제에 취약할 수 있습니다. 데이터 손실 및 브레인 분할 위험을 최소화하기 위한 고려 사항은 Aurora Global Database 라이터 엔드포인트에도 적용됩니다. 자세한 내용은 Aurora Global Database에서 계획된 관리형 장애 조치 수행 단원을 참조하십시오.