これまではMacやRHEL(Red Hat Enterprise Linux)系でデータベースを触ってきましたが、今回はUbuntu 22.04 LTS環境を使ってPostgreSQL 16を導入しました。
実際に触ってみて感じたのは、**「Ubuntuはコマンド体系やファイル管理が非常にシンプルで扱いやすい」**ということです。今回はその導入手順と、実務で役立つ「複数クラスタの同時起動」の実験記録をまとめます。
1. なぜUbuntuを選んだのか?
実務では堅牢なRHEL系が選ばれることも多いですが、学習用としてUbuntuを使ってみて、その「シンプルさ」に驚きました。
パッケージ管理が直感的:
aptコマンドの依存関係解決がスムーズ。設定ファイルの配置が明快:
/etc/postgresql/16/main/のように、バージョンごとに整理された構造が分かりやすい。情報の豊富さ: 世界中のエンジニアが使っているため、困った時の解決策がすぐに見つかる。
こうした「管理のしやすさ」は、試行錯誤を繰り返す学習フェーズでは大きなメリットだと感じています。
2. PostgreSQL 16のインストール手順
Ubuntu標準のリポジトリではなく、最新のマイナーバージョンを確実に追えるよう公式リポジトリを利用します。
(1) リポジトリの作成と鍵の登録
# 公式リポジトリの追加
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
# 署名鍵の登録
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# リストの更新
sudo apt-get update
(2) インストール
sudo apt -y install postgresql-16
インストール後、管理用のOSユーザー postgres にパスワードを設定しておきました。
sudo passwd postgres
(3) 導入確認
psql --version を実行し、無事に PostgreSQL 16.9 が導入されたことを確認。デフォルトではポート 5432 で起動しています。
3. 実験:もうひとつのデータベースクラスタを立ち上げる
「本番用と検証用を1台で動かしたい」というケースを想定し、別のポート(5433)で2つ目のクラスタを立ち上げる実験を行いました。
(1) クラスタの作成
postgres ユーザーになり、新しいデータディレクトリを初期化します。
# ロケールなし設定で作成
/usr/lib/postgresql/16/bin/initdb -D /var/lib/postgresql/16/db2 --encoding=UTF8 --no-locale
(2) 設定の変更(ポートの競合回避)
新しいクラスタの設定ファイルを編集し、既存の5432ポートとぶつからないようにします。
ファイル:
/var/lib/postgresql/16/db2/postgresql.conf変更箇所:
port = 5433
(3) クラスタの起動
/usr/lib/postgresql/16/bin/pg_ctl -D /var/lib/postgresql/16/db2 -l logfile start
4. 接続テスト:ポートの使い分け
これで1台のUbuntu上で2つの独立したDBが動いている状態です。
# 既存のクラスタへ接続
psql -U postgres -p 5432
# 新しいクラスタ(db2)へ接続
psql -U postgres -p 5433
どちらも正常にログインでき、完全に独立した環境として機能していることが確認できました。
5. 実験を終えて:OSによる「手触り」の違い
今回の構築を通じて、RHEL系とUbuntu(Debian系)の「思想の違い」を肌で感じることができました。
RHELが「安定・保守」を重視するのに対し、Ubuntuは「導入・運用のシンプルさ」を重視しているように感じます。特にパスの通り方やパッケージの構成が素直で、見習いエンジニアとしてはUbuntuの方が学習のハードルが低く、実験に集中しやすい印象を受けました。
こうしたOSごとの「手触り」の違いを知ることも、インフラを支えるデータベースエンジニアとして大切な経験だと感じています。
0 件のコメント:
コメントを投稿