주요 개념
PostgreSQL 서비스에서 인스턴스 그룹, 인스턴스, 백업, Failover, 볼륨, 파라미터 그룹이 어떻게 구성되고 동작하는지 설명합니다. 리소스별 생성과 관리 방법은 각 How-to Guides에서 확인할 수 있습니다.
| 주요 개념 | 설명 |
|---|---|
| 인스턴스 그룹 | 인스턴스와 백업 생명 주기를 관리하는 단위 |
| 인스턴스 | 인스턴스 그룹에 포함되는 VM(Virtual Machine) 단위로, 가용성 구성에 따라 Primary 또는 Standby 역할을 가짐 |
| 인스턴스 유형 | vCPU와 메모리로 구성된 가상화 리소스 사양 |
| 백업 | 인스턴스 그룹 단위로 생성하고 복원에 사용하는 데이터 사본 |
| Failover | Primary 인스턴스 장애 또는 수동 요청 시 Standby 인스턴스로 전환하는 고가용성 기능 |
| 볼륨 | PostgreSQL 데이터베이스를 제공하는 Block Storage 기반 저장 공간 |
| 네트워크와 보안 | VPC 환경에서 PostgreSQL 인스턴스에 접근하기 위한 네트워크 및 보안 구성 |
| 파라미터 그룹 | PostgreSQL 설정 파라미터를 버전별, 그룹 단위로 관리하는 객체 |
인스턴스 그룹
인스턴스 그룹은 인스턴스와 백업 생명 주기를 관리하는 객체입니다.
PostgreSQL 인스턴스 그룹은 운영 상태와 종료 상태를 포함하는 다양한 상태 값을 가지며, 사용자는 이를 확인하여 인스턴스 그룹을 관리할 수 있습니다.
인스턴스 그룹 생명 주기 및 상태 값
PostgreSQL 인스턴스 그룹을 생성하면 Pending 상태로 시작되며, Provisioning, Primary Available 상태를 거쳐 Available 상태로 전환됩니다. Available 상태의 PostgreSQL 인스턴스 그룹은 사용자가 선택한 네트워크의 엔드포인트와 포트를 통해 접근할 수 있습니다. PostgreSQL 인스턴스 그룹의 기본 포트는 5432(Primary), 5433(Standby)로 제공되며, 생성 시 1024 ~ 65535 범위에서 원하는 포트를 지정할 수 있습니다.
인스턴스 그룹의 생명 주기
PostgreSQL 인스턴스 그룹 생명 주기
| 상태 | 설명 |
|---|---|
Pending | 인스턴스 그룹을 구성하기 위한 준비 중 - 인스턴스 그룹을 처음 만들면 Pending 상태로 시작 |
Provisioning | 인스턴스 그룹의 인스턴스를 생성하고 필요한 패키지를 구성하는 중 |
Primary Available | Standby 인스턴스가 사용할 리소스를 할당하고 구성하는 중으로, Primary 인스턴스는 정상적으로 사용할 수 있는 상태 - 고가용성 구성 자체는 유지되며 Primary 인스턴스는 사용 가능 - 예: Standby 인스턴스 Provisioning, Standby 인스턴스 장애 또는 순단 |
Switching | 수동 또는 자동 Failover가 진행 중인 상태 |
Available | 인스턴스 그룹의 모든 인스턴스가 Running 상태로, 사용자가 정상적으로 사용할 수 있는 상태- 사용자가 선택한 네트워크의 Endpoint IP와 포트를 통해 접근 - 1024 ~ 65535 범위에서 포트 지정 가능, 기본 포트는 5432(Primary), 5433(Standby) |
Terminating | 인스턴스 그룹의 모든 인스턴스를 종료하고, 인스턴스 그룹에서 수행된 백업 등 모든 리소스를 삭제하는 중 |
Terminated | 인스턴스 그룹의 모든 리소스가 삭제된 상태 |
Error | 인스턴스 그룹의 일부 인스턴스에 오류가 발생하여 일시적으로 사용할 수 없는 상태 |
Storage-Full | PostgreSQL 인스턴스 그룹의 인스턴스 중 Log 또는 Data 디스크 사용량이 85% 이상이거나 가용 용량이 30GB 이하로 남은 상태 - Storage-Error 상태의 인스턴스가 있는 경우 볼륨 확장 외 요청 불가 |
Fatal | 인스턴스 그룹을 구성하는 중 정상 상태로 전환할 수 없는 오류가 발생한 상태 - 예: VM 생성 실패 |
인스턴스
인스턴스는 인스턴스 그룹이 관리하는 VM(Virtual Machine)입니다.
PostgreSQL 인스턴스는 CPU와 메모리를 포함해 가상화한 데이터베이스로, PostgreSQL 인스턴스 그룹에 포함되는 객체입니다. PostgreSQL 인스턴스에는 각 상태 값이 존재하며, 가용성 구성에 따라 Primary 또는 Standby 역할이 결정됩니다.
인스턴스 조회와 관리 방법은 인스턴스 관리를 참고해 주세요.
인스턴스 역할
| 인스턴스 역할 | 설명 |
|---|---|
| Primary | 사용자가 일반적으로 사용하는 읽기와 쓰기가 목적인 인스턴스 - 사용자는 엔드포인트를 통해 PostgreSQL 인스턴스에 접근 가능 |
| Standby | Primary 장애 상황을 대비한 고가용성 목적의 인스턴스 - 인스턴스 가용성을 고가용성으로 선택했을 경우에 생성 - 읽기 전용 복제본 Read Replica 역할을 함께 수행 |
인스턴스 유형
PostgreSQL 서비스에서는 사용 목적과 예상되는 워크로드에 따라 최적화된 인스턴스 유형을 선택할 수 있도록 지원합니다.
PostgreSQL 인스턴스 그룹의 인스턴스 유형별로 관리형 데이터베이스 사양과 설정이 결정됩니다. PostgreSQL 인스턴스 그룹을 만들 때 인스턴스 유형을 선택할 수 있으며, 리소스를 사용한 만큼 비용이 청구됩니다.
m2a(범용), r2a(메모리 최적화) 유형
| PostgreSQL 인스턴스 유형 | 기본 vCPU (개) | Memory (GiB) |
|---|---|---|
| m2a.large | 2 | 8 |
| m2a.xlarge | 4 | 16 |
| m2a.2xlarge | 8 | 32 |
| m2a.4xlarge | 16 | 64 |
| m2a.8xlarge | 32 | 128 |
| m2a.12xlarge | 48 | 192 |
| m2a.16xlarge | 64 | 256 |
| m2a.24xlarge | 96 | 384 |
| r2a.large | 2 | 16 |
| r2a.xlarge | 4 | 32 |
| r2a.2xlarge | 8 | 64 |
| r2a.4xlarge | 16 | 128 |
| r2a.8xlarge | 32 | 256 |
| r2a.12xlarge | 48 | 384 |
| r2a.16xlarge | 64 | 512 |
| r2a.24xlarge | 96 | 768 |
인스턴스 생명 주기 및 상태 값
인스턴스는 Pending 상태로 시작하며, Starting 상태를 거쳐 Running 상태로 전환됩니다.
PostgreSQL 인스턴스 생명 주기
PostgreSQL 인스턴스 생명 주기
| 상태 | 설명 |
|---|---|
Pending | 인스턴스를 구성하기 위한 준비 중, 초기 상태 |
Starting | 인스턴스 구성을 위한 리소스를 생성하는 상태 |
Restarting | 인스턴스를 재시작하는 중인 상태로 사용자의 재시작 요청으로 발생 |
Warning | 인스턴스의 서비스 통신은 가능하지만, 일부 기능이 제한된 상태 |
Storage-Warning | 인스턴스의 Log 또는 Data 디스크 사용량이 85% 이상이거나 가용 용량이 30GB 이하로 남은 상태 - 용량 확보 후 Running 상태로 전환될 때 5분 대기 후 변경 |
Volume-Extending | 인스턴스에 연결된 Log 또는 Data 디스크의 볼륨 크기를 확장하는 중인 상태로 사용자의 볼륨 확장 요청으로 발생 |
Running | 인스턴스가 실행 중, PostgreSQL 서비스가 정상적으로 구동되고 있는 상태 |
Terminating | 인스턴스를 완전히 종료하고 반납, 리소스를 삭제하는 중 |
Terminated | 인스턴스가 종료되고 리소스가 모두 삭제된 상태 |
Error | 인스턴스에 오류가 발생하여 서비스 이용이 어려운 상태 * 예: VM 내부 프로세스 문제 |
Storage-Error | 인스턴스의 Log 또는 Data 디스크 사용량이 95% 이상이거나 가용 용량이 10GB 이하로 남은 상태가 5분 이상 지속되는 상태 |
Fatal | 인스턴스 생성 중 실패하여 정상 상태로 전환하기 어려운 상태 |
가용성 구성 및 역할
인스턴스 가용성 구성에 따라 인스턴스 수량과 각 인스턴스의 역할이 결정됩니다.
| 인스턴스 가용성 구성 | 생성된 인스턴스 수량 | 설명 |
|---|---|---|
| 단일 | 1개 | Primary 인스턴스 1개만 생성 |
| 고가용성 | 최대 6개 | Primary, Standby 인스턴스를 생성 - Primary 1개, Standby 1~5개 생성 |
가용 상태
PostgreSQL 인스턴스 간 데이터 복제에 관한 상태를 의미합니다. 인스턴스 가용성을 고가용성으로 선택한 인스턴스 그룹에만 해당됩니다.
PostgreSQL 인스턴스 가용 상태
| 가용 상태 | 설명 |
|---|---|
Configuring | PostgreSQL 인스턴스의 데이터 복제 설정을 진행하는 상태 |
Configured | PostgreSQL 인스턴스의 데이터 복제가 정상적으로 수행되는 상태 |
Unavailable | PostgreSQL 인스턴스의 데이터 복제가 중지된 상태 |
백업
백업은 PostgreSQL 인스턴스 그룹 단위로 관리됩니다.
백업 조회와 관리 방법은 백업 관리를 참고해 주세요.
백업 생명 주기 및 상태 값
백업은 Pending 상태로 시작하며, Processing 상태를 거쳐 Available 상태가 되면 완료됩니다.
PostgreSQL 백업 생명 주기
| 상태 | 설명 |
|---|---|
Pending | 백업 생성 요청 후 리소스가 생성되기 전인 백업 초기 상태 |
Processing | 백업을 생성 중인 상태 |
Available | 백업이 성공적으로 완료되어 복원에 사용할 수 있는 상태 |
Restoring | 복원에 사용 중인 상태, 삭제 불가 |
Deleting | 백업을 삭제하는 중 |
Deleted | 백업이 완전히 삭제된 상태 |
Error | 백업에 실패하여 정상적으로 백업 정보가 존재하지 않는 상태 |
Fatal | 백업 생성 중 오류가 발생해 객체 자체가 존재하지 않는 상태 |
Failover
PostgreSQL은 고가용성(HA, High Availability) 기능을 지원합니다. 인스턴스 그룹의 가용성을 고가용성으로 선택한 경우 다수의 Standby 인스턴스를 생성할 수 있으며, 장애가 발생하여 정상적인 서비스 제공이 어려운 경우 Failover를 수행할 수 있습니다. PostgreSQL 서비스는 Auto Failover와 수동 Failover를 모두 지원합니다.
수동 Failover 수행 방법은 인스턴스 수동 Failover를 참고해 주세요.
Failover 시 일시적인 서비스 중단이 발생할 수 있습니다.
Failover 생명 주기
| 상태 값 | 설명 |
|---|---|
SWITCHING | Failover를 진행하는 중인 상태 - PostgreSQL 서비스를 사용할 수 없음 |
PRIMARY-AVAILABLE | Standby 인스턴스를 구성하는 상태 |
볼륨
PostgreSQL 서비스는 Block Storage 디바이스인 볼륨을 사용하여 데이터베이스를 제공합니다. 사용자가 직접 Block Storage를 생성하거나 구성할 필요는 없습니다.
볼륨 확장 방법은 PostgreSQL 인스턴스 그룹 볼륨 확장을 참고해 주세요.
네트워크와 보안
모든 PostgreSQL 인스턴스는 VPC 환경에서 제공됩니다. VPC의 네트워크와 보안 기능을 사용하여 논리적으로 분리된 서비스 환경을 구축할 수 있습니다. 자세한 설명은 VPC를 참고해 주세요.
파라미터 그룹
PostgreSQL의 파라미터 값을 그룹 단위로 생성하고 관리할 수 있습니다.
파라미터 그룹 생성과 수정 방법은 파라미터 그룹 관리를, 인스턴스 그룹에 적용된 파라미터 그룹을 변경하는 방법은 파라미터 그룹 변경을 참고해 주세요.
파라미터 반영 상태
파라미터 그룹 반영 상태
| 상태 값 | 설명 |
|---|---|
Pending | 파라미터 반영을 대기하는 상태 |
Applying | 인스턴스 그룹에 파라미터를 반영 중인 상태 |
In-Sync | 인스턴스 그룹에 파라미터가 정상 반영된 상태 |
Partial-Sync | 인스턴스 그룹의 일부 인스턴스에만 파라미터가 반영된 상태 - 인스턴스 그룹이 Provisioning 중이거나 일부 인스턴스가 정상 상태가 아닐 때 파라미터 반영에 실패하여 발생 |
Error-Sync | 인스턴스 그룹에 파라미터 반영을 실패한 상태 - 파라미터 반영을 재시도할 수 있으며, 재시도 시 Applying 상태로 변경 |
Suspended | 순차 반영 시 앞 순서의 인스턴스 그룹이 파라미터 반영에 실패하여 다음 작업을 대기하는 상태 - 대기 중이던 인스턴스 그룹은 Pending에서 Suspended로 변경되며, 파라미터 반영을 재시도할 수 있음- 재시도 시 Applying 상태로 변경 |