5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

踏み台インスタンス経由でAurora PostgreSQL(Serverless)に接続する

Posted at

はじめに

Aurora PostgresSQLのServerlessですが、Public IPを設定することはできないため踏み台インスタンス経由で接続することになります。
そのため、以下の構成でAurora PostgresSQLへ接続するまでの手順を確認したいと思います。

image.png

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にアタッチしておきます。

ルートテーブルは、以下のようにインターネットゲートウェイからインターネットへの接続を許可しておきます。

image.png

踏み台サーバー構築

パブリックサブネット(PublicSubnet-a)上に踏み台用のEC2サーバーを構築します。

  • ネットワーク: MyVPC
  • サブネット: PublicSubnet-a
  • 自動割り当てパブリックIP: 有効

セキュリティグループは以下のようにSSHのみを受信するように設定します。

image.png



# Aurora PostgreSQL(Serverless)

Aurora PostgreSQL(Serverless)のデータベースを作成(省略)した後、セキュリティグループのインバウンドを以下のように設定します。
PostgreSQLが使用する5432ポートを許可しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179607/62f9c8f8-6749-1507-ccae-0fb5b3402812.png)


# 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ファイルを指定します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179607/f87b97b2-7195-af18-fea5-20b9559f73a0.png)

次に、「プロトコル」を選択し、以下にチェックを入れます。

- シェル起動なしでPFログを表示
- エージェント転送を有効にする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179607/3a9179b5-d31d-ec6b-c338-60c34481de18.png)

上の画面で、「ポートフォワーディング」を選択し、以下のように入力します。

- Listened Host: localhost
- Port: 15432(ローカルポート:任意)
- Connect Host: 接続先のAuroraサーバ
- Port: 5432

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179607/2fcd5616-c468-f212-a1b0-1a25542e2541.png)

接続先の設定が終われば、踏み台サーバへ接続して待機します。


# A5M2からAurora PostgreSQLへ接続

A5M2では以下のように接続先を設定します。サーバー名がポートフォワード元の「localhost」になることに注意。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179607/d09c501d-b7b1-d996-8156-f58adb6a8fa9.png)

設定してから気づいたのですが、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から以下のように確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179607/6a89e17f-9ba0-bf81-0859-a3bba267b506.png)


# パラメータ変更

オンプレミスの場合はpostgresql.confを直接編集してパラメータを変更するのですが、Auroraではパラメータグループというものを用いて変更します。

パラメータグループで「パラメータグループ作成」を選択し「DB クラスターのパラメータグループ」を作成します。以下では、「aurora-postgres10-cluster-custom」のパラメータグループの作成が終わっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179607/a4282769-2784-a027-5fb7-d37c275e699d.png)

データベースの変更で、「DBクラスターのパラメータグループ」で作成したパラメータグループを設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179607/bc52ba12-4133-c067-101c-f9ffa29dfb04.png)

パラメータを変更した後に、psqlコマンドでパラメータを確認すると以下のように確認できます。

postgres=> show auto_explain.log_min_duration;
auto_explain.log_min_duration

0
(1 row)



5
3
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
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?