Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

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

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

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

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

image.png

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

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

image.png

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

A5M2からAurora PostgreSQLへ接続

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

image.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

パラメータ変更

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

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

image.png

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

image.png

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

postgres=> show auto_explain.log_min_duration;
 auto_explain.log_min_duration 
-------------------------------
 0
(1 row)
mkyz08
SIer&バックエンドエンジニア&日曜プログラマー。 Apache Camel/VoltDB/Oracle/Apache karaf。 基本的に仕事外での自分用のメモ(興味があること)として記事を書いています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away