Aurora PostgreSQL 글로벌 데이터베이스에서 쓰기 전달 사용 - Amazon Aurora

Aurora PostgreSQL 글로벌 데이터베이스에서 쓰기 전달 사용

Aurora PostgreSQL의 쓰기 전달을 사용할 수 있는 리전 및 버전

쓰기 전달은 Aurora PostgreSQL 버전 15.4 이상 마이너 버전과 버전 14.9 이상 마이너 버전에서 지원됩니다. 쓰기 전달은 Aurora PostgreSQL 기반 글로벌 데이터베이스를 사용할 수 있는 모든 리전에서 사용할 수 있습니다.

Aurora PostgreSQL 글로벌 데이터베이스의 버전 및 리전 가용성에 대한 자세한 정보는 Aurora PostgreSQL을 사용하는 Aurora 전역 데이터베이스 섹션을 참조하세요.

Aurora PostgreSQL에서 쓰기 전달 활성화

기본적으로 Aurora 글로벌 데이터베이스에 보조 클러스터를 추가할 때는 쓰기 전달이 활성화되지 않습니다. 보조 DB 클러스터를 생성하는 동안 또는 생성 후 언제든지 보조 DB 클러스터에 대한 쓰기 전달을 활성화할 수 있습니다. 필요한 경우 나중에 비활성화할 수 있습니다. 쓰기 전달을 활성화하거나 비활성화해도 가동 중지나 재부팅이 발생하지 않습니다.

콘솔에서 보조 DB 클러스터를 생성하거나 수정할 때 쓰기 전달을 활성화하거나 비활성화할 수 있습니다.

보조 DB 클러스터를 생성할 때 쓰기 전달 활성화 또는 비활성화

보조 DB 클러스터를 새로 생성할 때 읽기 전용 복제본 쓰기 전달에서 전역 쓰기 전달 켜기켜기 확인란을 선택하여 쓰기 전달을 활성화합니다. 또는 확인란의 선택을 취소하여 비활성화할 수도 있습니다. 보조 DB 클러스터를 만들려면 Amazon Aurora DB 클러스터 생성 섹션의 DB 엔진에 대한 지침을 따르세요.

다음 스크린샷은 전역 쓰기 전달 켜기 확인란이 선택된 읽기 전용 복제본 쓰기 전달 섹션을 보여줍니다.

전역 쓰기 전달 켜기 확인란이 선택된 읽기 전용 복제본 쓰기 전달 섹션.

보조 DB 클러스터를 수정할 때 쓰기 전달 활성화 또는 비활성화

콘솔에서 쓰기 전달을 활성화하거나 비활성화하도록 보조 DB 클러스터를 수정할 수 있습니다.

콘솔에서 쓰기 전달을 활성화하거나 비활성화하도록 보조 DB 클러스터를 수정하는 방법
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 데이터베이스를 선택합니다.

  3. 보조 DB 클러스터를 선택하고 수정을 선택합니다.

  4. 읽기 전용 복제본 쓰기 전달 섹션에서 전역 쓰기 전달 켜기 확인란을 선택하거나 선택을 취소합니다.

  5. Continue(계속)을 선택합니다.

  6. 수정 예약에서 즉시 적용을 선택합니다. 예약된 다음 유지 관리 기간에 적용을 선택하면 Aurora가 이 설정을 무시하고 쓰기 전달을 즉시 활성화합니다.

  7. 클러스터 수정을 선택합니다.

AWS CLI를 사용하여 쓰기 전달을 활성화하려면 --enable-global-write-forwarding 옵션을 사용합니다. 이 옵션은 create-db-cluster 명령을 사용하여 새 보조 클러스터를 생성할 때 작동합니다. 이 옵션은 modify-db-cluster 명령을 사용하여 기존 보조 클러스터를 수정할 때도 작동합니다. 이렇게 하려면 글로벌 데이터베이스에서 쓰기 전달을 지원하는 Aurora 버전을 사용해야 합니다. 이러한 동일한 CLI 명령과 함께 --no-enable-global-write-forwarding 옵션을 사용하여 쓰기 전달을 비활성화할 수 있습니다.

다음 프로시저는 AWS CLI를 사용하여 글로벌 클러스터의 보조 DB 클러스터에 대한 쓰기 전달을 활성화하거나 비활성화하는 방법을 설명합니다.

기존 보조 DB 클러스터에서 쓰기 전달을 활성화하거나 비활성화하는 방법
  • modify-db-cluster AWS CLI 명령을 호출하고 다음 값을 입력합니다.

    • --db-cluster-identifier – DB 클러스터의 이름입니다.

    • 활성화할 경우 --enable-global-write-forwarding, 비활성화할 경우 --no-enable-global-write-forwarding

    다음 예시에서는 DB 클러스터 sample-secondary-db-cluster의 쓰기 전달을 활성화합니다.

    대상 LinuxmacOS, 또는Unix:

    aws rds modify-db-cluster \ --db-cluster-identifier sample-secondary-db-cluster \ --enable-global-write-forwarding

    Windows의 경우:

    aws rds modify-db-cluster ^ --db-cluster-identifier sample-secondary-db-cluster ^ --enable-global-write-forwarding

Amazon RDS API를 사용하여 쓰기 전달을 활성화하려면 EnableGlobalWriteForwarding 파라미터를 true로 설정합니다. 이 파라미터는 CreateDBCluster 작업을 사용하여 새 보조 클러스터를 생성할 때 작동합니다. 이 파라미터는 ModifyDBCluster 작업을 사용하여 기존 보조 클러스터를 수정할 때도 작동합니다. 이렇게 하려면 글로벌 데이터베이스에서 쓰기 전달을 지원하는 Aurora 버전을 사용해야 합니다. EnableGlobalWriteForwarding 파라미터를 false로 설정하여 쓰기 전달을 비활성화할 수 있습니다.

Aurora PostgreSQL에서 보조 클러스터에 쓰기 전달이 활성화되어 있는지 확인

보조 클러스터에서 쓰기 전달을 사용할 수 있는지 여부를 확인하려면 클러스터에 "GlobalWriteForwardingStatus": "enabled" 특성이 있는지 여부를 확인할 수 있습니다.

AWS Management Console에서 클러스터에 대한 세부 정보 페이지의 구성 탭에 Read replica write forwarding이 표시됩니다. 모든 클러스터에 대한 글로벌 쓰기 전달 설정의 상태를 보려면 다음 AWS CLI 명령을 실행합니다.

보조 클러스터에는 쓰기 전달이 켜져 있는지 또는 꺼져 있는지를 나타내는 "enabled" 또는 "disabled" 값이 표시됩니다. null 값은 해당 클러스터에 쓰기 전달을 사용할 수 없음을 나타냅니다. 클러스터가 글로벌 데이터베이스의 일부가 아니거나, 보조 클러스터 대신 기본 클러스터입니다. 또한 쓰기 전달이 켜지거나 꺼지는 중인 경우 이 값은 "enabling" 또는 "disabling"일 수 있습니다.

aws rds describe-db-clusters --query '*[].{DBClusterIdentifier:DBClusterIdentifier,GlobalWriteForwardingStatus:GlobalWriteForwardingStatus}' [ { "GlobalWriteForwardingStatus": "enabled", "DBClusterIdentifier": "aurora-write-forwarding-test-replica-1" }, { "GlobalWriteForwardingStatus": "disabled", "DBClusterIdentifier": "aurora-write-forwarding-test-replica-2" }, { "GlobalWriteForwardingStatus": null, "DBClusterIdentifier": "non-global-cluster" } ]

글로벌 쓰기 전달이 활성화된 모든 보조 클러스터를 찾으려면 다음 명령을 실행하십시오. 이 명령은 또한 클러스터의 판독기 엔드포인트를 반환합니다. Aurora 글로벌 데이터베이스에서 보조 클러스터에서 기본 클러스터로의 쓰기 전달을 사용할 때는 보조 클러스터의 읽기 장치 엔드포인트를 사용합니다.

aws rds describe-db-clusters --query 'DBClusters[].{DBClusterIdentifier:DBClusterIdentifier,GlobalWriteForwardingStatus:GlobalWriteForwardingStatus,ReaderEndpoint:ReaderEndpoint} | [?GlobalWriteForwardingStatus == `enabled`]' [ { "GlobalWriteForwardingStatus": "enabled", "ReaderEndpoint": "aurora-write-forwarding-test-replica-1.cluster-ro-cnpexample.us-west-2.rds.amazonaws.com", "DBClusterIdentifier": "aurora-write-forwarding-test-replica-1" } ]

Aurora PostgreSQL에서 쓰기 전달과 애플리케이션 및 SQL 호환성

특정 명령문은 쓰기 전달과 함께 글로벌 데이터베이스에서 사용할 때 허용되지 않거나 부실 결과를 생성할 수 있습니다. 또한 사용자 정의 함수 및 사용자 정의 프로시저는 지원되지 않습니다. 따라서 EnableGlobalWriteForwarding 설정은 보조 클러스터에 대해 기본적으로 꺼져 있습니다. 이 설정을 켜기 전에, 애플리케이션 코드가 이러한 제한 사항의 영향을 받지 않는지 확인하십시오.

다음과 같은 종류의 SQL 문을 쓰기 전달과 함께 사용할 수 있습니다.

  • INSERT, DELETEUPDATE와 같은 데이터 조작 언어(DML) 문

  • SELECT FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE }

  • PREPAREEXECUTE

  • 이 목록에 있는 문이 포함된 EXPLAIN

다음과 같은 종류의 SQL 문은 쓰기 전달에서 지원되지 않습니다.

  • 데이터 정의 언어(DDL) 문

  • ANALYZE

  • CLUSTER

  • COPY

  • 커서 - 커서는 지원되지 않으므로 쓰기 전달을 사용하기 전에 커서를 닫아야 합니다.

  • GRANT|REVOKE|REASSIGN OWNED|SECURITY LABEL

  • LOCK

  • SAVEPOINT

  • SELECT INTO

  • SET CONSTRAINTS

  • TRUNCATE

  • VACUUM

Aurora PostgreSQL에서 쓰기 전달의 격리 및 일관성

쓰기 전달을 사용하는 세션에서는 REPEATABLE READREAD COMMITTED 격리 수준을 사용할 수 있습니다. 하지만 SERIALIZABLE 격리 수준은 지원되지 않습니다.

보조 클러스터에서 읽기 일관성 정도를 제어할 수 있습니다. 읽기 일관성 수준은 기본 클러스터에서 일부 또는 모든 변경 사항이 복제되도록 각 읽기 작업 전에 보조 클러스터가 대기하는 정도를 결정합니다. 읽기 일관성 수준을 조정하여 세션에서 전달된 모든 쓰기 작업이 후속 쿼리 전에 보조 클러스터에 표시되도록 할 수 있습니다. 또한 이 설정을 사용하여 보조 클러스터의 쿼리에 항상 기본 클러스터의 최신 업데이트가 표시되게 할 수 있습니다. 이는 다른 세션이나 다른 클러스터에서 제출된 경우에도 마찬가지입니다. 애플리케이션에 대해 이러한 유형의 동작을 지정하려면 세션 수준 파라미터 apg_write_forward.consistency_mode의 값을 적절히 선택합니다. apg_write_forward.consistency_mode 파라미터는 쓰기 전달이 활성화된 보조 클러스터에만 영향을 미칩니다.

참고

apg_write_forward.consistency_mode 파라미터에 대해 SESSION, EVENTUAL, GLOBAL 또는 OFF 값을 지정할 수 있습니다. 기본적으로 이 값은 SESSION로 설정됩니다. 값을 OFF로 설정하면 세션에서 쓰기 전달이 비활성화됩니다.

일관성 수준을 높이면 애플리케이션은 변경 사항이 AWS 리전 간에 전파될 때까지 더 오랜 시간 동안 대기합니다. 빠른 응답 시간과 쿼리가 실행되기 전에 다른 위치에서 변경한 내용을 완전히 사용할 수 있도록 보장하는 것 사이의 균형을 선택할 수 있습니다.

사용 가능한 각 일관성 보장 모드 설정의 효과는 다음과 같습니다.

  • SESSION - 쓰기 전달을 사용하는 보조 AWS 리전의 모든 쿼리가 해당 세션에서 수행한 모든 변경의 결과를 표시합니다. 변경 내용은 트랜잭션이 커밋되었는지 여부와 상관없이 표시됩니다. 필요한 경우 쿼리는 전달된 쓰기 작업의 결과가 현재 리전으로 복제될 때까지 대기합니다. 쿼리는 다른 리전이나 현재 리전 내의 다른 세션에서 수행한 쓰기 작업에서 업데이트된 결과가 나올 때까지 대기하지 않습니다.

  • EVENTUAL - 쓰기 전달을 사용하는 보조 AWS 리전의 쿼리가 복제 지연으로 인해 약간 오래된 데이터를 표시할 수 있습니다. 동일한 세션에서 쓰기 작업의 결과는 쓰기 작업이 기본 리전에서 수행되어 현재 리전으로 복제될 때까지 표시되지 않습니다. 쿼리는 업데이트된 결과를 사용할 수 있을 때까지 대기하지 않습니다. 따라서 쿼리는 명령문의 타이밍 및 복제 지연 양에 따라 이전 데이터 또는 업데이트된 데이터를 검색할 수 있습니다.

  • GLOBAL - 보조 AWS 리전의 세션에 해당 세션에서 변경한 내용이 표시됩니다. 또한 기본 AWS 리전 및 기타 보조 AWS 리전에서 커밋된 모든 변경 내용도 표시됩니다. 각 쿼리는 세션 지연 양에 따라 다른 기간 동안 대기할 수 있습니다. 쿼리가 시작된 시간을 기준으로, 보조 클러스터가 기본 클러스터에서 커밋된 모든 데이터로 최신 상태가 되면 쿼리가 진행됩니다.

  • OFF - 세션에서 쓰기 전달이 비활성화되었습니다.

쓰기 전달과 관련된 모든 파라미터에 대한 자세한 내용은 Aurora PostgreSQL에서 쓰기 전달에 대한 구성 파라미터 단원을 참조하십시오.

Aurora PostgreSQL에서 쓰기 전달을 사용하여 멀티파트 문 실행

DML 문은 INSERT ... SELECT 문 또는 DELETE ... WHERE 문과 같이 여러 부분으로 구성될 수 있습니다. 이 경우 전체 명령문은 기본 클러스터로 전달되어 기본 클러스터에서 실행됩니다.

Aurora PostgreSQL에서 쓰기 전달에 대한 구성 파라미터

Aurora 클러스터 파라미터 그룹에는 쓰기 전달 기능에 대한 설정이 포함되어 있습니다. 이러한 파라미터는 클러스터 파라미터이므로 각 클러스터의 모든 DB 인스턴스에 이러한 변수의 동일한 값이 있어야 합니다. 이러한 파라미터에 대한 자세한 내용은 다음 표에 요약되어 있으며, 표 뒤에 사용 참고 사항이 나와 있습니다.

이름 범위 유형 기본값 유효값
apg_write_forward.connect_timeout 세션 30 0–2147483647
apg_write_forward.consistency_mode 세션 enum 세션 SESSION, EVENTUAL, GLOBAL, OFF
apg_write_forward.idle_in_transaction_session_timeout 세션 밀리초 86400000 0–2147483647
apg_write_forward.idle_session_timeout 세션 밀리초 300000 0–2147483647
apg_write_forward.max_forwarding_connections_percent 전 세계 int 25 1–100

apg_write_forward.max_forwarding_connections_percent 파라미터는 리더에서 전달된 쿼리를 처리하기 위해 사용할 수 있는 데이터베이스 연결의 상한입니다. 이 값은 기본 클러스터의 라이터 DB 인스턴스에 대한 max_connections 설정의 백분율로 표시됩니다. 예를 들어 max_connections800이고 apg_write_forward.max_forwarding_connections_percent10이면 라이터는 최대 80개의 동시 전달 세션을 허용합니다. 이러한 연결은 max_connections 설정을 통해 관리되는 동일한 연결 풀에서 발생합니다. 하나 이상의 보조 클러스터에 쓰기 전달이 활성화된 경우 이 설정은 기본 클러스터에만 적용됩니다.

보조 클러스터에서 다음 설정을 사용하세요.

  • apg_write_forward.consistency_mode - 보조 클러스터에서 읽기 일관성 정도를 제어하는 세션 수준 파라미터입니다. 유효한 값은 SESSION, EVENTUAL, GLOBAL 또는 OFF입니다. 기본적으로 이 값은 SESSION로 설정됩니다. 값을 OFF로 설정하면 세션에서 쓰기 전달이 비활성화됩니다. 일관성 수준에 대한 자세한 내용은 Aurora PostgreSQL에서 쓰기 전달의 격리 및 일관성 단원을 참조하세요. 이 파라미터는 쓰기 전달이 활성화되어 있고 Aurora 글로벌 데이터베이스에 있는 보조 클러스터의 리더 인스턴스에만 적용됩니다.

  • apg_write_forward.connect_timeout - 기본 클러스터에 연결할 때 보조 클러스터가 연결을 끊기 전에 대기하는 최대 시간(초)입니다. 값이 0이면 무한정 대기할 수 있다는 뜻입니다.

  • apg_write_forward.idle_in_transaction_session_timeout - 기본 클러스터가 보조 클러스터에서 전달되고 열린 트랜잭션이 있는 연결을 닫기 전에 활동을 대기하는 시간(밀리초)입니다. 세션이 이 기간을 넘어 트랜잭션에서 유휴 상태로 유지되면 Aurora에서 세션이 종료됩니다. 0 값은 제한 시간을 비활성화합니다.

  • apg_write_forward.idle_session_timeout - 기본 클러스터가 보조 클러스터에서 전달된 연결을 닫기 전에 활동을 대기하는 시간(밀리초)입니다. 세션이 이 기간을 넘어 유휴 상태로 유지되면 Aurora에서 세션이 종료됩니다. 0 값은 제한 시간을 비활성화합니다.

Aurora PostgreSQL에서 쓰기 전달에 대한 Amazon CloudWatch 지표

다음 Amazon CloudWatch 지표는 하나 이상의 보조 클러스터에서 쓰기 전달을 사용할 때 기본 클러스터에 적용됩니다. 이러한 지표는 모두 기본 클러스터의 라이터 DB 인스턴스에서 측정됩니다.

CloudWatch 지표

단위 및 설명

AuroraForwardingWriterDMLThroughput

개수(초당). 이 라이터 DB 인스턴스에서 초당 처리되는 전달된 DML 문 수입니다.

AuroraForwardingWriterOpenSessions

개수. 전달된 쿼리를 처리하는 이 라이터 DB 인스턴스의 열린 세션 수입니다.

AuroraForwardingWriterTotalSessions

개수. 라이터 DB 인스턴스에 있는 전달된 세션의 총 개수입니다.

다음 CloudWatch 지표는 각 보조 클러스터에 적용됩니다. 이러한 지표는 쓰기 전달이 활성화된 보조 클러스터의 각 리더 DB 인스턴스에서 측정됩니다.

CloudWatch 지표

단위 및 설명

AuroraForwardingReplicaCommitThroughput

개수(초당). 이 복제본이 초당 전달하는 세션의 커밋 수입니다.

AuroraForwardingReplicaDMLLatency

밀리초. 복제본에 있는 전달된 DML의 평균 응답 시간(밀리초)입니다.

AuroraForwardingReplicaDMLThroughput

개수(초당). 이 복제본에서 초당 처리되는 전달된 DML 문 수입니다.

AuroraForwardingReplicaErrorSessionsLimit

개수. 최대 연결 또는 최대 쓰기 전달 연결 한도에 도달하여 기본 클러스터에서 거부한 세션 수입니다.

AuroraForwardingReplicaOpenSessions

개수. 복제본 인스턴스에서 쓰기 전달을 사용하는 세션 수입니다.

AuroraForwardingReplicaReadWaitLatency

밀리초. 복제본이 기본 클러스터의 LSN과 일치할 때까지 기다리는 평균 대기 시간(밀리초)입니다. 리더 DB 인스턴스가 대기하는 정도는 apg_write_forward.consistency_mode 설정에 따라 다릅니다. 이 설정에 대한 자세한 내용은 Aurora PostgreSQL에서 쓰기 전달에 대한 구성 파라미터 섹션을 참조하세요.

Aurora PostgreSQL에서 쓰기 전달을 위한 대기 이벤트

Amazon Aurora는 Aurora PostgreSQL에서 쓰기 전달을 사용할 때 다음과 같은 대기 이벤트를 생성합니다.

IPC:AuroraWriteForwardConnect

IPC:AuroraWriteForwardConnect 이벤트는 보조 DB 클러스터의 백엔드 프로세스가 기본 DB 클러스터의 라이터 노드에 대한 연결이 열리기를 기다리고 있을 때 발생합니다.

대기 증가의 가능한 원인

이 이벤트는 보조 리전의 리더 노드에서 기본 DB 클러스터의 라이터 노드로의 연결 시도 횟수가 늘어날수록 증가합니다.

작업

보조 노드에서 기본 리전 라이터 노드로의 동시 연결 수를 줄이세요.

IPC:AuroraWriteForwardConsistencyPoint

IPC:AuroraWriteForwardConsistencyPoint 이벤트는 전달된 쓰기 작업의 결과가 현재 리전으로 복제될 때까지 보조 DB 클러스터에서 노드에서 대기하는 시간을 나타냅니다. 이 이벤트는 세션 수준 apg_write_forward.consistency_mode 파라미터가 다음 중 하나로 설정된 경우에만 생성됩니다.

  • SESSION - 보조 노드에 대한 쿼리는 해당 세션에서 수행한 모든 변경의 결과를 대기합니다.

  • GLOBAL - 보조 노드에 대한 쿼리는 해당 세션의 변경 결과와 글로벌 클러스터의 기본 리전 및 기타 보조 리전 모두에서 커밋된 모든 변경 내용을 포함하여 해당 세션의 변경 결과를 기다립니다.

apg_write_forward.consistency_mode 파라미터 설정에 대한 자세한 내용은 Aurora PostgreSQL에서 쓰기 전달에 대한 구성 파라미터 섹션을 참조하세요.

대기 증가의 가능한 원인

대기 시간이 길어지는 일반적인 원인은 다음과 같습니다.

  • Amazon CloudWatch ReplicaLag 지표로 측정한 바와 같이 복제 지연이 증가했습니다. 이 지표에 대한 자세한 정보는 Aurora PostgreSQL 복제 모니터링 섹션을 참조하세요.

  • 기본 리전의 라이터 노드 또는 보조 노드의 로드가 증가했습니다.

작업

애플리케이션 요구 사항에 따라 일관성 모드를 변경합니다.

IPC:AuroraWriteForwardExecute

IPC:AuroraWriteForwardExecute 이벤트는 보조 DB 클러스터의 백엔드 프로세스가 전달된 쿼리가 완료되고 기본 DB 클러스터의 라이터 노드로부터 결과를 얻기를 기다리고 있을 때 발생합니다.

대기 증가의 가능한 원인

대기가 늘어나는 일반적인 원인은 다음과 같습니다.

  • 기본 리전의 라이터 노드에서 많은 수의 행을 가져옵니다.

  • 보조 노드와 기본 리전 라이터 노드 사이의 네트워크 지연 시간이 증가하면 보조 노드가 라이터 노드로부터 데이터를 수신하는 데 걸리는 시간이 늘어납니다.

  • 보조 노드의 로드가 증가하면 보조 노드에서 기본 리전 라이터 노드로의 쿼리 요청 전송이 지연될 수 있습니다.

  • 기본 리전 라이터 노드의 로드가 증가하면 라이터 노드에서 보조 노드로의 데이터 전송이 지연될 수 있습니다.

작업

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.

  • 필요한 데이터만 검색하도록 쿼리를 최적화합니다.

  • 데이터 조작 언어(DML) 작업을 최적화하여 필요한 데이터만 수정합니다.

  • 보조 노드 또는 기본 리전 라이터 노드가 CPU 또는 네트워크 대역폭의 제약을 받는 경우 CPU 용량이 더 크거나 네트워크 대역폭이 더 큰 인스턴스 유형으로 변경하는 것이 좋습니다.

IPC:AuroraWriteForwardGetGlobalConsistencyPoint

IPC:AuroraWriteForwardGetGlobalConsistencyPoint 이벤트는 글로벌 일관성 모드를 사용하는 보조 DB 클러스터의 백엔드 프로세스가 쿼리를 실행하기 전에 라이터 노드로부터 글로벌 일관성 보장 지점을 가져오기를 기다리고 있을 때 발생합니다.

대기 증가의 가능한 원인

대기가 늘어나는 일반적인 원인은 다음과 같습니다.

  • 보조 노드와 기본 리전 라이터 노드 사이의 네트워크 지연 시간이 증가하면 보조 노드가 라이터 노드로부터 데이터를 수신하는 데 걸리는 시간이 늘어납니다.

  • 보조 노드의 로드가 증가하면 보조 노드에서 기본 리전 라이터 노드로의 쿼리 요청 전송이 지연될 수 있습니다.

  • 기본 리전 라이터 노드의 로드가 증가하면 라이터 노드에서 보조 노드로의 데이터 전송이 지연될 수 있습니다.

작업

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.

  • 애플리케이션 요구 사항에 따라 일관성 모드를 변경합니다.

  • 보조 노드 또는 기본 리전 라이터 노드가 CPU 또는 네트워크 대역폭의 제약을 받는 경우 CPU 용량이 더 크거나 네트워크 대역폭이 더 큰 인스턴스 유형으로 변경하는 것이 좋습니다.

IPC:AuroraWriteForwardXactAbort

IPC:AuroraWriteForwardXactAbort 이벤트는 보조 DB 클러스터의 백엔드 프로세스가 원격 정리 쿼리 결과를 기다리고 있을 때 발생합니다. 쓰기 전달 트랜잭션이 중단된 후 프로세스를 적절한 상태로 되돌리기 위해 정리 쿼리가 실행됩니다. Amazon Aurora는 오류가 발견되었거나 사용자가 명시적인 ABORT 명령을 실행했거나 실행 중인 쿼리를 취소했을 때 이러한 작업을 수행합니다.

대기 증가의 가능한 원인

대기가 늘어나는 일반적인 원인은 다음과 같습니다.

  • 보조 노드와 기본 리전 라이터 노드 사이의 네트워크 지연 시간이 증가하면 보조 노드가 라이터 노드로부터 데이터를 수신하는 데 걸리는 시간이 늘어납니다.

  • 보조 노드의 로드가 증가하면 보조 노드에서 기본 리전 라이터 노드로의 정리 쿼리 요청 전송이 지연될 수 있습니다.

  • 기본 리전 라이터 노드의 로드가 증가하면 라이터 노드에서 보조 노드로의 데이터 전송이 지연될 수 있습니다.

작업

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.

  • 트랜잭션이 중단된 원인을 조사하세요.

  • 보조 노드 또는 기본 리전 라이터 노드가 CPU 또는 네트워크 대역폭의 제약을 받는 경우 CPU 용량이 더 크거나 네트워크 대역폭이 더 큰 인스턴스 유형으로 변경하는 것이 좋습니다.

IPC:AuroraWriteForwardXactCommit

IPC:AuroraWriteForwardXactCommit 이벤트는 보조 DB 클러스터의 백엔드 프로세스가 전달된 커밋 트랜잭션 명령의 결과를 기다리고 있을 때 발생합니다.

대기 증가의 가능한 원인

대기가 늘어나는 일반적인 원인은 다음과 같습니다.

  • 보조 노드와 기본 리전 라이터 노드 사이의 네트워크 지연 시간이 증가하면 보조 노드가 라이터 노드로부터 데이터를 수신하는 데 걸리는 시간이 늘어납니다.

  • 보조 노드의 로드가 증가하면 보조 노드에서 기본 리전 라이터 노드로의 쿼리 요청 전송이 지연될 수 있습니다.

  • 기본 리전 라이터 노드의 로드가 증가하면 라이터 노드에서 보조 노드로의 데이터 전송이 지연될 수 있습니다.

작업

보조 노드 또는 기본 리전 라이터 노드가 CPU 또는 네트워크 대역폭의 제약을 받는 경우 CPU 용량이 더 크거나 네트워크 대역폭이 더 큰 인스턴스 유형으로 변경하는 것이 좋습니다.

IPC:AuroraWriteForwardXactStart

IPC:AuroraWriteForwardXactStart 이벤트는 보조 DB 클러스터의 백엔드 프로세스가 전달된 시작 트랜잭션 명령의 결과를 기다리고 있을 때 발생합니다.

대기 증가의 가능한 원인

대기가 늘어나는 일반적인 원인은 다음과 같습니다.

  • 보조 노드와 기본 리전 라이터 노드 사이의 네트워크 지연 시간이 증가하면 보조 노드가 라이터 노드로부터 데이터를 수신하는 데 걸리는 시간이 늘어납니다.

  • 보조 노드의 로드가 증가하면 보조 노드에서 기본 리전 라이터 노드로의 쿼리 요청 전송이 지연될 수 있습니다.

  • 기본 리전 라이터 노드의 로드가 증가하면 라이터 노드에서 보조 노드로의 데이터 전송이 지연될 수 있습니다.

작업

보조 노드 또는 기본 리전 라이터 노드가 CPU 또는 네트워크 대역폭의 제약을 받는 경우 CPU 용량이 더 크거나 네트워크 대역폭이 더 큰 인스턴스 유형으로 변경하는 것이 좋습니다.