Magalu Cloud DBaaS에서 자동 페일오버가 가능한 PostgreSQL 클러스터 프로비저닝 방법

발행: (2025년 12월 17일 오전 06:32 GMT+9)
7 min read
원문: Dev.to

Source: Dev.to

관계형 데이터베이스는 현대 애플리케이션에서 여전히 핵심 구성 요소입니다. 데이터베이스가 비즈니스에 중요할 때, 고가용성은 차별점이 아니라 필수 요건이 됩니다.

**Magalu Cloud**는 **Database as a Service (DBaaS)**를 제공하며, 이는 복제 및 자동 페일오버를 포함한 관리형 데이터베이스의 운영 복잡성을 추상화합니다.

이 기사에서는 다음을 배웁니다:

  • Magalu Cloud의 DBaaS에서 PostgreSQL 클러스터가 무엇인지
  • 고가용성을 사용하는 것이 언제 의미가 있는지
  • CLI mgc를 사용하여 자동 페일오버가 가능한 PostgreSQL 클러스터를 프로비저닝하는 방법

PostgreSQL 클러스터란

Magalu Cloud의 DBaaS에서 PostgreSQL 클러스터고가용성 구성을 의미하며, 여러 데이터베이스 노드로 구성됩니다:

  • 1개의 기본 노드, 읽기 및 쓰기 담당
  • 대기 복제본 (standby), 서로 다른 가용 영역에 분산
  • 자동 페일오버, 장애 발생 시 복제본을 기본 노드로 승격

기본 노드에서 발생한 변경 사항은 복제본으로 지속적으로 복제되어 가용 중단 시간을 줄이고 데이터 손실 위험을 감소시킵니다. 가용 영역(AZ) 간의 분산은 동일한 지역 내에서 더 높은 복원력을 보장합니다.

PostgreSQL 클러스터를 언제 사용해야 하는가

자동 장애 조치(failover)를 지원하는 PostgreSQL 클러스터는 다음과 같은 경우에 적합합니다:

  • 장기간의 다운타임을 견딜 수 없을 때
  • 데이터의 지속적인 복제가 필요할 때
  • 비즈니스에 고가용성이 필수일 때
  • 데이터베이스 관리에 드는 운영 노력을 줄이고 싶을 때

Source:

CLI (mgc)를 통한 프로비저닝

사전 요구 사항

시작하기 전에 다음이 필요합니다:

  • mgc CLI가 설치되고 설정되어 있음
  • 원하는 리전(region)에 대한 접근 권한
  • PostgreSQL 엔진 및 적절한 인스턴스 유형 식별

1. 사용 가능한 엔진 목록 조회

mgc dbaas engines list --status=ACTIVE

PostgreSQL(예: PostgreSQL 16)에 해당하는 id를 기록해 둡니다.

2. 호환 가능한 인스턴스 유형 조회

mgc dbaas instance-types list \
  --engine-id="SEU_ENGINE_ID" \
  --status=ACTIVE

각 인스턴스 유형은 각 데이터베이스 노드의 CPU와 메모리를 정의합니다.

compatible_product 이해하기

  • SINGLE_INSTANCE – 단일 인스턴스에만 사용 가능
  • CLUSTER – 고가용성 클러스터에만 사용 가능

이 필드는 참고용이며, 올바른 instance-type-id 선택을 돕기 위한 것입니다.

3. 자동 페일오버 PostgreSQL 클러스터 생성

클러스터 생성은 mgc dbaas clusters create 명령으로 수행합니다. 단일 인스턴스와 달리 클러스터는 처음부터 여러 노드와 고가용성이 구성된 상태로 생성됩니다. compatible_product: CLUSTER인 인스턴스 유형만 이 명령에 사용할 수 있습니다.

클러스터 생성 예시

mgc dbaas clusters create \
  --name="meu-postgres-cluster" \
  --user="admin" \
  --password="SenhaSegura!" \
  --engine-id="ID_DA_ENGINE_POSTGRESQL" \
  --instance-type-id="ID_DO_INSTANCE_TYPE_CLUSTER" \
  --volume.size=100 \
  --volume.type="CLOUD_NVME20K"

주요 파라미터

파라미터설명
--namePostgreSQL 클러스터 이름
--user데이터베이스 관리자 사용자
--password관리자 사용자의 비밀번호
--engine-idPostgreSQL 엔진 식별자
--instance-type-idCLUSTER와 호환되는 인스턴스 유형 ID (각 노드의 CPU·메모리 정의)
--volume.size데이터 볼륨 크기(GiB)
--volume.typeDBaaS 관리형 스토리지 유형 – 값은 문서 참고

명령을 실행하면 클러스터가 프로비저닝 과정을 시작하며, 몇 분 정도 소요될 수 있습니다.

4. 클러스터 및 인스턴스 상태 확인

클러스터 상세 정보 조회

mgc dbaas clusters get "ID_DO_CLUSTER"

클러스터 노드 목록 조회

mgc dbaas instances list

특정 노드 상세 정보 조회

mgc dbaas instances get "ID_DA_INSTANCIA"

실무에서 자동 장애 조치

클러스터가 활성 상태일 때, Magalu Cloud의 DBaaS는 기본 노드를 지속적으로 모니터링합니다. 장애가 발생하면:

  • 복제본이 자동으로 기본 노드로 승격됩니다
  • 클러스터 엔드포인트는 동일하게 유지됩니다
  • 애플리케이션은 재연결만 처리하면 됩니다

전체 과정이 수동 개입 없이 진행됩니다.

모범 사례

  • 데이터베이스 사용자에게 강력한 비밀번호 사용
  • 애플리케이션 부하에 맞는 인스턴스 유형 선택
  • CLI를 통해 인스턴스 상태 모니터링
  • 애플리케이션이 재연결을 잘 처리하도록 보장

결론

Magalu Cloud의 DBaaS에서 자동 장애 조치가 가능한 PostgreSQL 클러스터를 프로비저닝하면 운영 단순성고가용성을 결합할 수 있습니다.

CLI mgc를 사용하면:

  • 엔진 및 인스턴스 유형 식별
  • 생성 시부터 고가용성을 갖춘 PostgreSQL 클러스터 생성
  • 플랫폼이 관리하는 자동 장애 조치 활용
  • 중앙 집중식으로 데이터베이스 상태 모니터링

이를 통해 운영 복잡성이 감소하고 팀이 애플리케이션 개발에 집중할 수 있으며, Magalu Cloud의 관리형 인프라를 활용할 수 있습니다.

Back to Blog

관련 글

더 보기 »