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 コンテナが使用できるプロセスの上限を指定します。パフォーマンスを最適化するには、次の ulimit を設定することをおすすめします。

  • 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 倍以上のメガバイト数に設定することをおすすめします。カラム型エンジンの詳細については、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 ステートメントを使用して有効にします。