Amazon Auroraについて〜EC2からデータベースへ接続する〜

こんにちは。今回は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側のセキュリティグループ設定はデフォルトのままになります。

              この状態から、以下の手順で進めていきます。

              1. EC2インスタンスの作成
              2. EC2インスタンスへのMySQLクライアントのインストール
              3. 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クラスターエンドポイントは、データベース管理画面の以下に記載されている名前を記載します。

              Screenshot

              まとめ

              今回は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

              コメント

              タイトルとURLをコピーしました