Amazon RDS Proxy を使用して MySQL DB インスタンス用の Amazon Relational Database Service (Amazon RDS) に接続したいと考えています。あるいは、Amazon RDS Proxyを使用して Amazon Aurora MySQL 互換エディション DB クラスターに接続したいと考えています。
解決策
開始前に、Amazon RDS Proxy はデータベースと同じ仮想プライベートクラウド (VPC) にある必要があります。データベースをパブリックにアクセス可能にできますが、プロキシはパブリックにアクセス可能にはできません。
1. AWS Secrets Manager にデータベース認証情報を作成します。
**注意:**シークレットを作成するときは、データベースと同じユーザー名とパスワードを使用します。
2. (オプション) AWS ID 、アクセス管理 (IAM) ポリシー、および IAM ロールを作成します。
**注意:**Amazon RDS Proxy は、ステップ 3 で IAM ロールを自動的に作成します。ステップ 2 に従って、独自の IAM ロールを作成します。
3. Amazon RDS Proxy を作成します。
4. プロキシエンドポイントに到達可能であることを確認するには、以下のコマンドを実行します:
nc -zv <proxy_endpoint> 3306
出力例:
nc -z test-proxy.proxy-xxxxxxxxxxxxx.eu-west-1.rds.amazonaws.com 3306Connection to test-proxy.proxy-xxxxxxxxxxxxx.eu-west-1.rds.amazonaws.com 3306 port [tcp/mysql] succeeded!
注意: 前述のコマンドは、Amazon RDS Proxy と同じ VPC にある Amazon Elastic Compute Cloud (Amazon EC2) マシンでのみ実行してください。コマンドはローカルマシンでは実行されません。
5. Amazon RDS Proxy を使用して RDS DB インスタンスに接続するには、次のコマンドを実行します:
mysql -h <proxy_end_point> -u username -p
出力例:
mysql -h test-proxy.proxy-xxxxxxxxxxxxx.eu-west-1.rds.amazonaws.com -u admin -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2946664484
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>
あるいは、SSL/TLS 接続で Amazon RDS Proxy を使用して DB インスタンスに接続します:
1. (オプション) Amazon RDS Proxyを作成する場合、**[トランスポート層セキュリティを要求する]**を有効にします。既存の Amazon RDS Proxy を変更することもできます。
注意: パラメータを 要求済みに変更する場合、接続には SSL/TLS を使用する必要があります。Amazon RDS Proxy はプレーンテキスト接続を拒否します。パラメータを変更しない場合、Amazon RDS Proxy は SSL/TLS の有無にかかわらず DB インスタンスに接続できます。
2. Amazon Trust Services から Amazon Root CA 1 trust Store .pem ファイルをダウンロードします:
wget https://www.amazontrust.com/repository/AmazonRootCA1.pem
3. SSL を使用して DB インスタンスに接続します:
mysql -h test-proxy.proxy-xxxxxxxxxxxxx.eu-west-1.rds.amazonaws.com -u admin --ssl-mode=REQUIRED --ssl-ca=AmazonRootCA1.pem -p
あるいは、次のコマンドを実行し、SSL/TLS を使用して DB インスタンスに接続することもできます:
mysql -h test-proxy.proxy-xxxxxxxxxxxxx.eu-west-1.rds.amazonaws.com -u admin --ssl-mode=VERIFY_IDENTITY --ssl-ca=AmazonRootCA1.pem -p
注意: Amazon RDS Proxy はワイルドカード証明書を使用します。MySQL クライアントを使用して SSL/TLS VERIFY\ _IDENTITY モードで接続する場合、MySQL 8.0 と互換性のある mysql コマンドを使用する必要があります。
接続すると、DB インスタンスは次の出力を返します:
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.
関連情報
Amazon RDS Proxy のトラブルシューティング
Amazon RDS Proxy を使用する