적용 대상: Azure Database for PostgreSQL - 유연한 서버
가상 엔드포인트는 읽기-쓰기 및 읽기 전용 수신기 엔드포인트로, Azure Database for PostgreSQL 유연한 서버 인스턴스의 현재 역할에 관계없이 일관성을 유지합니다. 즉, 역할 변경 후 엔드포인트가 자동으로 올바른 인스턴스를 가리키기 때문에 주 서버로 승격 작업을 수행한 후 애플리케이션의 연결 문자열을 업데이트할 필요가 없습니다.
추가, 편집, 제거에 관계없이 가상 엔드포인트와 관련된 모든 작업은 주 서버의 컨텍스트에서 수행됩니다. Azure Portal의 기본 서버 페이지에서 이러한 엔드포인트를 관리합니다. 마찬가지로 CLI, REST API 또는 기타 유틸리티와 같은 도구를 사용하는 경우 명령 및 작업은 엔드포인트 관리를 위해 주 서버를 대상으로 합니다.
가상 엔드포인트는 두 가지 유형의 연결점을 제공합니다.
기록기 엔드포인트(읽기/쓰기): 이 엔드포인트는 항상 현재 주 서버를 가리킵니다. 사용자가 트리거하는 승격 작업에 관계없이 쓰기 작업이 올바른 서버로 전달되도록 합니다. 이 엔드포인트는 복제본을 가리키도록 변경할 수 없습니다.
읽기 전용 엔드포인트: 사용자가 읽기 복제본 또는 주 서버를 가리키도록 이 엔드포인트를 구성할 수 있습니다. 그러나 한 번에 하나의 서버만 대상으로 지정할 수 있습니다. 여러 서버 간의 부하 분산은 지원되지 않습니다. 승격 전후에 관계없이 언제든지 이 엔드포인트에 대한 대상 서버를 조정할 수 있습니다.
참고
주 서버 및 해당 복제본 중 하나당 하나의 쓰기 권한자와 하나의 읽기 전용 엔드포인트만 만들 수 있습니다.
가상 엔드포인트 및 승격 동작
승격 작업이 발생할 경우 이러한 엔드포인트의 동작은 예측 가능한 상태로 유지됩니다. 아래 섹션에서는 이러한 엔드포인트가 주 서버로 승격 및 독립 서버로 승격 시나리오에 어떻게 반응하는지 자세히 설명합니다.
가상 엔드포인트 | 원래 대상 | ‘주 서버로 승격’이 트리거될 때의 동작 | ‘독립 서버로 승격’이 트리거될 때의 동작 |
---|---|---|---|
기록기 엔드포인트 | 주 | 새로운 주 서버를 가리킵니다. | 변경되지 않고 그대로 유지됩니다. |
읽기 전용 엔드포인트 | 복제본 | 새 복제본(이전 주 복제본)을 가리킵니다. | 주 서버를 가리킵니다. |
읽기 전용 엔드포인트 | 주 | 지원되지 않습니다. | 변경되지 않고 그대로 유지됩니다. |
‘주 서버로 승격’이 트리거될 때의 동작
- 기록기 엔드포인트: 이 엔드포인트는 역할 스위치를 반영하여 새 주 서버를 가리키도록 업데이트됩니다.
- 읽기 전용 엔드포인트
- 읽기 전용 엔드포인트가 복제본을 가리키는 경우: 승격 작업 후에 읽기 전용 엔드포인트는 새 복제본(이전 주 복제본)을 가리킵니다.
- 읽기 전용 엔드포인트가 주 엔드포인트를 가리키는 경우: 승격이 올바르게 작동하려면 승격하려는 서버에서 읽기 전용 엔드포인트를 가리켜야 합니다. 이 경우 주 복제본을 가리키는 것은 지원되지 않으며 승격하기 전에 복제본을 가리키도록 다시 구성해야 합니다.
‘독립 서버로 승격하고 복제에서 제거’가 트리거되는 경우의 동작
- 기록기 엔드포인트: 이 엔드포인트는 변경되지 않습니다. 주 역할을 보유하여 서버로 트래픽을 계속 전달합니다.
- 읽기 전용 엔드포인트
- 읽기 전용 엔드포인트가 복제본을 가리키는 경우: 읽기 전용 엔드포인트가 승격된 복제본에서 주 서버를 가리키도록 리디렉션됩니다.
- 읽기 전용 엔드포인트가 주 엔드포인트를 가리키는 경우: 읽기 전용 엔드포인트는 변경되지 않고 동일한 서버를 계속 가리킵니다.
PITR(지정 시간 복구) 또는 스냅샷 복원 중 일관된 호스트 이름에 가상 엔드포인트 사용
이 섹션에서는 Azure Database for PostgreSQL 유연한 서버의 가상 엔드포인트를 사용하여 PITR(지정 시간 복구) 또는 스냅샷 복원 중에 일관된 호스트 이름을 유지하여 애플리케이션 연결 문자열이 변경되지 않도록 하는 방법을 설명합니다. 아래 단계를 따릅니다.
주 서버에 가상 엔드포인트 추가:
- Azure Portal에서 주 서버 인스턴스로 이동합니다.
- 복제 탭으로 이동하고 가상 엔드포인트에서 가상 엔드포인트 추가를 클릭합니다.
- 일관된 호스트 이름(예:
mydb-virtual-endpoint.postgres.database.azure.com
)으로 가상 엔드포인트를 구성합니다. - 구성을 저장합니다.
- 연결 문자열에서 이 가상 엔드포인트를 사용하도록 애플리케이션을 업데이트합니다.
PITR(지정 시간 복원) 또는 스냅샷 복원 수행:
- 복구 시작:
- 주 서버의 Backups 섹션으로 이동합니다.
- 적절한 복원 옵션(
PITR
또는snapshot
)을 선택하고 원하는 시점을 지정합니다.
- 가상 엔드포인트 업데이트:
- 새 인스턴스가 만들어지면 이전 주 서버 복제 탭으로 다시 이동합니다.
- 원래 주 서버에서 가상 엔드포인트를 제거합니다. 가상 엔드포인트를 제거하려면 이전 주 복제본이
succeeded
상태여야 합니다. - 새로 만든 서버에 동일한 가상 엔드포인트를 추가합니다.
- 복구 시작:
유효성 검사:
- 애플리케이션이 가상 엔드포인트를 사용하여 연결하는지 확인하고 복구 후 데이터베이스 작업을 확인합니다.