AlloyDB Omni 설치 맞춤설정

AlloyDB Omni는 다양한 형태의 맞춤설정을 허용하는 Docker 이미지를 통해 배포됩니다. 이 페이지에서는 자주 사용되는 몇 가지 맞춤설정을 보여줍니다.

기본 구성을 사용하여 AlloyDB Omni를 빠르게 시작하려면 빠른 시작: AlloyDB Omni를 참고하세요.

시작하기 전에

다음 표에는 AlloyDB Omni에 권장되는 하드웨어 및 소프트웨어 구성이 나와 있습니다.

OS/플랫폼 권장 하드웨어 구성 권장 소프트웨어 구성
Linux
  • AVX2를 지원하는 x86-64 또는 Arm (*) CPU
  • AlloyDB Omni에 할당된 모든 CPU에 8GB RAM
  • 디스크 공간 20GB 이상
  • Debian 기반 OS (Ubuntu 등) RHEL 8 또는 9
  • Linux 커널 버전 6.1 이상 또는 MADV_COLLAPSE 및 MADV_POPULATE_WRITE 디렉티브를 지원하는 5.3보다 오래된 Linux 커널 버전
  • Cgroupsv2 사용 설정됨
  • Docker Engine 25.0.0 이상 또는 Podman 5.0.0 이상
  • macOS
  • AVX2 지원 또는 M 칩이 있는 Intel CPU
  • AlloyDB Omni에 할당된 모든 CPU에 8GB RAM
  • 디스크 공간 20GB 이상
  • Docker 데스크톱 4.30 이상
  • (*) Arm 지원은 미리보기 버전입니다.

    AlloyDB Omni는 컨테이너에서 실행됩니다. AlloyDB Omni를 설치하기 전에 머신에 Docker 또는 Podman과 같은 컨테이너 런타임을 설치합니다.

    Podman 명령어는 사용 중지된 보안이 강화된 Linux (SELinux)에서 실행되는 루트 없는 컨테이너용으로 제공됩니다.

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

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

    Docker

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

    다음을 바꿉니다.

    • CONTAINER_NAME: 호스트 머신의 컨테이너 레지스트리에 이 새 AlloyDB Omni 컨테이너를 할당할 이름입니다(예: my-omni).

    • NEW_PASSWORD: 새 컨테이너가 생성된 후 새 컨테이너의 postgres 사용자에게 할당된 비밀번호입니다.

    • DATA_DIR: AlloyDB Omni에서 데이터 디렉터리에 사용하려는 파일 시스템 경로입니다.

    • HOST_PORT: 컨테이너가 포트 5432를 게시하는 호스트 머신의 TCP 포트입니다. 호스트 머신에서도 PostgreSQL 기본 포트를 사용하려면 5432를 지정합니다.

    Podman

      podman run --name CONTAINER_NAME \
      -e POSTGRES_PASSWORD=NEW_PASSWORD \
      -v DATA_DIR:/var/lib/postgresql/data \
      -p HOST_PORT:5432 -d google/alloydbomni:15

    다음을 바꿉니다.

    • CONTAINER_NAME: 호스트 머신의 컨테이너 레지스트리에 이 새 AlloyDB Omni 컨테이너를 할당할 이름입니다(예: my-omni).

    • NEW_PASSWORD: 새 컨테이너가 생성된 후 새 컨테이너의 postgres 사용자에게 할당된 비밀번호입니다.

    • DATA_DIR: AlloyDB Omni에서 데이터 디렉터리에 사용하려는 파일 시스템 경로입니다.

    • HOST_PORT: 컨테이너가 포트 5432를 게시하는 호스트 머신의 TCP 포트입니다. 호스트 머신에서도 PostgreSQL 기본 포트를 사용하려면 5432를 지정합니다.

    Podman

      podman run --name CONTAINER_NAME \
      -e POSTGRES_PASSWORD=NEW_PASSWORD \
      -v DATA_DIR:/var/lib/postgresql/data \
      -p HOST_PORT:5432 -d google/alloydbomni:15

    다음을 바꿉니다.

    • CONTAINER_NAME: 호스트 머신의 컨테이너 레지스트리에 이 새 AlloyDB Omni 컨테이너를 할당할 이름입니다(예: my-omni).

    • NEW_PASSWORD: 새 컨테이너가 생성된 후 새 컨테이너의 postgres 사용자에게 할당된 비밀번호입니다.

    • DATA_DIR: AlloyDB Omni에서 데이터 디렉터리에 사용하려는 파일 시스템 경로입니다.

    • HOST_PORT: 컨테이너가 포트 5432를 게시하는 호스트 머신의 TCP 포트입니다. 호스트 머신에서도 PostgreSQL 기본 포트를 사용하려면 5432를 지정합니다.

    ulimits 사용 설정

    ulimit 매개변수는 Docker 컨테이너에서 사용할 수 있는 프로세스 한도를 지정합니다. 최적의 성능을 위해 다음 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 --name CONTAINER_NAME \
      -e POSTGRES_PASSWORD=NEW_PASSWORD \
      --ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
      -p HOST_PORT:5432 -d google/alloydbomni:15

    Podman

      podman run --name CONTAINER_NAME \
      -e POSTGRES_PASSWORD=NEW_PASSWORD \
      --ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
      -p HOST_PORT:5432 -d google/alloydbomni:15

    로깅 드라이버 지정

    기본적으로 Docker는 로그 회전을 실행하지 않습니다. 이로 인해 디스크 공간이 많이 사용되어 결국 디스크 공간이 부족해질 수 있습니다. 다른 로깅 드라이버를 사용하도록 Docker를 구성할 수 있습니다. 예를 들어 journald에 로깅하려면 다음을 실행합니다.

    Docker

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

    Podman

      podman run --name CONTAINER_NAME \
      -e POSTGRES_PASSWORD=NEW_PASSWORD \
      --log-driver=journald \
      -p HOST_PORT:5432 -d google/alloydbomni:15

    Docker 및 로깅 드라이버에 대한 자세한 내용은 Docker 문서 로깅 드라이버 구성을 참고하세요.

    PostgreSQL을 사용하여 로깅을 구성할 수도 있습니다. 자세한 내용은 PostgreSQL 문서 오류 보고 및 로깅을 참고하세요.

    공유 메모리 볼륨 마운트

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

    Linux

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

    Docker

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

    Podman

        podman run --name CONTAINER_NAME \
          -e POSTGRES_PASSWORD=NEW_PASSWORD \
          -p HOST_PORT:5432 \
          -v /dev/shm:/dev/shm \
          -d google/alloydbomni:15

    macOS

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

    Docker

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

    SHARED_MEMORY_SIZE컨테이너 실행에 설명된 형식으로 컨테이너의 /dev/shm에 설정할 크기로 바꿉니다. 예를 들어 1기가바이트를 지정하려면 값 1g를 사용합니다.

    Podman

      podman run --name CONTAINER_NAME \
        -e POSTGRES_PASSWORD=NEW_PASSWORD \
        -p HOST_PORT:5432 \
        --shm-size=SHARED_MEMORY_SIZE \
        -d google/alloydbomni:15

    SHARED_MEMORY_SIZE컨테이너 실행에 설명된 형식으로 컨테이너의 /dev/shm에 설정할 크기로 바꿉니다. 예를 들어 1기가바이트를 지정하려면 값 1g를 사용합니다.

    공유 메모리 크기를 데이터베이스의 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 플래그에 대한 자세한 내용은 컨테이너 실행을 참고하세요.