AlloyDB Omni 설치 맞춤설정

문서 버전을 선택합니다.

이 페이지에서는 다양한 형태의 맞춤설정을 지원하는 컨테이너 이미지를 통해 배포되는 AlloyDB Omni 설치를 맞춤설정하는 방법을 설명합니다. 이 페이지에서는 몇 가지 일반적인 맞춤설정을 보여줍니다.

AlloyDB Omni 원격 분석 사용 설정 및 사용 중지

AlloyDB Omni 원격 분석은 AlloyDB Omni 컨테이너 이미지에서만 실행되는 경량 클라이언트 에이전트를 구현합니다. 이 에이전트는 주기적으로 기본 가명처리된 측정항목 집합을 수집하여 Google 관리 엔드포인트로 전송합니다.

AlloyDB Omni는 무료로 제공되는 다운로드 가능한 제품이므로 이 원격 분석은 실행 중인 인스턴스의 일반적인 채택 및 배포 환경에 관한 필수적인 비개인 식별 정보 (비PII) 측정항목을 Google에 제공합니다. 이 데이터는 제품 개발 및 지원 우선순위를 정하는 데 도움이 됩니다.

수집된 측정항목에는 다음이 포함됩니다.

  • 고유 설치 ID (가명처리된 UUID)
  • AlloyDB Omni 버전 및 PostgreSQL 주 버전
  • CPU 수, RAM, 가동시간과 같은 호스트 시스템 정보

텔레메트리 보고 사용 중지

원격 분석 에이전트가 실행되고 사용량 측정항목을 보고하지 않도록 하려면 PostgreSQL 구성 매개변수 omni_enable_telemetryoff로 설정합니다. postgresql.conf 파일에서 원격 분석 플래그를 설정하거나 ALTER SYSTEM를 사용하여 런타임에 플래그를 설정하여 원격 분석 에이전트를 사용 중지할 수 있습니다.

postgresql.conf 파일에서 원격 분석 플래그 설정

컨테이너의 영구 데이터 디렉터리에서 PostgreSQL 구성 파일을 수정하려면 다음 단계를 따르세요.

  1. 데이터베이스의 데이터 디렉터리($PGDATA)에서 postgresql.conf 파일을 찾습니다.
  2. AlloyDB Omni 원격 분석을 사용 중지합니다.

    omni_enable_telemetry = off
    
  3. 변경사항을 적용하려면 AlloyDB Omni 컨테이너를 다시 시작합니다. 원격 분석 에이전트가 사용량 측정항목을 수집하여 Google에 전송하는 것을 중지합니다.

ALTER SYSTEM을 사용하여 런타임에 원격 분석 플래그 설정

원격 분석 플래그를 설정하고 다시 시작할 때 변경사항을 유지하려면 다음 단계를 따르세요.

  1. psql을 사용하여 AlloyDB Omni 인스턴스에 연결합니다.

    psql -h HOST -U USER -d DATABASE
    

    다음을 바꿉니다.

    • HOST: AlloyDB Omni 인스턴스의 호스트 이름 또는 IP 주소입니다(예: 127.0.0.1).
    • USER: 연결할 데이터베이스 사용자(예: postgres)
    • DATABASE: 연결하려는 데이터베이스입니다(예: postgres).
  2. 다음 명령어를 실행합니다.

    ALTER SYSTEM SET omni_enable_telemetry = 'off';
    
  3. 구성을 새로고침하거나 인스턴스를 다시 시작합니다. 일부 컨테이너 설정에서는 변경사항이 백그라운드 작업자에 의해 완전히 선택되도록 인스턴스를 다시 시작해야 할 수 있습니다.

    SELECT pg_reload_conf();
    

    원격 분석 에이전트가 사용량 측정항목을 수집하여 Google에 전송하는 것을 중지합니다.

원격 분석 보고 사용 설정

이전에 AlloyDB Omni 원격 분석을 사용 중지한 경우 omni_enable_telemetry 플래그를 on로 설정하여 다시 사용 설정할 수 있습니다. postgresql.conf 파일에서 플래그를 설정하거나 ALTER SYSTEM를 사용하여 런타임에 플래그를 설정하여 원격 분석 에이전트를 사용 설정합니다.

postgresql.conf 파일에서 원격 분석 플래그 설정

  1. 데이터베이스의 데이터 디렉터리($PGDATA)에서 postgresql.conf 파일을 찾습니다.
  2. 다음 줄을 설정합니다.

    omni_enable_telemetry = on
    
  3. 변경사항을 적용하려면 AlloyDB Omni 컨테이너를 다시 시작합니다.

ALTER SYSTEM을 사용하여 런타임에 원격 분석 플래그 설정

  1. psql을 사용하여 AlloyDB Omni 인스턴스에 연결합니다.
  2. 다음 명령어를 실행합니다.

    ALTER SYSTEM SET omni_enable_telemetry = 'on';
    
  3. 변경사항을 적용하려면 AlloyDB Omni 컨테이너를 다시 시작합니다.

    docker restart CONTAINER_NAME
    

    다음과 같이 바꿉니다.

    • CONTAINER_NAME: AlloyDB Omni 컨테이너의 이름입니다(예: my-omni-1).

AlloyDB Omni 원격 분석 상태 확인

사용 설정되었는지 또는 실행 중인지 등 AlloyDB Omni 원격 분석 에이전트의 상태를 확인할 수 있습니다. 원격 분석 에이전트 활동을 확인할 수도 있습니다.

원격 분석 에이전트가 사용 설정되어 있는지 또는 사용 중지되어 있는지 확인

원격 분석 설정의 상태를 확인하려면 다음 단계를 따르세요.

  1. 내 인스턴스에 연결
  2. 다음을 실행합니다.
SHOW omni_enable_telemetry;

AlloyDB Omni 원격 분석을 사용 중지했는지 사용 설정했는지에 따라 on 또는 off이 출력됩니다.

원격 분석 에이전트가 실행 중인지 확인

원격 분석 에이전트가 실행 중인지 확인하려면 컨테이너 호스트에서 다음 명령어를 실행합니다.

docker top CONTAINER_NAME

다음과 같이 바꿉니다.

  • CONTAINER_NAME: AlloyDB Omni 컨테이너의 이름입니다(예: my-omni-1).

원격 분석이 사용 설정되어 실행 중이면 출력에 postgres: omni telemetry worker 텍스트가 포함된 줄이 포함됩니다.

원격 분석 에이전트 활동 확인

원격 분석 에이전트의 활동을 확인하려면 컨테이너 호스트에서 다음 명령어를 실행합니다.

docker logs CONTAINER_NAME 2>&1 | grep telemetry

다음과 같이 바꿉니다.

  • CONTAINER_NAME: AlloyDB Omni 컨테이너의 이름입니다(예: my-omni-1).

원격 분석 에이전트가 실행 중이면 로그에 다음과 유사한 메시지가 포함됩니다.

LOG:  [telemetry_agent_worker.cc:143]  Started telemetry worker
LOG:  [telemetry_agent_worker.cc:161]  Running telemetry reporting agent
telemetry_agent: Uploading telemetry data to https://cloud.google.com/log.

외부 데이터 디렉터리 마운트

기본적으로 빠른 시작: AlloyDB Omni 설치의 명령어는 Docker 또는 Podman에서 관리하는 영역에 데이터베이스 데이터를 저장합니다. 이렇게 하면 시작하기는 편리하지만 데이터 디렉터리를 찾고 사용하기가 어려워집니다. 대신 바인드 마운트를 설정하여 데이터 디렉터리를 디스크의 알려진 위치에 매핑할 수 있습니다.

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

다음 변수를 바꿉니다.

  • CONTAINER_NAME: 컨테이너에 사용한 이름입니다. 예를 들면 my-omni-1입니다.
  • NEW_PASSWORD: 새 컨테이너의 postgres 사용자 생성 후 할당된 비밀번호입니다.
  • DATA_DIR: 데이터가 저장된 호스트 디렉터리 경로
  • HOST_PORT: 컨테이너가 자체 포트 5432를 게시해야 하는 호스트 머신의 TCP 포트. 호스트 머신에서도 PostgreSQL 기본 포트를 사용하려면 5432를 지정합니다.
  • IMAGE_TAG: 최신 Debian 이미지에는 17.5.0을 사용하고 최신 UBI 이미지에는 17.5.0-ubi를 사용합니다.

ulimit 사용 설정

ulimit 파라미터는 Docker 또는 Podman 컨테이너가 사용할 수 있는 프로세스 한도를 지정합니다. 최적의 성능을 위해 다음 ulimit을 설정하는 것이 좋습니다.

  • nice=-20:-20: AlloyDB Omni는 중요한 PostgreSQL 프로세스가 더 높은 우선순위로 실행될 수 있도록 프로세스 우선순위를 조정합니다. 우선순위가 높을수록 프로세스에 사용 가능한 CPU가 더 많이 할당됩니다. 프로세스 우선순위를 조정하려면 AlloyDB Omni 컨테이너의 제한사항을 삭제하는 --ulimit=nice=-20:-20을 지정합니다.

  • memlock=-1:-1: AlloyDB Omni는 자동 메모리 관리를 실행합니다. --ulimit=memlock=-1:-1을 설정하면 데이터베이스에서 메모리 페이지의 교체 방식을 더 잘 제어할 수 있으므로 성능이 향상될 수 있습니다.

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

다음 변수를 바꿉니다.

  • CONTAINER_NAME: 컨테이너에 사용한 이름입니다. 예를 들면 my-omni-1입니다.
  • NEW_PASSWORD: 새 컨테이너의 postgres 사용자 생성 후 할당된 비밀번호입니다.
  • HOST_PORT: 컨테이너가 자체 포트 5432를 게시해야 하는 호스트 머신의 TCP 포트입니다. 호스트 머신에서도 PostgreSQL 기본 포트를 사용하려면 5432를 지정합니다.
  • IMAGE_TAG: 최신 Debian 이미지에는 AlloyDB Omni을 사용하고 최신 UBI 이미지에는 AlloyDB Omni-ubi를 사용합니다.

로깅 드라이버 지정

기본적으로 Docker와 Podman은 로그 로테이션을 수행하지 않습니다. 이로 인해 많은 디스크 공간이 사용되고 결국 디스크 공간이 소진될 수 있습니다. 다른 로깅 드라이버를 사용하려면 --log-driver 필드를 지정하면 됩니다. 예를 들어 journald에 로깅하려면 다음을 수행합니다.

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

다음 변수를 바꿉니다.

  • CONTAINER_NAME: 컨테이너에 사용한 이름입니다. 예를 들면 my-omni-1입니다.
  • NEW_PASSWORD: 새 컨테이너의 postgres 사용자 생성 후 할당된 비밀번호입니다.
  • HOST_PORT: 컨테이너가 자체 포트 5432를 게시해야 하는 호스트 머신의 TCP 포트입니다. 호스트 머신에서도 PostgreSQL 기본 포트를 사용하려면 5432를 지정합니다.
  • IMAGE_TAG: 최신 Debian 이미지에는 17.5.0을 사용하고 최신 UBI 이미지에는 17.5.0-ubi를 사용합니다.

로깅 드라이버에 대한 자세한 내용은 Docker의 로깅 드라이버 구성 및 Podman의 podman-run 문서를 참조하세요.

PostgreSQL을 사용하여 로깅을 구성할 수도 있습니다. 자세한 내용은 AlloyDB Omni 로그 로테이션 구성을 참조하세요.

공유 메모리 볼륨 마운트

AlloyDB Omni와 함께 AlloyDB 열 기반 엔진을 사용하려면 AlloyDB Omni 컨테이너에서 공유 메모리를 사용할 수 있도록 하는 것이 좋습니다. 이 작업을 실행하는 방법은 다음 예시와 같이 호스트 운영체제에 따라 다릅니다.

Linux

컨테이너에서 공유 메모리를 사용할 수 있도록 하려면 /dev/shm을 마운트합니다.

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

다음 변수를 바꿉니다.

  • CONTAINER_NAME: 컨테이너에 사용한 이름입니다. 예를 들면 my-omni-1입니다.
  • NEW_PASSWORD: 새 컨테이너의 postgres 사용자 생성 후 할당된 비밀번호입니다.
  • HOST_PORT: 컨테이너가 자체 포트 5432를 게시해야 하는 호스트 머신의 TCP 포트입니다. 호스트 머신에서도 PostgreSQL 기본 포트를 사용하려면 5432를 지정합니다.
  • IMAGE_TAG: 최신 Debian 이미지에는 17.5.0을 사용하고 최신 UBI 이미지에는 17.5.0-ubi를 사용합니다.

macOS

컨테이너에서 공유 메모리를 사용할 수 있도록 하려면 --shm-size 플래그를 포함합니다.

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

다음 변수를 바꿉니다.

  • CONTAINER_NAME: 컨테이너에 사용한 이름입니다. 예를 들면 my-omni-1입니다.
  • NEW_PASSWORD: 새 컨테이너의 postgres 사용자 생성 후 할당된 비밀번호입니다.
  • SHARED_MEMORY_SIZE: 컨테이너에서 /dev/shm에 설정할 크기로, 컨테이너 실행에 설명된 형식입니다. 예를 들어 1GB를 지정하려면 1g 값을 사용합니다.
  • HOST_PORT: 컨테이너가 자체 포트 5432를 게시해야 하는 호스트 머신의 TCP 포트입니다. 호스트 머신에서도 PostgreSQL 기본 포트를 사용하려면 5432를 지정합니다.
  • IMAGE_TAG: 최신 Debian 이미지에는 17.5.0을 사용하고 최신 UBI 이미지에는 17.5.0-ubi를 사용합니다.

공유 메모리 크기를 최소한 google_job_scheduler.max_parallel_workers_per_job 플래그의 데이터베이스 값에 250을 곱한 값(메가바이트) 이상으로 설정하는 것이 좋습니다. 열 기반 엔진에 관한 자세한 내용은 AlloyDB Omni에서 열 기반 엔진 구성을 참조하세요.

예를 들어 google_job_scheduler.max_parallel_workers_per_job 데이터베이스 플래그가 기본값인 2로 설정된 경우 데이터베이스 서버를 시작할 때 --shm-size=500m 이상의 플래그를 추가하는 것이 좋습니다.

--shm-size 플래그에 대한 자세한 내용은 컨테이너 실행을 참조하세요.

확장 프로그램 사용 설정

AlloyDB Omni에서 사용할 수 있는 확장 프로그램 목록은 지원되는 데이터베이스 확장 프로그램에서 확인할 수 있습니다. PostGIS와 Orafce는 AlloyDB Omni에 포함되어 있지 않지만 다음 안내에 따라 설치할 수도 있습니다.

설치된 확장 프로그램은 확장 프로그램 사용 설정에 설명된 대로 표준 PostgreSQL CREATE EXTENSION 문을 사용하여 사용 설정됩니다.