Blog

【2025 年 8 月版】Amazon Linux 2023 に PostgreSQL をインストール

Amazon Linux 2023 に PostgreSQL をインストールする手順を説明します。

環境 (バージョン)

AMI
Amazon Linux 2023 AMI 2023.8.20250818.0 x86_64 HVM kernel-6.1
PostgreSQL
16.9

2025/08/29 時点の環境で確認しています。

PostgreSQL インストール

2025 年 8 月現在、リリースされてからしばらく時間が経って安定している 16 系をインストールします。
(リリース日: 2023年9月14日、サポート終了日: 2028年11月9日)

$ sudo dnf -y install postgresql16-server postgresql16-server-devel

PostgreSQL 初期設定

インストール後にデータベースを初期化するコマンドを実行します。

$ sudo postgresql-setup initdb
WARNING: using obsoleted argument syntax, try --help
WARNING: arguments transformed to: postgresql-setup --initdb --unit postgresql
 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

PostgreSQL を起動して、サーバー再起動時にも自動的に起動するようにします。

$ sudo systemctl start postgresql
$ sudo systemctl enable postgresql
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service.

権限周りの設定は一番手軽な設定を行います。
AWS のデフォルトユーザーである ec2-user で EC2 にログインした場合を想定し、その場合に PostgreSQL を手軽に操作できるような設定を行います。
詳しくは PostgreSQL マニュアルの「クライアント認証」を参照してください。

「postgres (Linux)」 で createuser コマンドを実行して、データベースを作成可能なユーザー「ec2-user (PostgreSQL)」を作成します。
PostgreSQL デフォルト設定では、「ec2-user (Linux)」で PostgreSQL に接続した場合は「ec2-user (PostgreSQL)」の権限が適用されます。

$ sudo -u postgres -i createuser -d ec2-user

PostgreSQL 動作確認

PostgreSQL のスーパーユーザーでアクセスして、データベースの一覧を表示。

$ sudo -u postgres psql
psql (16.9)
Type "help" for help.

postgres=# \l
                                                   List of databases
   Name    |  Owner   | Encoding | Locale Provider | Collate |  Ctype  | ICU Locale | ICU Rules |   Access privileges
-----------+----------+----------+-----------------+---------+---------+------------+-----------+-----------------------
 postgres  | postgres | UTF8     | libc            | C.UTF-8 | C.UTF-8 |            |           |
 template0 | postgres | UTF8     | libc            | C.UTF-8 | C.UTF-8 |            |           | =c/postgres          +
           |          |          |                 |         |         |            |           | postgres=CTc/postgres
 template1 | postgres | UTF8     | libc            | C.UTF-8 | C.UTF-8 |            |           | =c/postgres          +
           |          |          |                 |         |         |            |           | postgres=CTc/postgres
(3 rows)

postgres=# exit

ec2-user でデータベース (testdb) を作成して、アクセスできることの確認。

$ createdb testdb
$ psql testdb
psql (16.9)
Type "help" for help.

testdb=> exit

$ dropdb testdb

おわりに

この手順でインストールできない場合や、別のソフトウェアのインストールをご希望の場合は、お問い合わせよりご連絡ください。