Amazon RDS Proxy を使用して Amazon RDS for MySQL DB インスタンスまたは Aurora MySQL 互換 DB クラスターに接続する方法を教えてください。

所要時間2分
0

Amazon Relational Database Service (Amazon RDS) プロキシを使用して Amazon RDS for MySQL DB インスタンスまたは Amazon Aurora MySQL 互換エディション DB クラスターに接続したいです。

解決策

前提条件: プロキシは、データベースと同じ仮想プライベートクラウド (VPC) に配置する必要があります。データベースをパブリックにアクセス可能にすることはできますが、プロキシはパブリックにアクセス可能にはできません。

プロキシを作成して DB インスタンスに接続する

次の手順を実行します。

  1. AWS Secrets Manager でデータベース認証情報を作成します
    注意: シークレットを作成するときは、データベースと同じユーザー名とパスワードを使用します。

  2. (オプション) AWS Identity and Access Management (IAM) ポリシーと IAM ロールを作成します。
    注: Amazon RDS Proxy により、IAM ロールが自動的に作成されます。ただし、独自の IAM ロールを作成することもできます。

  3. プロキシを作成します

  4. 次のコマンドを実行し、プロキシエンドポイントに到達可能であることを確認します。

    nc -zv proxy_endpoint 3306

    注: proxy_endpoint は、実際のプロキシサーバーのアドレスに置き換えます。上記のコマンドは、プロキシと同じ VPC にある Amazon Elastic Compute Cloud (Amazon EC2) マシンでのみ実行してください。このコマンドは、ローカルマシンでは実行されません。
    出力例:

    Connection to test-proxy.proxy-#############.eu-west-1.rds.amazonaws.com 3306 port [tcp/mysql] succeeded
  5. 次のコマンドを実行し、プロキシを使用して RDS DB インスタンスに接続します。

    mysql -h proxy_endpoint -u username -p

    注: proxy_endpoint は、実際のプロキシサーバーのアドレスに置き換えます。
    出力例:

    Server version: 5.7.28-log
    
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql>

(オプション) TLS/SSL 接続でプロキシを使用する

次の手順を実行します。

  1. プロキシを作成するときに、[Transport Layer Security が必要] にチェックを入れます。または、既存のプロキシを変更します。
    注: TLS/SSL プロトコルを使用する場合、プロキシはプレーンテキスト接続を拒否します。

  2. Amazon Trust Services から Amazon Root CA 1 トラストストアの .pem ファイルをダウンロードします:

    wget https://www.amazontrust.com/repository/AmazonRootCA1.pem
  3. 次のコマンドを実行し、TLS/SSL を使用して DB インスタンスに接続します。

    mysql -h test-proxy.proxy-#############.eu-west-1.rds.amazonaws.com -u admin --ssl-mode=REQUIRED --ssl-ca=AmazonRootCA1.pem -p

    または、TLS/SSL の VERIFY_IDENTITY モードで次のコマンドを実行しても DB インスタンスに接続できます。

    mysql -h test-proxy.proxy-#############.eu-west-1.rds.amazonaws.com -u admin --ssl-mode=VERIFY_IDENTITY --ssl-ca=AmazonRootCA1.pem -p

    注: プロキシはワイルドカード証明書を使用します。MySQL クライアントを使用して SSL/TLS の VERIFY_IDENTITY モードで接続する場合、MySQL 8.0 と互換性のある mysql コマンドを実行する必要があります。
    出力例:

    Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 12659040
    Server version: 5.7.28-log
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

関連情報

RDS プロキシのトラブルシューティング

Amazon RDS Proxy