こんにちは。今回はAmazon Auroraのデータベース接続方法を紹介します。
Amazon Auroraの概要、データベース作成方法について、以下をご参考ください。
データベースの接続方法
Amazon Auroraへのアクセス方法には主に以下のようなものがあります。
エンドポイントを使用した接続
クラスターエンドポイント: プライマリインスタンスに接続するために使用します。
リーダーエンドポイント: 読み取り専用のAuroraレプリカに接続するために使用します。
カスタムエンドポイント: 特定のインスタンスグループに接続するために使用できます。
接続ツール
コマンドラインクライアント: MySQLやpsqlなどのコマンドラインツールを使用できます。
GUIツール: MySQL WorkbenchやpgAdminなどのグラフィカルツールが利用可能です。
プログラミング言語からの接続
各種プログラミング言語のデータベースドライバーやORMを使用して接続できます。
AWS サービスを介した接続
AWS Lambda関数からAuroraに直接接続できます。
Amazon EC2インスタンスからVPC内で接続できます。
SSL/TLS暗号化
セキュアな接続のためにSSL/TLSを使用できます。
IAM認証
IAMデータベース認証を使用して、IAMユーザーやロールでデータベースにアクセスできます。
接続する際は、適切なセキュリティグループの設定やネットワーク構成が必要です。
また、Auroraクラスターが配置されているVPCの設定に応じて、適切なアクセス方法を選択する必要があります。
EC2からデータベースへ接続(実践)
環境
今回はEC2からデータベースへ接続してみます。
構成図としては、以下の通りです。
事前に以下の通りAmazon Auroraのデータベースを作成しています。
Amazon Aurora側のセキュリティグループ設定はデフォルトのままになります。
この状態から、以下の手順で進めていきます。
- EC2インスタンスの作成
- EC2インスタンスへのMySQLクライアントのインストール
- Amazon Auroraのセキュリティグループ設定
設定手順
最初にEC2インスタンスを作成します。
インスタンスの作成は以下の記事をご参考ください。
こちらに沿って、インスタンス作成を進めます。
1点ポイントとしては、EC2インスタンスのセキュリティグループにAmazon Auroraへのアウトバウンド通信が許可れていることを確認しておく必要があります。
セキュリティグループのOUTPUT通信はデフォルトで全許可となっていますので、今回は特に設定変更不要で先に進みます。
次に、EC2インスタンスに対して、MySQLクライアントのインストールを実施します。
作成したEC2インスタンスにSSHログインし、以下のコマンドを実行します。
dnf -y install mariadb105
実行結果は以下の通りです。
[root@ip-(プライベートIPアドレス) ~]# dnf -y install mariadb105
Last metadata expiration check: 0:04:03 ago on Sun Sep 29 04:17:07 2024.
Dependencies resolved.
==========================================================================================================================
Package Architecture Version Repository Size
==========================================================================================================================
Installing:
mariadb105 x86_64 3:10.5.25-1.amzn2023.0.1 amazonlinux 1.6 M
Installing dependencies:
mariadb-connector-c x86_64 3.1.13-1.amzn2023.0.3 amazonlinux 196 k
mariadb-connector-c-config noarch 3.1.13-1.amzn2023.0.3 amazonlinux 9.2 k
mariadb105-common x86_64 3:10.5.25-1.amzn2023.0.1 amazonlinux 29 k
perl-Sys-Hostname x86_64 1.23-477.amzn2023.0.6 amazonlinux 18 k
Transaction Summary
==========================================================================================================================
Install 5 Packages
Total download size: 1.8 M
Installed size: 19 M
Downloading Packages:
(1/5): mariadb-connector-c-config-3.1.13-1.amzn2023.0.3.noarch.rpm 160 kB/s | 9.2 kB 00:00
(2/5): mariadb-connector-c-3.1.13-1.amzn2023.0.3.x86_64.rpm 2.7 MB/s | 196 kB 00:00
(3/5): mariadb105-common-10.5.25-1.amzn2023.0.1.x86_64.rpm 1.1 MB/s | 29 kB 00:00
(4/5): perl-Sys-Hostname-1.23-477.amzn2023.0.6.x86_64.rpm 609 kB/s | 18 kB 00:00
(5/5): mariadb105-10.5.25-1.amzn2023.0.1.x86_64.rpm 13 MB/s | 1.6 MB 00:00
--------------------------------------------------------------------------------------------------------------------------
Total 11 MB/s | 1.8 MB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : mariadb-connector-c-config-3.1.13-1.amzn2023.0.3.noarch 1/5
Installing : mariadb-connector-c-3.1.13-1.amzn2023.0.3.x86_64 2/5
Installing : mariadb105-common-3:10.5.25-1.amzn2023.0.1.x86_64 3/5
Installing : perl-Sys-Hostname-1.23-477.amzn2023.0.6.x86_64 4/5
Installing : mariadb105-3:10.5.25-1.amzn2023.0.1.x86_64 5/5
Running scriptlet: mariadb105-3:10.5.25-1.amzn2023.0.1.x86_64 5/5
Verifying : mariadb-connector-c-3.1.13-1.amzn2023.0.3.x86_64 1/5
Verifying : mariadb-connector-c-config-3.1.13-1.amzn2023.0.3.noarch 2/5
Verifying : mariadb105-3:10.5.25-1.amzn2023.0.1.x86_64 3/5
Verifying : mariadb105-common-3:10.5.25-1.amzn2023.0.1.x86_64 4/5
Verifying : perl-Sys-Hostname-1.23-477.amzn2023.0.6.x86_64 5/5
Installed:
mariadb-connector-c-3.1.13-1.amzn2023.0.3.x86_64 mariadb-connector-c-config-3.1.13-1.amzn2023.0.3.noarch
mariadb105-3:10.5.25-1.amzn2023.0.1.x86_64 mariadb105-common-3:10.5.25-1.amzn2023.0.1.x86_64
perl-Sys-Hostname-1.23-477.amzn2023.0.6.x86_64
Complete!
[root@ip-(プライベートIPアドレス)~]#
こちらで、MySQLのクライアントのインストールが完了いたしました。
最後にAmazon AuroraのセキュリティグループでEC2からのINPUT通信を許可します。
Amazon Auroraの作成時に指定したセキュリティグループにアクセスします。
作成画面の以下の項目で設定したものになります。
セキュリティグループの設定方法は以下の記事もご参考ください。
実際に設定していきます。
セキュリティグループの管理画面からAmazon Auroraのセキュリティグループ:db-sgを選択し、「インバウンドルール」タブを選択します。
今はEC2の許可設定は入っていないので、追加していきます。
「インバウンドのルールを編集」ボタンをクリックします。
インバウンドルールの編集画面が表示されます。
ルールの追加をクリックして、新しいルールを追加していきます。
設定項目は以下の通りです。
設定が完了したら、画面右下の「ルールの保存」ボタンをクリックします。
設定項目 | 設定値 |
---|---|
タイプ | 「MYSQL/Aurora」を選択します。 |
プロトコル | タイプで「MYSQL/Aurora」を選択すると自動的に設定されます。 |
ポート番号 | タイプで「MYSQL/Aurora」を選択すると自動的に設定されます。 |
ソース | EC2インスタンスのセキュリティグループ:test01-dbを選択します。 表示されているのは、test01-dbのセキュリティグループIDになります。 |
以上で、設定は完了です。
実際に接続できるか確認してみましょう。
接続確認
接続には以下のコマンドを実行します。
mysql -h <Auroraクラスターエンドポイント> -P 3306 -u <ユーザー名> -p
実行結果は以下の通りです。
正常に接続できました。
[root@ip-(プライベートIPアドレス) ~]# mysql -h (Auroraクラスターエンドポイント) -P 3306 -u admin -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 191
Server version: 5.7.12 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
Auroraクラスターエンドポイントは、データベース管理画面の以下に記載されている名前を記載します。
まとめ
今回はAmazon Auroraのデータベース接続方法を紹介しました。
ご参考になれば、幸いです。
以上になります。ありがとうございました。
参考
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/ec2-rds-connect.html
https://blog.serverworks.co.jp/rds-security-group-and-availability
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Overview.RDSSecurityGroups.html
コメント