

# Aurora PostgreSQL에 대한 로컬 쓰기 전달 작업
<a name="aurora-postgresql-write-forwarding-understanding"></a>

다음 섹션을 사용하여 데이터베이스 클러스터에 로컬 쓰기 전달이 활성화되어 있는지 확인하고, 호환성 고려 사항을 확인하며, 구성 가능한 파라미터 및 인증 설정을 참조할 수 있습니다. 이 정보는 Aurora PostgreSQL의 로컬 쓰기 전달 기능을 효과적으로 활용할 수 있는 세부 정보를 제공합니다.

**참고**  
로컬 쓰기 전달을 사용하는 클러스터의 라이터 인스턴스가 다시 시작되면 로컬 쓰기 전달을 사용하는 리더 인스턴스의 활성 상태이며 전달된 트랜잭션 및 쿼리가 모두 자동으로 닫힙니다. 라이터 인스턴스를 다시 사용할 수 있게 되면 이러한 트랜잭션을 다시 시도할 수 있습니다.

## DB 클러스터에 로컬 쓰기 전달이 활성화되어 있는지 확인
<a name="aurora-postgresql-write-forwarding-describing"></a>

DB 클러스터에서 로컬 쓰기 전달을 사용할 수 있는지 확인하려면 클러스터에 `LocalWriteForwardingStatus` 속성이 `enabled`로 되어 있는지 확인합니다.

‎‎AWS Management Console에서 클러스터의 세부 정보 페이지 **구성** 탭에서 **로컬 읽기 복제본 쓰기 전달**이 **활성화됨** 상태인 것을 볼 수 있습니다.‎‎

모든 클러스터에 대한 로컬 쓰기 전달 설정의 상태를 보려면 다음 AWS CLI 명령을 실행합니다.

**Example**  

```
aws rds describe-db-clusters \
--query '*[].{DBClusterIdentifier:DBClusterIdentifier,LocalWriteForwardingStatus:LocalWriteForwardingStatus}'

[
{
"LocalWriteForwardingStatus": "enabled",
"DBClusterIdentifier": "write-forwarding-test-cluster-1"
},
{
"LocalWriteForwardingStatus": "disabled",
"DBClusterIdentifier": "write-forwarding-test-cluster-2"
},
{
"LocalWriteForwardingStatus": "requested",
"DBClusterIdentifier": "test-global-cluster-2"
},
{
"LocalWriteForwardingStatus": "null",
"DBClusterIdentifier": "aurora-postgresql-v2-cluster"
}
]
```

DB 클러스터는 `LocalWriteForwardingStatus`에 대해 다음과 같은 값을 가질 수 있습니다.
+ `disabled` - 로컬 쓰기 전달이 비활성화되었습니다.
+ `disabling` - 로컬 쓰기 전달을 비활성화하는 중입니다.
+ `enabled` - 로컬 쓰기 전달이 활성화되었습니다.
+ `enabling` - 로컬 쓰기 전달을 활성화하는 중입니다.
+ `null` - 이 DB 클러스터에서는 로컬 쓰기 전달을 사용할 수 없습니다.
+ `requested` - 로컬 쓰기 전달이 요청되었지만 아직 활성 상태가 아닙니다.

## 쓰기 전달을 위한 기본 파라미터 설정
<a name="aurora-postgresql-write-forwarding-params"></a>

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_connections`가 `800`이고 `apg_write_forward.max_forwarding_connections_percent`가 `10`이면 라이터는 최대 80개의 동시 전달 세션을 허용합니다. 이러한 연결은 `max_connections` 설정을 통해 관리되는 동일한 연결 풀에서 발생합니다. 이 설정은 클러스터에 로컬 쓰기 전달이 활성화된 경우 라이터 DB 인스턴스에만 적용됩니다.

다음 설정을 사용하여 로컬 쓰기 전달 요청을 제어합니다.
+ `apg_write_forward.consistency_mode` - 읽기 전용 복제본에서 읽기 일관성 정도를 제어하는 세션 수준 파라미터입니다. 유효한 값은 `SESSION`, `EVENTUAL`, `GLOBAL` 또는 `OFF`입니다. 기본적으로 이 값은 `SESSION`로 설정됩니다. 값을 `OFF`로 설정하면 세션에서 로컬 쓰기 전달이 비활성화됩니다. 일관성 수준에 대한 자세한 내용은 [Aurora PostgreSQL에서 로컬 쓰기 전달의 일관성 및 격리](aurora-postgresql-write-forwarding-configuring.md#aurora-postgresql-write-forwarding-isolation) 단원을 참조하세요. 이 파라미터는 로컬 쓰기 전달이 활성화되어 있는 리더 인스턴스에만 적용됩니다.
+ `apg_write_forward.connect_timeout` - 라이터 DB 인스턴스에 연결할 때 읽기 전용 복제본이 연결을 끊기 전에 대기하는 최대 시간(초)입니다. 값이 `0`이면 무한정 대기할 수 있다는 뜻입니다.
+ `apg_write_forward.idle_in_transaction_session_timeout` - 라이터 DB 인스턴스가 연결을 닫기 전에 트랜잭션이 열려 있는 읽기 전용 복제본에서 전달된 연결의 활동을 기다리는 시간(밀리초)입니다. 세션이 이 기간을 넘어 트랜잭션에서 유휴 상태로 유지되면 Aurora에서 세션이 종료됩니다. `0` 값은 제한 시간을 비활성화합니다.
+ `apg_write_forward.idle_session_timeout` - 라이터 DB 인스턴스가 연결을 닫기 전에 읽기 전용 복제본에서 전달된 연결의 활동을 기다리는 시간(밀리초)입니다. 세션이 이 기간을 넘어 유휴 상태로 유지되면 Aurora에서 세션이 종료됩니다. `0` 값은 제한 시간을 비활성화합니다.

## rdswriteforwarduser
<a name="aurora-postgresql-write-forwarding-rdswriteforwarduser"></a>

 `rdswriteforwarduser`는 읽기 전용 복제본과 라이터 DB 인스턴스 간의 연결을 설정하는 데 사용할 사용자입니다.

**참고**  
`rdswriteforwarduser`는 PUBLIC 역할을 통해 CONNECT 권한을 고객 데이터베이스에 상속합니다. PUBLIC 역할에 대한 권한이 취소된 경우 쓰기를 전달해야 하는 데이터베이스에 대한 CONNECT 권한을 부여해야 합니다.