踏み台インスタンス経由でAurora PostgreSQL(Serverless)に接続する
はじめに
Aurora PostgresSQLのServerlessですが、Public IPを設定することはできないため踏み台インスタンス経由で接続することになります。
そのため、以下の構成でAurora PostgresSQLへ接続するまでの手順を確認したいと思います。
VPC・サブネット作成
VPCは以下のように作成しました。
- 名前: MyVPC
- CIDR:10.0.0.0/16
次にサブネットを以下のように作成しました。
名前 | CIDR | 説明 |
---|---|---|
PublicSubnet-a | 10.0.0.0/24 | 踏み台サーバー用のパブリックサブネット |
PrivateSubnet-a | 10.0.10.0/24 | Aurora用のプライベートサブネット |
PrivateSubnet-b | 10.0.20.0/24 | Aurora用のプライベートサブネット |
また、MyPublicGWというインターネットゲートウェイを作成し、PublicSubnet-aにアタッチしておきます。
ルートテーブルは、以下のようにインターネットゲートウェイからインターネットへの接続を許可しておきます。
踏み台サーバー構築
パブリックサブネット(PublicSubnet-a)上に踏み台用のEC2サーバーを構築します。
- ネットワーク: MyVPC
- サブネット: PublicSubnet-a
- 自動割り当てパブリックIP: 有効
セキュリティグループは以下のようにSSHのみを受信するように設定します。
Aurora PostgreSQL(Serverless)
Aurora PostgreSQL(Serverless)のデータベースを作成(省略)した後、セキュリティグループのインバウンドを以下のように設定します。
PostgreSQLが使用する5432ポートを許可しています。
EC2からAuroraへの接続確認
EC2の踏み台サーバーからAuroraへ接続できることを確認します。
psqlコマンドを利用したいので、まずはpostgresqlをインストールします。
$ sudo yum install postgresql
次にpsqlコマンドでAuroraに接続し、「\l」メタコマンドでデータベースの一覧を確認しています。
$ psql -h database-1.cluster-XXX.ap-northeast-1.rds.amazonaws.com -U postgres
Password for user postgres:
psql (9.2.24, server 10.7)
WARNING: psql version 9.2, server version 10.0.
Some psql features might not work.
SSL connection (cipher: ECDHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.
postgres=> \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
rdsadmin | rdsadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | rdsadmin=CTc/rdsadmin
template0 | rdsadmin | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/rdsadmin +
| | | | | rdsadmin=CTc/rdsadmin
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
EC2へポートフォワーディング
EC2・Aurora間の接続できたところ、SSHクライアントとしてRLoginを使用してEC2へSSHで接続しポートフォワーディングします。
RLoginでポートフォワーディング用の接続を作成します。
まずサーバの情報として以下を入力します。
- Server Address: 接続先のEC2サーバのアドレス
- User Name: ec2-user
- SSH Identity Key: pemファイルを指定します
次に、「プロトコル」を選択し、以下にチェックを入れます。
- シェル起動なしでPFログを表示
- エージェント転送を有効にする
上の画面で、「ポートフォワーディング」を選択し、以下のように入力します。
- Listened Host: localhost
- Port: 15432(ローカルポート:任意)
- Connect Host: 接続先のAuroraサーバ
- Port: 5432
接続先の設定が終われば、踏み台サーバへ接続して待機します。
A5M2からAurora PostgreSQLへ接続
A5M2では以下のように接続先を設定します。サーバー名がポートフォワード元の「localhost」になることに注意。
設定してから気づいたのですが、A5M2自体にSSHトンネル機能があるのでRLoginは使用しなくてもA5M2だけで接続できるかもしれません。
pgbenchでサンプルテーブルを作成
接続できるようになったところで、負荷試験用のpgbenchでサンプルテーブルを作成してみます。
pgbenchはpostgresql-contribに含まれるので、まずはpostgresql-contribをインストールします。そしてpgbenchコマンドで負荷試験用のテーブルを作成しています。
$ sudo yum install -y postgresql-contrib
$ pgbench -i -h database-1.cluster-XXXX.ap-northeast-1.rds.amazonaws.com -U postgres
ログの確認
ここからあまり関係ありませんが、いろいろなメモです。
Auroraのログを確認するためには、CloudWatchから以下のように確認できます。
パラメータ変更
オンプレミスの場合はpostgresql.confを直接編集してパラメータを変更するのですが、Auroraではパラメータグループというものを用いて変更します。
パラメータグループで「パラメータグループ作成」を選択し「DB クラスターのパラメータグループ」を作成します。以下では、「aurora-postgres10-cluster-custom」のパラメータグループの作成が終わっています。
データベースの変更で、「DBクラスターのパラメータグループ」で作成したパラメータグループを設定します。
パラメータを変更した後に、psqlコマンドでパラメータを確認すると以下のように確認できます。
postgres=> show auto_explain.log_min_duration;
auto_explain.log_min_duration
-------------------------------
0
(1 row)
Author And Source
この問題について(踏み台インスタンス経由でAurora PostgreSQL(Serverless)に接続する), 我々は、より多くの情報をここで見つけました https://qiita.com/mkyz08/items/865f9823e36a5da5c60a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .