構成図
以下参考資料をベースに上記の構成を作成していきます。
AWSのEC2からRDSに接続してmySQLを操作。EC2踏み台サーバー構築メモ
ネットワーク
ベースにしている参考資料の設定値をほぼそのまま使います。
- VPC
Name CIDR rds-ec2-ssh_vpc 10.0.0.0/16  - サブネット
Name CIDR 用途 rds-ec2-ssh_publicSubnet-a 10.0.0.0/24 踏み台サーバー(EC2)用 rds-ec2-ssh_privateSubnet-a 10.0.100.0/24 RDS用 rds-ec2-ssh_privateSubnet-c 10.0.101.0/24 RDS用(RDSの仕様上複数AZを指定する必要があるため)  - インターネットゲートウェイ
Name rds-ec2-ssh_igw  - ルートテーブル(パブリックサブネット用。Name: public_rtb)
|送信先|ターゲット|
|0.0.0.0/0|igw-××××(上で作ったインターネットゲートウェイ)|
|10.0.0.0/16|local| - ルートテーブル(プライベートサブネット用。Name: private_rtb)
|送信先|ターゲット|
|10.0.0.0/16|local| 
セキュリティ
- 踏み台サーバー(EC2)用のセキュリティグループ
- Name: ec2-ssh_sg
 - インバウンドルール
タイプ プロトコル ポート範囲 送信元 SSH(22) TCP(6) 22 0.0.0.0/0(※1)  - アウトバウンドルール
タイプ プロトコル ポート範囲 送信元 すべてのトラフィック すべて すべて 0.0.0.0/0  
 
※1クライアントの接続元を特定のIPアドレスに制限したい場合は許可するIPアドレスを指定する。
- RDS用のセキュリティグループ
- Name: rds-ec2_sg
 - インバウンドルール
タイプ プロトコル ポート範囲 送信元 PostgreSQL(5432) TCP(6) 5432 10.0.0.0/16  - アウトバウンドルール
タイプ プロトコル ポート範囲 送信元 すべてのトラフィック すべて すべて 0.0.0.0/0  
 
EC2
- 
名前とタグ: rds-ec2-ssh_ec2_linux2
 - 
アプリケーションおよびOSイメージ(Amazonマシンイメージ): Amazon Linux 2(無料利用枠)※2
 - 
キーペア
- キーペアのタイプ: RSA
 - プライベートキーファイル形式: .pem
※ここで作成したキーファイルは必ずダウンロードして保存しておいてください。 
 - 
ネットワーク設定
- ネットワーク: rds-ec2-ssh_vpc
 - サブネット: rds-ec2-ssh_publicSubnet-a
 - 自動割り当てパブリック IP: 有効化
 - セキュリティグループ: ec2-ssh_sg
 
 
※2 デフォルトの「Amazon Linux 2023」はssh-rsa署名が使用できず、TeraTerm4.×系からSSH接続が出来ないようです。(CloudShellからなら接続できる)
TeraTerm5以降からならrsa-sha2-256およびrsa-sha2-512プロトコルを使用して接続可能だが、2023/7/10時点ではベータ版までしかリリースされていない模様。
RDS
- サブネットグループ
- 名前: rds-ec2-ssh_sng
 - 説明: rds-ec2-ssh_sng(空にできないので適当に)
 - VPC: rds-ec2-ssh_vpc
 - アベイラビリティーゾーン: ap-northeast-1a, ap-northeast-1c
 - サブネット: rds-ec2-ssh_privateSubnet-a(10.0.100.0/24), rds-ec2-ssh_privateSubnet-c(10.0.101.0/24)
 
 
- 
エンジンのオプション
- エンジンのタイプ: Aurora(PostgreSQL Compatible)
 - エンジンバージョン: Aurora PostgreSQL(Compatible with PostgreSQL 14.6)
 
 - 
設定
- DB クラスター識別子:
 - マスターユーザー名: postgres(デフォルト。メモしておくこと)
 - マスターパスワード: (適当にパスワードポリシーを満たしている値。メモしておくこと)
 
 - 
接続
- Virtual Private Cloud (VPC): rds-ec2-ssh_vpc
 - DB サブネットグループ: rds-ec2-ssh_sng
 - 既存の VPC セキュリティグループ: rds-ec2_sg
 
 - 
追加設定
- 最初のデータベース名: test(適当に)
 
 
EC2の踏み台サーバーに入る
ここは二パターン紹介します。
CloudShellを使用する
ローカルにSSHクライアントをインストールしたくないあるいはめんどくさい人向け。

- 
「ファイルのアップロード」を押下して、踏み台サーバー(EC2)を立ち上げた際にダウンロードしたキーファイル(.pemのやつ)をアップロードする。
 - 
アップロードしたキーファイルの権限を600にする。
chmod 600 `キーファイル名`.pem 
- 以下のコマンドで踏み台サーバーにアクセスできる。
ssh -i `キーファイル名`.pem ec2-user@`踏み台サーバーのパブリックIPv4アドレス` 
- 
「ユーザ名(N)」が
ec2-userであることを確認。 - 
「認証方式」を
RSA/DSA/ECDSA/ED25519鍵を使うにし、踏み台サーバー(EC2)を立ち上げた際にダウンロードしたキーファイル(.pemのやつ)を指定。 - 
踏み台サーバーにアクセス成功。
 
RDSのPostgreSQLに接続する
踏み台サーバー(EC2)に入ることができたら、そこからRDSに接続します。
- 
以下コマンドで
psqlコマンドをインストールする。// yumパッケージ更新 sudo yum update // このコマンドで`postgresql14`をいうパッケージがあることを確認 sudo amazon-linux-extras // `postgresql14`をインストール sudo amazon-linux-extras install -y postgresql14普通にyum installでインストールしたものはバージョンが古かったらしく、認証方式が合わなくてログインができなかった。
多分コマンドが間違っていた気もするので要検証。一先ずamazoninuxなら上のやり方でインストールできる。 - 
以下コマンドでRDS(ライターインスタンスの方)にログイン。
psql -h `エンドポイント` -p 5432 -U postgres -d testオプション -h RDS「接続とセキュリティ」の「エンドポイント」の接続したい方 -p ポート番号 -U ユーザー名 -d 接続するデータベース名 パスワード入力を要求されるので、RDS作成時にメモしたマスターパスワードを入力。
 








