LoginSignup
0
0

踏み台EC2を経由してRDSに接続したい

Last updated at Posted at 2024-05-31

:triangular_flag_on_post: やりたいこと

今回、踏み台用のEC2を作成し、RDSへ接続してみます!
EC2をパブリックサブネット、RDSをプライベートサブネットに配置する想定です。
なお、VPCやサブネットは作成済みの前提で進めますのであしからず:zipper_mouth:

:gear: セキュリティグループの作成

まずはEC2・RDSに設定するセキュリティグループの作成から。

EC2
EC2へはsshで繋ぎたいので、ポート22を許可してあげます。
CIDRブロックには許可するIPアドレスを指定します。
0.0.0.0/0を入力すればどこからでもアクセスできる状態になりますが、
今回パブリックサブネットに作成するためセキュリティ的に危険なので、自端末のIPアドレスを指定してください。
特定のIPアドレスのみを許可する場合は/32とします。
例:〇.〇.〇.〇/32
image-3.png

RDS
今回RDSはPostgreSQLを使用するため、ポート5432を指定します。
ソースには先程作成したEC2のセキュリティグループを指定すると、EC2からのみの接続を許可している状態になります!
image-4.png

:globe_with_meridians: 踏み台EC2の作成

EC2の作成手順です。
AMIは、Amazon Linux 2023 を使用します。
image.png

インスタンスタイプは用途に応じて選んでください。
今回は無料利用枠対象のt2.microを使用します。
image-1.png

続いてキーペアを選びます。:key:
事前に作成しておくか、「新しいキーペアの作成」をクリックすると以下の画面が表示されるので、ここから作成することもできます。
image-2.png

キーペアのタイプ:RSA
プライベートキーファイル形式:.pem

で作成してください。

後はネットワーク設定。
事前に作成しているVPC・パブリックサブネットを指定します。
以下の点だけは注意して、残りはデフォルトの設定で問題ありません。

  • パブリック IP の自動割り当て:有効化
  • セキュリティグループ:先程作成したEC2用のセキュリティグループ

:blue_book: RDSの作成

RDSの作成手順です。
標準作成を選択します。
image-5.png

エンジンを選択します。
今回はPostgreSQLです。
image-7.png

任意のユーザー名・パスワードを設定してください。
image-9.png

接続の設定は事前に作成しているVPC・プライベートサブネットを指定します。
セキュリティグループも先程作成したものを指定してください。

:loudspeaker: 注意点として、追加設定のタブを開くとデータベース名を指定する欄があります。
ここを入力しないとデータベースを作成してくれないので注意してください。
ここではtest_dbとしておき、パラメータグループもデフォルトのままにしておきます。
image-10.png

:fist: 接続してみる

いよいよDB接続していきます!
A5:SQL Mk-2(A5M2)を使って接続します。
「サーバー名」はRDSインスタンスのエンドポイントを指定します。
それ以外はRDS作成時に設定したものを指定してください。
image.png

EC2経由で接続するには「SSH2トンネル」タブに設定します。

  • SSH2ホスト名:踏み台EC2の「パブリック IPv4 DNS」
  • ユーザーID:「ec2-user」
  • 秘密鍵ファイル:キーペアのファイルパス

image-13.png

接続すると、以下のようなエラーが出て接続に失敗しました。

no pg_hba.conf entry for host "10.1.8.58", user "postgres", database "test_db", no encryption

調べたところ、RDSのPostgreSQL15以上はパラメータグループの設定でSSL接続を強制する設定になっているらしいです。

デフォルトのパラメータグループは設定変更が出来ないため、カスタムパラメータグループを作成し、rds.force_sslを0に変更します。
image-14.png

作成したパラメータグループをRDSに設定すると、無事DBに接続出来ました。:raised_hands:

蛇足:snake:

調査の過程でTeraTermでEC2に接続を試みて、うまく接続できない事態が発生しました。
AmazonLinux2023ではssh-rsa署名が使えなくなっているらしく、Tera Term-5 RC 5.0 beta1版を使う必要がありました。
これで地味に詰まってました・・・。

まとめ

踏み台経由でデータベースへ接続するのはよくある構成だと思います。
AWSに不慣れだと躓くポイントがいっぱいありますが、小さなことからコツコツ頑張っていきましょう:thumbsup:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0