[AWS RDS] Postgresを作成し、pg_dumpでbackupを取得する

### 前準備
VPC, subnetを作って、EC2の作成

### DB用のネットワーク作成
– Inbound rouleでPostgresとして、セキュリティグループはec2のセキュリティグループにする
 L これにより、ec2しかアクセスできないようになる

– EC2のVPCでpostgres用のsubnetを作成
 L 192.168.x.0/28とする

### RDSでpostgresの作成
– create database, postgres 13.3-R1
– db2.t.micro
– 作成に2~3分かかる。出来たら、endpointをメモ(hoge.fuga.ap-northeast-1.rds.amazonaws.com)

### EC2でpostgresのインストール
$ sudo yum update
$ sudo yum install -y postgresql.x86_64
// 接続
$ psql -h hoge.fuga.ap-northeast-1.rds.amazonaws.com -U root -d postgres
postgres=>

CREATE TABLE playground (
equip_id serial PRIMARY KEY,
type varchar (50) NOT NULL,
color varchar (25) NOT NULL,
location varchar(25) check (location in (‘north’, ‘south’, ‘west’, ‘east’, ‘northeast’, ‘southeast’, ‘southwest’, ‘northwest’)),
install_date date
);

INSERT INTO playground (type, color, location, install_date) VALUES (‘slide’, ‘blue’, ‘south’, ‘2022-04-28’);
INSERT INTO playground (type, color, location, install_date) VALUES (‘swing’, ‘yellow’, ‘northwest’, ‘2022-08-16’);

postgres=> SELECT * FROM playground;
equip_id | type | color | location | install_date
———-+——-+——–+———–+————–
1 | slide | blue | south | 2022-04-28
2 | swing | yellow | northwest | 2022-08-16

### バックアップの取得
$ sudo pg_dump -U root -h hoge.fuga.ap-northeast-1.rds.amazonaws.com -p 5432 postgres -f /home/ec2-user/test.sql
パスワード:
pg_dump: サーババージョン: 13.3、pg_dump バージョン: 9.2.24
pg_dump: サーババージョンの不整合のため処理を中断しています

なんやと! EC2のpostgresのバージョンをRDSのバージョンと合わせないといけないらしい

$ sudo yum install gcc
$ sudo yum install readline-devel
$ sudo yum install zlib-devel
$ cd /usr/local/src
$ sudo wget https://ftp.postgresql.org/pub/source/v13.3/postgresql-13.3.tar.gz
$ sudo tar -xvzf postgresql-13.3.tar.gz
$ cd postgresql-13.3
$ ./configure –prefix=/usr/local/postgresql-13.3/ –with-pgport=5432
$ make
$ sudo make install

再度バックアップの取得
$ /usr/local/postgresql-13.3/bin/pg_dump -U root -h hoge.fuga.ap-northeast-1.rds.amazonaws.com -p 5432 postgres -f /home/ec2-user/test.sql
$ cd /home/ec2-user/
$ ls
test.sql

うおおおおおおおおおおおおおおおおおおお
すげえ感動した