Snowflake Postgres 인스턴스 관리¶
Snowflake Postgres는 다양한 인스턴스 관리 작업을 통해 인스턴스를 관리하는 데 도움이 됩니다. 이러한 작업은 인스턴스의 운영과 보안을 지키는 유지 관리의 한 형태입니다.
인스턴스 관리 작업을 수행하려면 짧은 서비스 중단이 필요합니다. 애플리케이션이 데이터베이스에 자동으로 다시 연결할 수 있는지 확인하세요.
참고
자격 증명을 명시적으로 순환하지 않는 한 인스턴스의 연결 문자열은 인스턴스 관리 작업 전체에서 동일하게 유지됩니다.
인스턴스의 상태를 보장하기 위해 필요한 경우 당사는 사용자를 대신하여 유지 관리 작업을 예약할 수 있습니다(예: 인스턴스 저장소 크기 수정).
플랫폼에서 인스턴스 유지 관리를 수행하는 방법에 대한 자세한 설명은 Snowflake Postgres 유지 관리 섹션을 참조하세요.
사용 가능한 작업¶
대시보드의 인스턴스 세부 정보 페이지에 있는 Manage 드롭다운 메뉴에서 제공되는 작업은 다음과 같습니다.
포크 - 기존 인스턴스에서 새 인스턴스 만들기
수정 - 인스턴스 크기, 저장소 크기 또는 인스턴스의 Postgres 버전 변경
고가용성 활성화 - 인스턴스에 대한 고가용성 활성화
복제본 만들기 - 인스턴스의 복제본 만들기
인스턴스 일시 중단 및 재개 - Postgres 서버를 스핀다운하되 디스크에 데이터 유지
서비스 다시 시작 - PostgreSQL 또는 전체 기본 서버 중 하나 다시 시작
자격 증명 다시 생성 - 인스턴스에 대한 자격 증명 다시 생성
포크¶
인스턴스를 포크하여 기존 인스턴스에서 새 인스턴스를 생성하고, 선택적으로 포크할 시점을 선택할 수 있습니다. 기본적으로 새 인스턴스는 소스 인스턴스의 현재 상태에서 포크됩니다. :doc:`postgres-point-in-time-recovery`에서 포크에 대해 자세히 알아보세요.
수정¶
기존 Snowflake Postgres 인스턴스를 변경하려면 해당 인스턴스에 대한 OWNERSHIP 또는 OPERATE 권한이 부여된 역할을 사용해야 합니다.
연결 문자열을 변경하지 않고 영향을 최소화하면서 제자리에서 인스턴스 크기를 조정할 수 있습니다. 인스턴스 크기 조정 중 다음을 수행할 수 있습니다.
:doc:`COMPUTE_FAMILY<postgres-instance-sizes>`를 다른 크기로 변경합니다.
저장 용량을 변경합니다. 저장소 크기의 증가 및 감소가 모두 지원됩니다.
Postgres 버전을 최신 주 버전으로 업그레이드합니다.
인스턴스 구성을 수정하려면 유지 관리가 필요합니다. 자세한 내용은 Snowflake Postgres 유지 관리 섹션을 참조하십시오.
변경하려면 다음을 수행합니다.
탐색 메뉴에서 Postgres 를 선택합니다.
인스턴스를 선택합니다.
오른쪽 상단의 Manage 메뉴에서 :ui:`Modify`를 선택합니다.
드롭다운 메뉴에서 새 COMPUTE_FAMILY 및/또는 저장소 크기를 선택합니다. Postgres 버전 변경에 대한 자세한 내용은 `Postgres 주 버전 업그레이드`_를 참조하세요.
Save 버튼을 선택하여 변경 사항을 확인합니다.
ALTER POSTGRES INSTANCE 명령을 사용하여 Snowflake Postgres 인스턴스의 구성을 변경합니다.
참고
인스턴스에 대한 변경 사항은 비동기 작업으로 적용됩니다.
작업 상태를 확인하려면 DESCRIBE POSTGRES INSTANCE 명령을 실행합니다.
ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> SET [ NETWORK_POLICY = <policy_name> ] [ COMMENT = '<string_literal>' ] [ HIGH_AVAILABILITY = { TRUE | FALSE } ] [ COMPUTE_FAMILY = <compute_family> ] [ STORAGE_SIZE_GB = <storage_gb> ] [ POSTGRES_VERSION = { 16 | 17 } ]; [ MAINTENANCE_WINDOW_START = <hour_of_day> ] [ POSTGRES_SETTINGS = '<json_string>'] [ APPLY { IMMEDIATELY | ON '<timestamp>' } ] ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> UNSET { COMMENT | POSTGRES_SETTINGS | NETWORK_POLICY | MAINTENANCE_WINDOW_START } [ , ... ]
NETWORK_POLICY = policy_name인스턴스에 사용할 :doc:`네트워크 정책<postgres-network>`을 지정합니다. 정책 변경 사항이 적용되는 데 최대 2분이 걸릴 수 있습니다.
이 매개 변수를 지정하려면 NETWORK_POLICY 오브젝트에 대한 USAGE 권한이 부여되어야 합니다.
HIGH_AVAILABILITY = { TRUE | FALSE }인스턴스에 대해 :doc:`high-availability`를 활성화합니다. 비동기 작업으로 실행합니다. DESCRIBE는 작업 필드에서 진행 상황을 추적하는 데 사용할 수 있습니다. HA 변경은 인스턴스가 READY 상태에 있는 경우에만 시작할 수 있으며, 다른 작업이 실행 중인 경우에는 시작되지 않을 수 있습니다(HA 활성화/비활성화 포함)
기본값:
FALSECOMPUTE_FAMILY = compute_family.STORAGE_SIZE_GB = storage_gb.POSTGRES_VERSION = 16 | 17POSTGRES_SETTINGS = 'json_string'인스턴스에 대한 :doc:`Postgres 설정<postgres-server-settings>`의 변경 사항을 지정합니다. 다음 구조의 JSON 형식 문자열로 설정을 지정합니다.
'{"component:name" = "value", ...}'일부 Postgres 설정에 대한 변경 사항을 적용하려면 인스턴스를 다시 시작해야 할 수 있습니다. 이러한 변경 사항은 ALTER POSTGRES INSTANCE 문에서 :code:`APPLY IMMEDIATELY`를 지정하지 않는 경우 적용되지 않습니다. 다시 시작해야 하는 설정 목록은 :doc:`Postgres 설정<postgres-server-settings>`의 테이블을 참조하세요.
MAINTENANCE_WINDOW_START = hour_or_day유지 관리 기간이 시작될 수 있는 원하는 시간입니다. 이는 유지 관리가 시작될 수 있는 시간을 나타내는 0에서 23 사이의 정수여야 하며, 0은 자정 UTC를 나타냅니다. 유지 관리 기간은 지정된 시간부터 3시간입니다. 기존 유지 관리 기간을 설정 해제하면 진행 중인 모든 작업이 완료되는 즉시 적용됩니다.
APPLY IMMEDIATELY클러스터에 유지 관리 기간이 정의된 경우,
APPLY IMMEDIATELY`는 지정된 모든 작업이 준비되는 즉시 적용되도록 유지 관리 기간을 재정의합니다. :samp:`APPLY IMMEDIATELY`는 :samp:`COMPUTE_FAMILY,STORAGE_SIZE_GB,POSTGRES_VERSION및 :samp:`POSTGRES_SETTINGS`에만 적용됩니다. 다른 모든 옵션의 경우 무시됩니다.APPLY ON 'timestamp'클러스터에 유지 관리 기간이 정의된 경우, :samp:`APPLY ON`은 지정된 모든 작업의 유지 관리 기간을 재정의하여 제공된 타임스탬프에 적용합니다. :samp:`APPLY IMMEDIATELY`는 :samp:`POSTGRES_SETTINGS`로 지정할 수 없습니다. 지정된 타임스탬프는 72시간 이후의 미래일 수 없으며 다음 형식일 수 있습니다.
yyyy-MM-dd
yyyy-MM-dd HH:mm
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd HH:mm zzz
Postgres 인스턴스 수정 예제
기존 인스턴스의 COMPUTE_FAMILY를 STANDARD_M으로 변경하고 저장소 크기를 단일 작업으로 100GB로 변경합니다.
ALTER POSTGRES INSTANCE my_instance
SET COMPUTE_FAMILY = 'STANDARD_M'
STORAGE_SIZE_GB = 100;
인스턴스의 저장소 크기를 줄이려는 경우, 경고 알림 및 즉각적인 크기 조정을 줄이기 위해 현재 크기 조정을 현재 디스크 사용량의 1.4배 이상으로 허용합니다.
Postgres 주 버전 업그레이드¶
Snowflake Postgres를 사용하면 대시보드를 통해 주 버전 업그레이드를 예약할 수 있습니다. 이 변경을 수행하려면 인스턴스 크기 조정과 동일한 프로세스를 사용합니다. 인스턴스를 새 주 버전으로 업그레이드하려면 유지 관리가 필요합니다. 유지 관리에 대한 일반 정보는 Snowflake Postgres 유지 관리 섹션을 참조하고, 주 버전 업그레이드에 대한 자세한 내용은 아래를 참조하세요.
주 버전 업그레이드를 시작하려면 인스턴스에 대한 OWNERSHIP 또는 OPERATE 권한이 부여된 역할을 사용해야 합니다.
참고
최신 주 버전으로만 업그레이드할 수 있으며 이전 주 버전으로 다운그레이드할 수는 없습니다.
참고
새 인스턴스 크기 및/또는 저장소 크기를 동시에 선택하여 주 버전 업그레이드와 인스턴스 크기 조정을 결합할 수 있습니다.
탐색 메뉴에서 Postgres 를 선택합니다.
Snowflake Postgres 인스턴스를 선택합니다.
오른쪽 상단의 Manage 메뉴에서 :ui:`Modify`를 선택합니다.
최신 버전을 사용할 수 있는 경우 Postgres 버전 드롭다운 메뉴에서 선택할 수 있습니다.
Save 버튼을 선택하여 변경 사항을 확인합니다.
POSTGRES_VERSION 매개 변수를 원하는 버전으로 설정하여 ALTER POSTGRES INSTANCE 명령을 통해 주 버전 업그레이드를 시작할 수 있습니다.
ALTER POSTGRES INSTANCE [IF EXISTS] <name>
SET POSTGRES_VERSION = { 16 | 17 }
POSTGRES_VERSION = { 16 | 17 }업그레이드할 대상 Postgres 버전입니다.
예제: 기존 인스턴스를 PostgreSQL 17로 업그레이드
ALTER POSTGRES INSTANCE my_instance
SET POSTGRES_VERSION = 17;
예제: 주 버전 업그레이드와 저장소 크기 증가 결합
ALTER POSTGRES INSTANCE my_instance
SET POSTGRES_VERSION = 17
STORAGE_SIZE_GB = 100;
Postgres 주 버전 업그레이드는 다른 인스턴스 관리 작업과 다르게 작동합니다. 프로세스를 시작하면 Snowflake Postgres가 다음 단계를 실행합니다.
현재 인스턴스의 “숨겨진”(사용자에게 표시되지 않음) 복제본을 만듭니다.
소스 인스턴스에서 숨겨진 복제본으로 기존 데이터를 마이그레이션합니다(기간은 데이터 크기에 따라 상대적임).
유지 관리 기간이 도래하는 경우 다음을 수행합니다.
쓰기를 방지하기 위해 소스 인스턴스를 잠급니다.
숨겨진 복제본을 업그레이드합니다(기간은 데이터 크기가 아닌 데이터베이스의 *오브젝트 수*에 따라 다름).
업그레이드가 완료되면 새로 업그레이드된 인스턴스로 장애 조치를 수행합니다.
중요 참고 사항:
주 버전 변경은 애플리케이션 호환성에 영향을 줄 수 있습니다. 업그레이드하기 전에 새 PostgreSQL 버전에 대해 애플리케이션을 테스트하는 것이 좋습니다.
읽기 전용 복제본은 주 버전 업그레이드를 수행할 때 자동으로 업그레이드되지만, 이는 기본 복제본이 업그레이드되고 새 백업이 수행된 후에만 해당됩니다. 그때까지 복제본을 계속 사용할 수는 있지만 부실 상태로 유지됩니다.
유지 관리 기간을 설정하지 않고 실행 시간을 지정하지 않은 경우 새 인스턴스가 채워지고 준비되는 즉시 업그레이드가 시작됩니다.
이 작업으로 인해 서비스 중단이 발생하지만 몇 분 이상 지속되지는 않습니다.
업그레이드에 실패하면 인스턴스가 자동으로 원래 인스턴스로 되돌아갑니다.
고가용성 활성화¶
고가용성(HA)이 활성화되면 인스턴스에 기본 호스트를 사용할 수 없는 경우 기본 호스트를 대체할 대기 호스트가 포함됩니다. 이에 대한 자세한 내용은 Snowflake Postgres 고가용성 섹션에서 확인할 수 있습니다.
복제본 만들기¶
대시보드에서 인스턴스의 복제본을 생성할 수 있습니다. 복제본은 소스 인스턴스와 동기화된 상태로 유지되는 소스 인스턴스의 읽기 전용 복사본입니다. :doc:`postgres-create-replica`에서 복제본 생성 및 사용에 대해 자세히 알아보세요.
인스턴스 일시 중단 및 재개¶
인스턴스를 일시 중단하면 인스턴스가 재개될 수 있도록 디스크 이미지를 저장소에 유지하면서 실행 중인 가상 머신이 비활성화됩니다. 인스턴스에 대한 일반적인 청구는 일시 중단되지만 저장소 비용은 계속 발생합니다. 기존 10일 분량의 백업도 유지됩니다.
다시 시작 후 적용되도록 보류 중인 작업이 있는 경우 인스턴스가 재개될 때 적용됩니다.
Snowflake Postgres 인스턴스를 일시 중단하거나 재개하려면 인스턴스에 대한 OWNERSHIP 또는 OPERATE 권한이 부여된 역할을 사용해야 합니다.
Snowflake Postgres를 사용하면 대시보드에서 인스턴스를 일시 중단할 수 있습니다.
탐색 메뉴에서 Postgres 를 선택합니다.
인스턴스를 선택합니다.
오른쪽 상단의 Manage 메뉴에서 :ui:`Suspend`를 선택합니다.
Suspend 버튼을 클릭하여 작업을 확인합니다.
Snowflake Postgres 인스턴스를 일시 중단하려면 ALTER POSTGRES INSTANCE … SUSPEND를 실행합니다.
ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> SUSPEND
이러한 작업은 비동기적입니다. DESCRIBE 명령을 사용하여 이러한 작업의 상태를 추적할 수 있습니다.
예제: my_instance라는 Snowflake Postgres 인스턴스 일시 중단
ALTER POSTGRES INSTANCE my_instance SUSPEND;
일시 중단된 인스턴스는 언제든지 재개할 수 있습니다. 인스턴스를 재개하는 데 걸리는 시간은 인스턴스와 데이터 세트의 크기에 따라 다릅니다. 인스턴스를 재개하면 일반 청구 및 백업도 다시 시작됩니다.
탐색 메뉴에서 Postgres 를 선택합니다.
인스턴스를 선택합니다.
오른쪽 상단의 Manage 메뉴에서 :ui:`Resume`를 선택합니다.
Resume 버튼을 클릭하여 작업을 확인합니다.
Snowflake Postgres 인스턴스를 재개하려면 ALTER POSTGRES INSTANCE … RESUME을 실행합니다.
ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> RESUME이러한 작업은 비동기적입니다. DESCRIBE 명령을 사용하여 이러한 작업의 상태를 추적할 수 있습니다.
예제: my_instance라는 Snowflake Postgres 인스턴스 재개
ALTER POSTGRES INSTANCE my_instance RESUME;
서비스 다시 시작하기¶
PostgreSQL 또는 필요한 경우 Postgres 인스턴스를 실행하는 기본 서버 중 하나를 다시 시작할 수 있습니다. 이러한 유형의 인스턴스 관리 작업은 복제본을 생성하거나 장애 조치를 수행하지 않고 서버를 제자리에서 다시 시작합니다. Snowflake Postgres 유지 관리 섹션에서 서비스 다시 시작에 대해 자세히 알아보세요.
자격 증명 다시 생성하기¶
자격 증명을 다시 생성하면 데이터베이스 인스턴스에 대한 새 연결 문자열이 반환되어 기존 자격 증명을 대체합니다. Snowflake Postgres 역할 섹션에서 이 항목에 대해 자세히 알아보세요.
사용자 지정 구성 매개 변수¶
Snowflake Postgres 인스턴스에 대한 많은 Postgres 자체 서버 설정을 변경할 수 있습니다. 사용 가능한 구성 매개 변수 목록은 Snowflake Postgres 서버 설정 섹션에서 확인할 수 있습니다.
Snowflake Postgres 인스턴스에서 Postgres 설정을 변경하려면 해당 인스턴스에 대한 OWNERSHIP 또는 OPERATE 권한이 부여된 역할을 사용해야 합니다.
변경하려면 다음을 수행합니다.
탐색 메뉴에서 Postgres 를 선택합니다.
인스턴스 선택
페이지 오른쪽에서 Custom parameters 옆에 있는 편집 아이콘을 선택합니다.
목록에서 구성 매개 변수를 선택하거나 검색 상자를 사용하여 특정 매개 변수를 찾습니다.
구성 매개 변수의 새 값을 입력합니다.
매개 변수의 새 값 추가를 마쳤으면 :ui:`Continue to review`를 클릭한 후 :ui:`Submit`을 클릭하여 변경 사항을 확인합니다.
ALTER POSTGRES INSTANCE [IF EXISTS] <name>
SET POSTGRES_SETTINGS = '{JSON_string}'
[ APPLY IMMEDIATELY ];
POSTGRES_SETTINGS = 'json_string'인스턴스에 대한 :doc:`Postgres 설정<postgres-server-settings>`의 변경 사항을 지정합니다. 다음 구조의 JSON 형식 문자열로 설정을 지정합니다.
'{"component:name" = "value", ...}'일부 Postgres 설정에 대한 변경 사항을 적용하려면 인스턴스를 다시 시작해야 할 수 있습니다. 이러한 변경 사항은 ALTER POSTGRES INSTANCE 문에서 :code:`APPLY IMMEDIATELY`를 지정하지 않는 경우 적용되지 않습니다. 다시 시작해야 하는 설정 목록은 :doc:`Postgres 설정<postgres-server-settings>`의 테이블을 참조하세요.
예제: my_instance라는 Snowflake Postgres 인스턴스에 대해 work_mem 구성 매개 변수를 128MB로 설정
ALTER POSTGRES INSTANCE my_instance SET POSTGRES_SETTINGS = ( 'work_mem' = '128MB' );
인스턴스 상태¶
새 인스턴스를 생성하든 기존 인스턴스를 수정하든 모든 인스턴스 관리 작업은 완료하는 데 다소 시간이 걸립니다. 정확한 기간은 데이터 및 스키마 크기, 인스턴스 사용량 등 다양한 요인에 따라 달라집니다. 인스턴스의 상태는 진행 중인 작업의 진행 상황에 대한 인사이트를 제공합니다. 이는 대시보드에 표시되거나 DESCRIBE POSTGRES INSTANCE 명령을 실행하여 확인할 수 있습니다.
가능한 인스턴스 상태는 아래에 나열되어 있습니다. 인스턴스 수정 작업 중에 대체 인스턴스는 첫 번째 테이블에 나열된 모든 상태를 거칩니다. 생성되는 새 인스턴스는 나열된 모든 상태가 아닌 일부 상태를 거칩니다. 다음 테이블에는 일반 작업 중에 볼 수 있는 몇 가지 추가 상태가 나열되어 있습니다.
생성, 수정, 포크 중에 표시되는 상태:
상태 |
진행 상황 |
일반적인 기간 |
다음 상태 |
|---|---|---|---|
생성 |
새 기본 서버가 생성되는 중 |
1~2분 |
복원 |
복원 |
최신 기본 백업이 서버에 복원되는 중 |
변수 |
시작 |
시작 |
Postgres가 인스턴스에서 시작되고 있으며 기본 백업 중에 누적된 WAL이 적용되는 중 |
변수 |
재생 |
재생 |
마지막 기본 백업 이후 누적된 WAL이 재생되는 중 |
변수 |
완료 |
완료 |
인스턴스 구성이 완료되고 서버가 제공되는 중 |
1~2분 |
준비 |
준비 |
새 인스턴스가 소스 인스턴스와 일치하며 작업을 진행할 준비가 되었습니다. 예정된 유지 관리 기간으로 예약된 경우 해당 시간까지 인스턴스가 |
N/A |
N/A |
플랫폼에서 볼 수 있는 기타 인스턴스 상태:
상태 |
진행 상황 |
일반적인 기간 |
다음 상태 |
|---|---|---|---|
다시 시작 |
기본 서버가 다시 시작되는 중 |
1~2분 |
준비 |
재개 |
새 서버가 구축되고 일시 중단된 인스턴스가 재개되는 중 |
3~5분 |
준비 |
일시 중단 중 |
인스턴스가 일시 중단되는 중 |
3~5분 |
일시 중단 |
일시 중단 |
인스턴스가 현재 일시 중단됨 |
재개될 때까지 |
재개 |