AlloyDB Omni は Docker イメージを介してデプロイされるため、さまざまな形のカスタマイズが可能です。このページでは、よく使用されるカスタマイズをいくつか紹介します。
デフォルト構成を使用して AlloyDB Omni をすぐに使用するには、クイックスタート: AlloyDB Omni をご覧ください。
始める前に
次の表に、AlloyDB Omni に推奨されるハードウェアとソフトウェアの構成を示します。
OS/プラットフォーム | 推奨されるハードウェア構成 | 推奨されるソフトウェア構成 |
---|---|---|
Linux |
|
|
macOS |
|
|
(*) Arm のサポートはプレビュー版です。 |
AlloyDB Omni はコンテナで実行されます。AlloyDB Omni をインストールする前に、Docker や Podman などのコンテナ ランタイムをマシンにインストールします。
Podman コマンドは、無効な Security-Enhanced 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 コンテナが使用できるプロセスの上限を指定します。パフォーマンスを最適化するには、次の 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 --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
フラグの詳細については、コンテナの実行をご覧ください。