AlloyDB Omni 설치 맞춤설정

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

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

기본적으로 빠른 시작: 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:latest

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:latest

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:latest

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:latest

다음 변수를 바꿉니다.

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

ulimits 사용 설정

ulimit 매개변수는 Docker 또는 Podman 컨테이너에서 사용할 수 있는 프로세스 한도를 지정합니다. 최적의 성능을 위해 다음 ulimits를 설정하는 것이 좋습니다.

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

  • 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:latest

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:latest

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:latest

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:latest

다음 변수를 바꿉니다.

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

로깅 드라이버 지정

기본적으로 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:latest

Docker

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

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:latest

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:latest

다음 변수를 바꿉니다.

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

로깅 드라이버에 관한 자세한 내용은 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:latest

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:latest

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:latest

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:latest

다음 변수를 바꿉니다.

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

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:latest

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:latest

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:latest

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:latest

다음 변수를 바꿉니다.

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

공유 메모리 크기를 데이터베이스의 google_job_scheduler.max_parallel_workers_per_job 플래그 값의 250배 이상과 같은 메가바이트(MB)로 설정하는 것이 좋습니다. 열 형식 엔진에 관한 자세한 내용은 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 문을 사용하여 사용 설정됩니다.