[小ネタ] EC2 (AL2023) に PostgreSQL をインストールしてみた
本ブログでは EC2 (Amazon Linux 2023) に PostgreSQL を「インストール->ログイン->任意のクエリを実行」までの手順を記述します。
すぐに PostgreSQL を入れて色々検証したい方向けに作成しました。
なお、EC2 は作成済みとします。ちなみに自分が検証用で作成した EC2 環境は以下です。
- t3.micro
- パブリックサブネット配置
- パブリック IP の自動割り当てを有効化
やってみた
EC2 にログインし、以下を実行。
$ sudo dnf update
補足:PostgreSQL をインストールすると postgres ユーザーが自動作成される
PostgreSQL インストール前の OS ユーザー一覧を確認。
以下結果よりec2-user はいるが、まだ postgres ユーザーは存在しない。
$ cat /etc/passwd
...
ec2-user:x:1000:1000:EC2 Default User:/home/ec2-user:/bin/bash
なお/etc/passwd は OS ユーザー一覧を確認できるファイルのことです。詳細は下記を参照ください。
ブログ後述の postgresql17-server をインストール後に再度 /etc/passwd ファイルを確認すると postgres ユーザーが作られていることが確認できます
$ cat /etc/passwd
...
ec2-user:x:1000:1000:EC2 Default User:/home/ec2-user:/bin/bash
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
これは下記 PostgreSQL ドキュメントの内容通りの動きです。
ユーザーが自動作成されたのが個人的に気になる動作だったので、補足としてブログにメモしました。
パッケージ化された版のPostgreSQLは、通常、パッケージのインストール中に自動的に適切なユーザアカウントを作成します。
以下 AL2023 のパッケージリストに postgresql17-server があることを確認。
PostgreSQL 17 をインストール(PostgreSQL の他のバージョンを入れたい方などは適宜変更してください)
$ sudo dnf install postgresql17-server -y
PostgreSQL を初期化し、データベースクラスタを作成する
$ sudo postgresql-setup --initdb
PostgreSQL サービスの起動
$ sudo systemctl start postgresql
起動できたか確認。Active 項目が active (running) なので OK
$ sudo systemctl status postgresql
● postgresql.service - PostgreSQL database server
...
Active: active (running) since Fri 2026-01-16 04:46:52 UTC; 28s ago
...
PostgreSQL インストール時に作成された postgres ユーザーはパスワード未設定のため、以下コマンドで設定
$ sudo passwd postgres
Changing password for user postgres.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
su コマンドで現在使用中の ec2-user から postgres ユーザーに切り替え。
※ここだけわかりやすいようにプロンプト全体を載せています。プロンプトの ec2-user@ip-10-0-9-201 の部分が postgres@ip-10-0-9-201 に切り替わっていることが確認できます
[ec2-user@ip-10-0-9-201 ~]$ su - postgres
Password:
[postgres@ip-10-0-9-201 ~]$
なお su コマンドはユーザーを切り替えるコマンドです。詳細は下記を参照ください。
postgres ユーザーに切り替わったので psql コマンドを実行。postgres プロンプトに切り替わったので成功です。
[postgres@ip-10-0-9-201 ~]$ psql
psql (17.7)
Type "help" for help.
postgres=#
念の為任意のクエリが実行できるか確認 -> SELECT できているので大丈夫そう
postgres=# SELECT now();
now
-------------------------------
2026-01-16 05:17:18.887835+00
(1 row)
終わりに
自分自身、環境構築系の作業が苦手なので、備忘録のために本ブログを作成しました。
PostgreSQL をサッと検証のみでいいから使いたいなど、そういう場面で役立てられたらと思います。
また、今回は EC2 にログインした状態で PostgreSQL を使っていますが、localhost 以外からの接続設定などについて、英語ではありますが以下の記事も大変参考になるかと思いますので、適宜ご参照ください。
このブログがどなたかのお役に立てば幸いです。
追記:
本記事と似たような形で過去に MySQL を AL2023 にインストールする方法もブログ化しているので、必要な時は参考にしてもらえたらと存じます。
[小ネタ] Amazon Linux 2023 に MySQL をインストール->ログイン する
https://dev.classmethod.jp/articles/Install-mysql-on-al2023-and-login/
参考情報






