로컬 쓰기 전달을 위한 Aurora PostgreSQL 구성 - Amazon Aurora

로컬 쓰기 전달을 위한 Aurora PostgreSQL 구성

다음 섹션을 사용하여 Amazon Aurora PostgreSQL DB 클러스터에 대한 로컬 쓰기 전달을 활성화하고, 일관성 수준을 구성하며, 쓰기 전달을 사용하여 트랜잭션을 관리할 수 있습니다.

로컬 쓰기 전달 활성화

기본적으로 Aurora PostgreSQL DB 클러스터에는 로컬 쓰기 전달이 활성화되어 있지 않습니다. 인스턴스 수준이 아닌 클러스터 수준에서 직접 로컬 쓰기 전달을 활성화합니다.

DB 클러스터를 만들거나 수정할 때 AWS Management Console을 사용하여 읽기 전용 복제본 쓰기 전달 아래의 로컬 쓰기 전달 켜기 확인란을 선택합니다.

AWS CLI를 사용하여 로컬 쓰기 전달을 활성화하려면 --enable-local-write-forwarding 옵션을 사용합니다. 이 옵션은 create-db-cluster 명령을 사용하여 새 DB 클러스터를 생성할 때 작동합니다. modify-db-cluster 명령을 사용하여 기존 DB 클러스터를 수정할 때도 작동합니다. 이러한 동일한 CLI 명령과 함께 --no-enable-local-write-forwarding 옵션을 사용하여 로컬 쓰기 전달을 비활성화할 수 있습니다.

다음 예시에서는 로컬 쓰기 전달이 활성화된 Aurora PostgreSQL DB 클러스터를 생성합니다.

aws rds create-db-cluster \ --db-cluster-identifier write-forwarding-test-cluster \ --enable-local-write-forwarding \ --engine aurora-postgresql \ --engine-version 16.4 \ --master-username myuser \ --master-user-password mypassword \ --backup-retention 1

그런 다음 쓰기 전달을 사용할 수 있도록 라이터 및 리더 DB 인스턴스를 생성합니다. 자세한 내용은 Amazon Aurora DB 클러스터 생성 단원을 참조하십시오.

Amazon RDS API를 사용하여 로컬 쓰기 전달을 활성화하려면 EnableLocalWriteForwarding 파라미터를 true로 설정합니다. 이 파라미터는 CreateDBCluster 작업을 사용하여 새 DB 클러스터를 생성할 때 작동합니다. ModifyDBCluster 작업을 사용하여 기존 DB 클러스터를 수정할 때도 작동합니다. EnableLocalWriteForwarding 파라미터를 false로 설정하여 로컬 쓰기 전달을 비활성화할 수 있습니다.

데이터베이스 세션에 대한 로컬 쓰기 전달 활성화

apg_write_forward.consistency_mode 파라미터는 쓰기 전달을 가능하게 하는 DB 파라미터 및 DB 클러스터 파라미터입니다. 읽기 일관성 수준에 대해 SESSION, EVENTUAL, GLOBAL 또는 OFF를 지정할 수 있습니다. 일관성 수준에 대한 자세한 내용은 Aurora PostgreSQL에서 로컬 쓰기 전달의 일관성 및 격리 단원을 참조하세요.

이 파라미터에는 다음과 같은 규칙이 적용됩니다.

  • 기본값은 SESSION입니다.

  • apg_write_forward.consistency_modeEVENTUAL, SESSION 또는 GLOBAL로 설정하는 경우에만 로컬 쓰기 전달을 사용할 수 있습니다. 이 파라미터는 로컬 쓰기 전달이 활성화되어 있는 DB 클러스터의 리더 인스턴스에만 적용됩니다.

  • 값을 OFF로 설정하면 세션에서 로컬 쓰기 전달이 비활성화됩니다.

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

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

참고

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

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

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

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

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

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

    참고

    글로벌 일관성 모드는 세션 내에서 실행되는 쿼리의 지연 시간에 영향을 미칩니다. 세션에서 쓰기 쿼리를 전송하지 않은 경우에도 대기를 수행합니다.

  • OFF - 로컬 쓰기 전달이 비활성화되었습니다.

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

쓰기 전달과 관련된 모든 파라미터에 대한 자세한 내용은 쓰기 전달을 위한 기본 파라미터 설정 단원을 참조하십시오.

쓰기 전달을 사용한 트랜잭션 액세스 모드

트랜잭션 액세스 모드가 읽기 전용으로 설정된 경우 로컬 쓰기 전달이 사용되지 않습니다. DB 클러스터에 연결되어 있고 로컬 쓰기 전달이 활성화된 세션에 연결되어 있는 경우에만 읽기 쓰기를 사용하도록 액세스 모드를 설정할 수 있습니다.

트랜잭션 액세스 모드에 대한 자세한 내용은 트랜잭션 설정을 참조하세요.