본문으로 건너뛰기

주요 개념

PostgreSQL 서비스의 주요 개념은 다음과 같습니다.

주요 개념설명
인스턴스 그룹인스턴스와 백업 생명주기를 관리하는 객체
인스턴스인스턴스 그룹이 관리하는 VM으로, 가용성에 따라 Primary, Standby로 역할이 결정됨
인스턴스 유형데이터베이스에서 사용할 가상 CPU(vCPU)와 시스템 메모리를 포함한 가상화된 하드웨어 리소스
- 워크로드에 따라 최적화된 인스턴스 유형을 선택할 수 있도록 다양한 유형을 지원
인스턴스 그룹/인스턴스 생명 주기인스턴스 그룹/인스턴스의 다양한 생명 주기에 따라, 운영 상태와 작업 상태를 확인 및 관리
백업데이터베이스 중단 없이 온라인으로 진행되며, 백업 생성 및 삭제 등의 관리
볼륨Block Storage 디바이스인 볼륨을 사용하여 데이터베이스를 제공
- 사용자가 직접 Block Storage를 생성하거나 구성할 필요 없음
네트워크와 보안VPC에서 네트워크와 보안 기능을 제공하며, 필요한 네트워크 요구사항에 따라 논리적으로 분리된 서비스 환경 구축 가능
- 모든 인스턴스는 VPC 환경을 제공함
IAM과 보안IAM을 통해 사용자의 역할에 맞는 접근 권한을 부여하고 PostgreSQL 리소스를 안전하게 관리

인스턴스 그룹

인스턴스 그룹은 인스턴스와 백업 생명주기를 관리하는 객체입니다.
PostgreSQL 인스턴스 그룹은 운영 상태와 종료 상태를 포함하는 다양한 상태값을 가지며, 사용자는 이를 확인하여 인스턴스 그룹을 관리할 수 있습니다.

인스턴스 그룹 생명 주기 및 상태값

PostgreSQL 인스턴스 그룹을 생성하면 Pending 상태로 시작되며, Provisioning, Primary Available 상태를 거쳐 Available 상태로 전환됩니다. Available 상태의 PostgreSQL 인스턴스 그룹은 사용자가 선택한 네트워크의 엔드포인트와 포트를 통해 접근할 수 있습니다. PostgreSQL 인스턴스 그룹의 기본 포트는 5432(Primary), 5433(Standby)으로 제공되며, 생성 시 1024 ~ 65535 내 원하는 포트를 지정할 수 있습니다.

인스턴스 그룹의 생명 주기

이미지 PostgreSQL 인스턴스 그룹 생명주기

상태설명
Pending인스턴스 그룹을 구성하기 위한 준비 중
- 인스턴스 그룹을 처음 만들면 Pending 상태로 시작
Provisioning 인스턴스 그룹의 인스턴스를 생성하는 중, 필요한 패키지를 구성
Primary Available인스턴스 그룹의 Standby 인스턴스들이 사용할 가상의 하드웨어 리소스를 할당하고 구성하는 중으로
사용자가 정상적으로 사용할 수 있는 상태
생성이 완료된 고가용성 모드의 PostgreSQL 인스턴스 그룹의 경우, 한 개 이상의 Standby 인스턴스가 특정 원인으로 사용 불가능한 상태
*HA 구성 자체는 유지되고 있어 Primary 인스턴스는 정상적으로 사용 가능
* 예: Standby 노드 Provisioning 상태, Standby 노드 장애 및 순단
Switching고가용성 모드로 생성한 경우, 기존 Primary 노드의 문제로 인해 새롭게 다른 standby 인스턴스 중 하나가 primary로 승격되는 상태
* 예: 수동/자동 Failover
Available인스턴스 그룹의 모든 인스턴스가 Running 상태, 사용자가 정상적으로 사용할 수 있는 상태
- 사용자가 선택한 네트워크의 Endpoint IP 포트를 통해 접근
- 1024 ~ 65535 범위 내 사용자가 포트 지정 가능, 기본 포트는 5432(Primary), 5433(Standby)
Terminating인스턴스 그룹의 모든 인스턴스를 완전히 종료, 반납하고 인스턴스 그룹에서 수행된 백업 등 모든 리소스가 삭제되는 중인 상태
Terminated인스턴스 그룹의 모든 리소스가 삭제된 상태
Error인스턴스 그룹의 일부 인스턴스에 오류가 발생하여 일시적으로 사용할 수 없는 상태
Fatal인스턴스 그룹을 구성 중 정상 상태로 전환이 불가능한 에러 발생
- 예: VM 생성 중 실패 발생

인스턴스

인스턴스는 인스턴스 그룹이 관리하는 VM(Virtual Machine)입니다.
PostgreSQL 인스턴스는 CPU와 메모리를 포함해 가상화한 데이터베이스로, PostgreSQL 인스턴스 그룹에 포함되는 객체입니다. PostgreSQL 인스턴스에는 각 상태값이 존재하며, 가용성에 따라 Primary, Standby 역할 중 결정됩니다.

인스턴스 역할
인스턴스 역할설명
Primary사용자가 일반적으로 사용하는 읽기와 쓰기가 목적인 인스턴스
- 사용자는 엔드포인트를 통해서 PostgreSQL 인스턴스 사용 가능
StandbyPrimary 장애 상황을 대비한 고가용성 목적의 인스턴스
- 인스턴스 가용성을 고가용성으로 선택했을 경우에 생성
- 읽기 전용 복제본 Read Replica 역할을 함께 수행

인스턴스 유형

PostgreSQL 서비스에서는 사용 목적과 예상되는 워크로드에 따라 최적화된 인스턴스 유형을 선택할 수 있도록 지원합니다.
PostgreSQL 인스턴스 그룹의 인스턴스 유형별로 관리형 데이터베이스 사양과 설정이 결정됩니다. PostgreSQL 인스턴스 그룹을 만들 때 인스턴스 유형을 선택할 수 있으며, 리소스를 사용한 만큼 비용이 청구됩니다. 고성능 컴퓨팅과 메모리에 특화된 PostgreSQL 인스턴스 유형은 추가될 예정입니다.

m2a(범용), r2a(메모리 최적화) 유형

PostgreSQL 인스턴스 유형기본 vCPU (개)Memory (GiB)
m2a.large28
m2a.xlarge416
m2a.2xlarge832
m2a.4xlarge1664
m2a.8xlarge32128
m2a.12xlarge48192
m2a.16xlarge64256
m2a.24xlarge96384
r2a.large216
r2a.xlarge432
r2a.2xlarge864
r2a.4xlarge16128
r2a.8xlarge32256
r2a.12xlarge48384
r2a.16xlarge64512
r2a.24xlarge96768

인스턴스 생명 주기 및 상태값

인스턴스는 Pending 상태로 시작하며, ProvisioningStarting 상태를 거쳐 Running 상태로 전환됩니다.

PostgreSQL 인스턴스 생명 주기

이미지 PostgreSQL 인스턴스 생명주기

상태설명
Pending인스턴스를 구성하기 위한 준비 중, 초기 상태
Starting인스턴스 구성을 위한 리소스를 생성하는 상태
Retarting인스턴스가 재시작되고 있는 상태, 사용자의 재시작 요청으로 발생
Warning인스턴스의 서비스 통신은 가능하지만, 일부 기능이 제한된 상태
Running인스턴스가 실행 중, PostgreSQL 서비스가 정상적으로 구동되고 있는 상태
Volume-Extending인스턴스의 볼륨이 확장되고 있는 상태
Terminating인스턴스를 완전히 종료하고 반납, 리소스를 삭제하는 중
Terminated인스턴스는 종료되고 리스소가 모두 삭제된 상태
Error인스턴스에 오류가 발생하여 서비스 이용이 어려운 상태
* 예: VM 내부 프로세스 문제
Fatal인스턴스가 생성 도중 실패되어 정상상태로 전환이 어려운 상태

인스턴스 가용성 구성 및 역할

인스턴스 가용성 구성에 따라 인스턴스 수량과 각 인스턴스의 역할이 결정됩니다.

인스턴스 가용성 구성생성된 인스턴스 수량설명
단일 (Single, Primary 인스턴스)1개         Primary 인스턴스 1개만 생성
고가용성 (HA, Primary, Standby 인스턴스)최대 6개Primary, Standby 인스턴스를 생성
- Primary 1개, Standby 1~5개 생성

인스턴스 가용 상태

PostgreSQL 인스턴스 간 데이터 복제에 관한 상태를 의미합니다. 가용성을 고가용성으로 선택한 인스턴스 그룹만 해당됩니다.

이미지 PostgreSQL 인스턴스 가용상태

가용 상태설명
ConfiguringPostgreSQL 인스턴스의 데이터 복제 설정을 진행하는 상태
ConfiguredPostgreSQL 인스턴스의 데이터 복제가 정상적으로 수행되는 상태
UnavailablePostgreSQL 인스턴스의 데이터 복제가 중지된 상태

백업

백업은 PostgreSQL 인스턴스 그룹 단위로 관리됩니다.

백업 생명 주기 및 상태값

백업은 Pending 상태로 시작하며, Processing 상태를 거쳐 Available 상태가 되면 완료됩니다.

백업 상태

이미지 PostgreSQL 백업 생명주기

상태설명
Pending백업 생성 요청 후 리소스가 생성되기 전인 백업 초기 상태
Processing백업을 생성 중인 상태
Available백업이 성공적으로 완료되어 복원에 사용할 수 있는 상태
Restoring복원에 사용 중인 상태, 삭제 불가
Deleting백업을 삭제하는 중
Deleted백업이 완전히 삭제된 상태
Error백업에 실패하여 정상적으로 백업 정보가 존재하지 않는 상태
Fatal백업 생성 중 오류가 발생해 객체 자체가 존재하지 않는 상태

Failover

PostgreSQL은 고가용성(HA, High Availability) 기능을 지원합니다. 인스턴스 그룹의 가용성을 고가용성으로 선택한 경우 다수의 Standby 인스턴스를 생성할 수 있으며, 장애가 발생하여 정상적인 서비스 제공이 어려운 경우 Failover를 할 수 있습니다. Auto-Fail Over와 수동 Failover를 제공하고 있습니다.

주의

Failover시 순단 현상이 발생할 수 있습니다.

Failover 생명 주기

상태값설명
SWITCHINGFailover를 진행하는 중입니다. PostgreSQL 서비스를 사용할 수 없습니다.
PRIMARY-AVAILABLEStandby 인스턴스를 구성하는 상태입니다.

볼륨

Block Storage 디바이스인 볼륨을 사용하여 데이터베이스를 제공합니다. 따라서 사용자가 직접 Block Storage를 생성 및 구성하는 등 관리할 필요가 없습니다.

네트워크와 보안

모든 PostgreSQL 인스턴스는 VPC 환경을 제공합니다. VPC에서 네트워크와 보안 기능을 제공하며, 필요한 네트워크 요구사항에 따라 논리적으로 분리된 서비스 환경을 구축할 수 있습니다. 자세한 설명은 VPC를 참고하시기 바랍니다.