Amazon Linux 2 に PostgreSQL をインストールする
Amazon Linux 2 に PostgreSQL をインストールして外部のクライアントからアクセスするまでを忘れないようにメモとして残しておく。
環境
- AMI
- Amazon Linux 2 Kernel 5.10 AMI 2.0.20221004.0 x86_64 HVM gp2
- インスタンスタイプ
- t3a.small
- ストレージ
- 16GB
EC2内での手順
sudo amazon-linux-extras install -y postgresql14
sudo yum install -y postgresql-server postgresql-devel
| パッケージ | 説明 |
|---|---|
| postgresql-server | initdb や pg_ctl などのユーティリティ |
| postgresql-devel | ヘッダや pg_config などの開発関連 |
export PGSETUP_INITDB_OPTIONS="--encoding=UTF8 --locale=ja_JP.UTF-8 --lc-collate=ja_JP.UTF-8 --lc-ctype=ja_JP.UTF-8"
| オプション | 説明 |
|---|---|
| --encoding | initdbでPostgreSQLクラスタのデフォルト文字セット(エンコーディング) |
| --locale | ロケールのサポートはアルファベット、並び換え、数字の書式など文化的嗜好を配慮したアプリケーションを対象にします。 |
| --lc-collate | 文字列の並び換え順 |
| --lc-ctype | 文字の分類(文字とはどんなもの?大文字小文字を区別しない?) |
sudo postgresql-setup --initdb
sudo systemctl start postgresql.service
sudo systemctl enable postgresql.service
以下のコマンドで PostgreSQL が実行されているかを確認できる。
systemctl status --no-pager postgresql.service
インストールが完了すると postgres ユーザーが作成される。
cat /etc/passwd | grep postgres
postgres OS ユーザーの権限で postgres DB に接続をする。
sudo -u postgres psql
以下のような SQL を実行して外部からアクセスするためのパスワードを設定する。
ALTER ROLE postgres PASSWORD 'Passw0rd';
以下のコマンドでパスワードが設定されたことを確認できる。
SELECT * FROM pg_shadow;
psql を抜ける。
exit
コンフィグを設定してIPアドレスを受け入れる。
sudo vim /var/lib/pgsql/data/postgresql.conf
listen_address = '*'
アクセス制御設定ファイルを編集する。
sudo vim /var/lib/pgsql/data/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 0.0.0.0/0 md5
サービスリロードする。
sudo systemctl reload postgresql.service
sudo systemctl restart postgresql.service
EC2のセキュリティグループの設定
EC2 のセキュリティグループにポート 5432 を許可するインバウンドルールを追加する。
接続確認
クライアントPCで以下のコマンドを実行して接続
psql --host=$DB_IP --port=5432 --username=postgres --dbname=postgres
コメント
コメントを投稿