Open2
オンプレ→RDS(PostgreSQL)データ移行方法

- 事前準備:
① EC2インスタンスの準備
- Amazon Linux 2でインスタンス作成
- PostgreSQLクライアントのインストール
sudo amazon-linux-extras enable postgresql14
sudo yum install postgresql-server postgresql-devel
② セキュリティグループ設定
EC2:
- インバウンド:オンプレからSSH(22)
- アウトバウンド:RDSへ5432
RDS:
- インバウンド:EC2から5432
- 接続確認:
① EC2へSSH接続確認
ssh ec2-user@[EC2のパブリックIP]
② EC2からRDSへ接続確認
psql -h [RDSエンドポイント] \
-U [ユーザー名] \
-d [データベース名]
- データ移行:
① オンプレでダンプファイル作成
pg_dump -h [オンプレのIPアドレス] \
-U [ユーザー名] \
-d [データベース名] \
-f backup.dump
② ダンプファイルをEC2へ転送
scp backup.dump ec2-user@[EC2のパブリックIP]:/home/ec2-user/
③ EC2からRDSへリストア
psql -h [RDSエンドポイント] \
-U [ユーザー名] \
-d [データベース名] \
-f backup.dump
- 確認作業:
① データ件数確認
② テーブル構造確認
③ サンプルデータ確認

pg_dumpで作成したダンプファイルの形式によって、使用するリストアコマンドが変わります。
- ダンプ形式とリストアコマンド:
① テキスト形式(デフォルト: -Fp)の場合:
pg_dump -h [ホスト名] -U [ユーザー名] -d [DB名] -f backup.sql
↓
リストアはpsqlコマンドを使用:
psql -h [RDSエンドポイント] -U [ユーザー名] -d [DB名] -f backup.sql
② カスタム形式(-Fc)の場合:
pg_dump -h [ホスト名] -U [ユーザー名] -d [DB名] -Fc -f backup.dump
↓
リストアはpg_restoreコマンドを使用:
pg_restore -h [RDSエンドポイント] -U [ユーザー名] -d [DB名] backup.dump
つまり:
✅ テキスト形式なら:psqlコマンド
✅ カスタム形式なら:pg_restoreコマンド