概要
AWSのRDSを使ってPostgreSQLへ接続をしてみました。
前提事項
RDSの作成で行うパラメータ設定は、基本的にはすべてデフォルトで行っています。
また、接続方法はEC2インスタンスの踏み台サーバを使ってRDSへ接続します。
早速接続してみる
EC2にpsqlクライアントを入れる
・postgresql9.6がインストールされているか確認する
今回はamazon-linux-extraパッケージを使用します
[root@ip-10-0-1-10 ~]# amazon-linux-extras list | grep postgre
5 postgresql9.6 available \
6 postgresql10 available [ =10 =stable ]
41 postgresql11 available [ =11 =stable ]
58 postgresql12 available [ =stable ]
59 postgresql13 available [ =stable ]
[root@ip-10-0-1-10 ~]#
使用可能状態なので、インストールしていきます
[root@ip-10-0-1-10 ~]# amazon-linux-extras install postgresql9.6
Installed:
postgresql.x86_64 0:9.6.22-1.amzn2.0.1
Dependency Installed:
postgresql-libs.x86_64 0:9.6.22-1.amzn2.0.1
Complete!
5 postgresql9.6=latest enabled \
[ =9.6.6 =9.6.8 =stable ]
[root@ip-10-0-1-10 ~]# psql --version
psql (PostgreSQL) 9.6.22
Postgresqlサーバもインストールする
psqlが使えるだけではセットアップができません。
セットアップを行うためには、postgresql-serverのインストールもする必要があるので
それもインストールしていきます。
[root@ip-10-0-1-10 ~]# yum list | grep postgresql-server
postgresql-server.x86_64 9.6.22-1.amzn2.0.1 amzn2extra-postgresql9.6
[root@ip-10-0-1-10 ~]# yum install postgresql-server
Installed:
postgresql-server.x86_64 0:9.6.22-1.amzn2.0.1
Complete!
[root@ip-10-0-1-10 ~]# which postgresql-setup
/usr/bin/postgresql-setup
Postgreクライアントのセットアップをする
[root@ip-10-0-1-10 ~]# /usr/bin/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
[root@ip-10-0-1-10 ~]# systemctl start postgresql
[root@ip-10-0-1-10 ~]# systemctl status postgresql
● postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2021-07-30 14:25:58 UTC; 4s ago
Process: 4045 ExecStartPre=/usr/libexec/postgresql-check-db-dir %N (code=exited, status=0/SUCCESS)
Main PID: 4047 (postmaster)
CGroup: /system.slice/postgresql.service
├─4047 /usr/bin/postmaster -D /var/lib/pgsql/data
├─4050 postgres: logger process
├─4052 postgres: checkpointer process
├─4053 postgres: writer process
├─4054 postgres: wal writer process
├─4055 postgres: autovacuum launcher process
└─4056 postgres: stats collector process
Jul 30 14:25:58 ip-10-0-1-10.ap-northeast-1.compute.internal systemd[1]: Star...
Jul 30 14:25:58 ip-10-0-1-10.ap-northeast-1.compute.internal postmaster[4047]: ...
Jul 30 14:25:58 ip-10-0-1-10.ap-northeast-1.compute.internal postmaster[4047]: ...
Jul 30 14:25:58 ip-10-0-1-10.ap-northeast-1.compute.internal systemd[1]: Star...
Hint: Some lines were ellipsized, use -l to show in full.
psql接続をする
-bash-4.2$ psql \
> --host=database-2.c5jqncbegdvz.ap-northeast-1.rds.amazonaws.com \
> --port=5432 \
> --username=postgres \
> --password \
> --dbname=TESTDB
Password for user postgres:
psql (9.6.22)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.
TESTDB=>