Amazon EC2(RHEL9)からAmazon Aurora for PostgreSQL16.4への接続手順

RHEL9のAMIで起動したAmazon EC2インスタンスからAmazon Aurora for PostgreSQLに接続するまでの手順を紹介します。

 

 

PostgreSQL16データベースに接続する手順

■前提

今回の手順の前提は以下の通りです。
 

  • EC2インスタンスが起動していること
    Red Hat Enterprise Linux version 9 (HVM), EBS General Purpose (SSD) Volume Type

  • RDSデータベースが起動していること
    Aurora PostgreSQL (Compatible with PostgreSQL 16.4)

  • 上記のEC2インスタンスとRDSデータベースが疎通可能であること

 

 

■PostgreSQLクライアントのインストール

Aurora PostgreSQLに接続するためのPostgreSQLクライアントをEC2インスタンスにインストールします。

 

以下のコマンドを実行します。

# PostgreSQLのバージョン16に関する情報の確認
sudo dnf module info postgresql:16
# PostgreSQLのバージョン16を有効化
sudo dnf module enable postgresql:16
# PostgreSQLモジュールが有効になっているか確認
sudo dnf module list postgresql
# PostgreSQLクライアントのインストール
sudo dnf install -y postgresql
# インストール確認
psql --version

 

【実行結果】

[ec2-user@ip-10-0-15-52 ~]$ sudo dnf module enable postgresql:16
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register.

Last metadata expiration check: 0:27:50 ago on Sun 03 Nov 2024 05:18:03 AM UTC.
Dependencies resolved.
===============================================================================================================================================================================================
 Package                                       Architecture                                 Version                                        Repository                                     Size 
===============================================================================================================================================================================================
Enabling module streams:
 postgresql                                                                                 16

Transaction Summary
===============================================================================================================================================================================================

Is this ok [y/N]: y
Complete!

[ec2-user@ip-10-0-15-52 ~]$ sudo dnf module list postgresql
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register.

Last metadata expiration check: 0:29:29 ago on Sun 03 Nov 2024 05:18:03 AM UTC.
Red Hat Enterprise Linux 9 for x86_64 - AppStream from RHUI (RPMs)
Name                                     Stream                               Profiles                                         Summary
postgresql                               15                                   client, server [d]                               PostgreSQL server and client module
postgresql                               16 [e]                               client, server [d]                               PostgreSQL server and client module

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

[ec2-user@ip-10-0-15-52 ~]$ sudo dnf install -y postgresql
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register.

Last metadata expiration check: 0:31:07 ago on Sun 03 Nov 2024 05:18:03 AM UTC.
Dependencies resolved.
===============================================================================================================================================================================================
 Package                                       Architecture                 Version                                                     Repository                                        Size 
===============================================================================================================================================================================================
Installing:
 postgresql                                    x86_64                       16.4-1.module+el9.4.0+22207+8466e31f                        rhel-9-appstream-rhui-rpms                       1.9 M 
Installing dependencies:
 postgresql-private-libs                       x86_64                       16.4-1.module+el9.4.0+22207+8466e31f                        rhel-9-appstream-rhui-rpms                       145 k 

Transaction Summary
===============================================================================================================================================================================================
Install  2 Packages

Total download size: 2.0 M
Installed size: 8.0 M
Downloading Packages:
(1/2): postgresql-private-libs-16.4-1.module+el9.4.0+22207+8466e31f.x86_64.rpm                                                                                 3.1 MB/s | 145 kB     00:00     
(2/2): postgresql-16.4-1.module+el9.4.0+22207+8466e31f.x86_64.rpm                                                                                               23 MB/s | 1.9 MB     00:00     
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                           19 MB/s | 2.0 MB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                       1/1 
  Installing       : postgresql-private-libs-16.4-1.module+el9.4.0+22207+8466e31f.x86_64                                                                                                   1/2 
  Installing       : postgresql-16.4-1.module+el9.4.0+22207+8466e31f.x86_64                                                                                                                2/2 
  Running scriptlet: postgresql-16.4-1.module+el9.4.0+22207+8466e31f.x86_64                                                                                                                2/2 
  Verifying        : postgresql-16.4-1.module+el9.4.0+22207+8466e31f.x86_64                                                                                                                1/2 
  Verifying        : postgresql-private-libs-16.4-1.module+el9.4.0+22207+8466e31f.x86_64                                                                                                   2/2 
Installed products updated.

Installed:
  postgresql-16.4-1.module+el9.4.0+22207+8466e31f.x86_64                                  postgresql-private-libs-16.4-1.module+el9.4.0+22207+8466e31f.x86_64

Complete!
[ec2-user@ip-10-0-15-52 ~]$ psql --version
psql (PostgreSQL) 16.4

 

 

■Aurora PostgreSQLへの接続準備

接続に必要な情報(ユーザー名、ホスト、ポート)を設定します。

 

接続の簡便化を図るために、環境変数を設定しましょう。パスワードに関しては、セキュリティの観点から環境変数に設定せずに、手動で打ち込むこととします。

 

AWSを利用しているので、パスワード管理にAWS Secrets Managerを利用するのも方法の一つですね。AWS Secrets Managerを利用した接続方法はこちら※準備中

 

以下の"<>"部分を自身の環境に合わせて修正し、コマンドを実行します。

USERNAME=<ログインするデータベースユーザー名 例:postgres>
HOST=<エンドポイント名 例:xxxxxxx.cluster-xxxxxxx.ap-southeast-1.rds.amazonaws.com>
PORT=5432

 

 

■接続テスト

psqlコマンドを使ってAurora PostgreSQLに接続し、接続が成功するかを確認します。

 

以下のコマンドを実行します。

psql -h $HOST -p $PORT -U $USERNAME

 

【実行結果】※ログインパスワードが聞かれます。

[ec2-user@ip-10-0-15-52 ~]$ psql -h $HOST -p $PORT -U $USERNAME
psql (16.4)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.

postgres=>

 

接続できたので、データベースエンジンのバージョンを確認してみます。
SELECT version();

 

【実行結果】

postgres=> SELECT version();
                                             version
-------------------------------------------------------------------------------------------------
 PostgreSQL 16.4 on x86_64-pc-linux-gnu, compiled by x86_64-pc-linux-gnu-gcc (GCC) 9.5.0, 64-bit
(1 row)

 

接続手順の紹介は以上です。

 

 

まとめ

今回は、EC2(RHEL9)からAmazon Aurora for PostgreSQL 16に接続するための手順を紹介しました。

 

設定手順は一見シンプルですが、OSのバージョンやAuroraの設定によって、接続がうまくいかないケースも発生する可能性があります。

 

たとえば、PostgreSQLのクライアントバージョンの違いや、必要なネットワーク設定、AWS IAMによる権限などが原因となることがあります。

 

また、セキュリティグループやVPCの設定が不適切な場合、接続できない場合もあるため注意が必要です。

 

参考リンク:AWS公式ドキュメント

 

 

↓ほかの協栄情報メンバーもAmazon RDSについての記事を公開しています。ぜひ参考にしてみてください。

 
IAMデータベース認証を利用し、Aurora PostgreSQLに接続する手順(齊藤弘樹)

 
EC2インスタンス(RHEL)からSecrets Managerを利用してAurora for PostgreSQL 16に接続する手順(齊藤弘樹)

 
Amazon EC2(RHEL9)からAmazon Aurora for PostgreSQL16.4への接続手順(齊藤弘樹)

 
“Amazon RDS for SQL Server”のクロスリージョンリードレプリカを作成・昇格してみた(齊藤弘樹)

 
RDSのMySQL5.7標準サポート終了に伴う8.0へのアップグレードについて(ito.d)

 
AWS RDS for Oracleメモリー不足際の解決案(dapeng)

 

 

Last modified: 2024-11-23

Author