Amazon Aurora DB クラスターへの接続 - Amazon Aurora

Amazon Aurora DB クラスターへの接続

Aurora DBクラスターには、MySQL または PostgreSQL データベースへの接続に使用するものと同じツールを使用して接続することができます。MySQL または PostgreSQL DB インスタンスに接続するスクリプト、ユーティリティ、またはアプリケーションで接続文字列を指定します。Secure Sockets Layer (SSL) 接続の場合と同じパブリックキーを使用します。

接続文字列では、通常、DB クラスターに関連付けられた特別なエンドポイントからのホストとポートの情報を使用します。このようなエンドポイントでは、クラスター内の DB インスタンスの数に関係なく、同じ接続パラメータを使用できます。トラブルシューティングなどの特殊なタスクの場合、Aurora DB クラスター内の特定の DB インスタンスの、ホストとポート情報を使用できます。

注記

Aurora Serverless DB クラスターの場合、DB インスタンスにではなく、データベースエンドポイントに接続します。Aurora Serverless DB クラスターのデータベースエンドポイントは、AWS Management Console の [接続とセキュリティ] タブにあります。詳細については、「Amazon Aurora Serverless v1 の使用」を参照してください。

エンドポイントには、DB クラスターまたはインスタンスの操作に使用している Aurora DB エンジンや特定のツールに関係なく、アクセスできる必要があります。Amazon Aurora DB クラスターは、Amazon VPC サービスに基づいて Virtual Private Cloud (VPC) のみで作成できます。つまり、エンドポイントには、VPC の内部または VPC の外部のいずれかから次のいずれかの方法を使用してアクセスします。

  • VPC 内の Amazon Aurora DB クラスターにアクセスする-VPC 経由で Amazon Aurora DB クラスターへのアクセスを有効にします。そのためには、セキュリティグループ上の VPC のためのインバウンドルールを編集し、特定の Aurora DB クラスターへのアクセスを許可します。さまざまな Aurora DB クラスターのシナリオで VPC を設定する方法など、詳細については「Amazon Virtual Private Cloud (VPC) と Amazon Aurora」を参照してください。

  • VPC 外部にある Amazon Aurora DB クラスターへのアクセス- VPC 外部から Amazon Aurora DB クラスターにアクセスするには、Amazon Aurora DB クラスターのパブリックエンドポイントアドレスを使用します。

詳細については、「Aurora 接続障害のトラブルシューティング」を参照してください。

Amazon Aurora MySQL DB クラスターへの接続

Aurora MySQL DB クラスターを認証するには、MySQL のユーザー名とパスワード認証、または AWS Identity and Access Management (IAM) データベース認証を使用できます。MySQL のユーザー名およびパスワード認証を使用する方法については、MySQL ドキュメントの「Access control and account management」を参照してください。IAM データベース認証を使用する方法については、「 の IAM データベース認証」を参照してください。

MySQL 8.0 と互換性のある Amazon Aurora DB クラスターに接続すると、MySQL バージョン 8.0 と互換性のある SQL コマンドを実行できます。最小互換バージョンは MySQL 8.0.23 です。MySQL 8.0 の SQL 構文の詳細については、MySQL 8.0 リファレンスマニュアルを参照してください。Aurora MySQL バージョン 3 に適用される制限事項については、「Aurora MySQL バージョン 3 と MySQL 8.0 コミュニティエディションの比較」を参照してください。

MySQL 5.7 と互換性のある Amazon Aurora DB クラスターに接続すると、MySQL バージョン 5.7 と互換性のある SQL コマンドを実行できます。MySQL 5.7 の SQL 構文の詳細については、MySQL 5.7 リファレンスマニュアルを参照してください。Aurora MySQL 5.7 に適用される制限事項については、「MySQL 5.7 互換 Aurora MySQL バージョン 2」を参照してください。

注記

Amazon Aurora MySQL DB クラスターへの接続に役立つ詳しいガイドについては、「Aurora 接続管理」ハンドブックを参照してください。

DB クラスターの詳細ビューで、MySQL 接続文字列で使用できるクラスターエンドポイントを確認できます。エンドポイントは DB クラスターのドメイン名とポートで構成されます。例えば、エンドポイントの値が mycluster.cluster-123456789012.us-east-1.rds.amazonaws.com:3306 の場合、MySQL 接続文字列には次の値を指定します。

  • ホストまたはホスト名には mycluster.cluster-123456789012.us-east-1.rds.amazonaws.com を指定します

  • ポートには、3306 を指定するか、DB クラスターの作成時に使用したポート値を指定します。

クラスターエンドポイントは DB クラスターのプライマリインスタンスに接続します。このクラスターエンドポイントを使用して、読み取りと書き込みの両方のオペレーションを実行できます。DB クラスターは、DB クラスターのデータへの読み取り専用アクセスをサポートする、最大 15 個の Aurora レプリカを使用できます。プライマリインスタンスと各 Aurora レプリカには、クラスターエンドポイントとは無関係の一意なエンドポイントがあり、そのエンドポイントにより、クラスター内の特定の DB インスタンスに直接接続できます。クラスターエンドポイントは常にプライマリインスタンスをポイントします。プライマリインスタンスが失敗し、置き換えられると、クラスターエンドポイントは新しいプライマリインスタンスをポイントします。

クラスターエンドポイント (ライターエンドポイント) を確認するには、Amazon RDS コンソールで [データベース] を選択し、DB クラスターの名前を選択して DB クラスターの詳細を表示します。


                Amazon Aurora エンドポイント。

Aurora MySQL の接続ユーティリティ

使用できる接続ユーティリティは次のとおりです。

  • コマンドライン - MySQL コマンドラインユーティリティなどのツールを使用して、Amazon Aurora DB クラスターに接続できます。MySQL ユーティリティを使用する方法の詳細については、MySQL ドキュメントの「mysql — the MySQL command-line client」(mysql - MySQL コマンドラインクライアント) を参照してください。

  • GUI - UI インターフェイスを使用することで、MySQL Workbench ユーティリティを使用して接続できます。詳細については、「MySQL Workbench のダウンロード」ページを参照してください。

  • アプリケーション – Amazon Web Services (AWS) JDBC ドライバーを使用して Aurora MySQL DB クラスターにクライアントアプリケーションを接続できます。詳細については、「Amazon Web Services (AWS) JDBC ドライバーとの接続」を参照してください。

MySQL ユーティリティを使用した Aurora MySQL との接続

次の手順に従ってください。VPC のプライベートサブネットに DB クラスターを設定していることを前提としています。チュートリアル: ウェブサーバーと Amazon Aurora DB クラスターを作成する のチュートリアルに従って設定した Amazon EC2 インスタンスを使用して接続します。

注記

この手順では、チュートリアルで Web サーバーをインストールする必要はありませんが、MariaDB 10.5 のインストールは必要です。

MySQL ユーティリティを使用して DB クラスターに接続するには
  1. DB クラスターへの接続に使用する EC2 インスタンスにログインします。

    次のような出力が表示されます。

    Last login: Thu Jun 23 13:32:52 2022 from xxx.xxx.xxx.xxx __| __|_ ) _| ( / Amazon Linux 2 AMI ___|\___|___| https://aws.amazon.com/amazon-linux-2/ [ec2-user@ip-10-0-xxx.xxx ~]$
  2. DB クラスターのプライマリインスタンスに接続するには、コマンドプロンプトで次のコマンドを入力します。

    -h パラメータは、エンドポイント DNS 名をプライマリインスタンスの代わりに使用します。-u パラメータは、データベースユーザーアカウントのユーザー ID を置き換えます。

    mysql -h primary-instance-endpoint.AWS_account.AWS_Region.rds.amazonaws.com -P 3306 -u database_user -p

    例:

    mysql -h my-aurora-cluster-instance.c1xy5example.123456789012.eu-central-1.rds.amazonaws.com -P 3306 -u admin -p
  3. データベースユーザーのパスワードを入力します。

    次のような出力が表示されます。

    Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 1770 Server version: 8.0.23 Source distribution 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)]>
  4. SQL コマンドを入力します。

Amazon Web Services (AWS) JDBC ドライバーとの接続

Amazon Web Services (AWS) JDBC ドライバーは、高度な JDBC ラッパーとして再設計されました。このラッパーは、既存の JDBC ドライバーを補完および拡張して、アプリケーションが Aurora MySQL などのクラスター化されたデータベースの機能を利用できるようにします。ドライバーは、MySQL Connector/J ドライバーとドロップインの互換性があります。コネクタをインストールまたはアップグレードするには、MySQL コネクタの .jar ファイル (アプリケーション CLASSPATH にある) を AWS JDBC ドライバーの .jar ファイルに置き換え、接続 URL のプレフィックスを jdbc:mysql:// から jdbc:aws-wrapper:mysql:// に更新します。

AWS JDBC ドライバーは、Aurora MySQL のフェイルオーバー機能を最大限に活用します。フェイルオーバーが発生した場合、ドライバーは DNS 解決を使用する代わりに、クラスターに新しいトポロジーを直接クエリします。クラスターに直接クエリを実行することで、ドライバーは信頼性が高く予測可能な方法で新しいプライマリにすばやく接続できます。このアプローチは、DNS 解決による潜在的な遅延を回避するのに役立ちます。

AWS JDBC ドライバーおよびその使用方法の詳細については、「Amazon Web Services (AWS) JDBC ドライバー GitHub リポジトリ」を参照してください。

AWS JDBC ドライバーは IAM データベース認証をサポートしています。詳細については、AWS JDBC ドライバー GitHub リポジトリの「AWS IAM 認証プラグイン」を参照してください。IAM データベース認証の詳細については、「 の IAM データベース認証」を参照してください。

注記

MariaDB Connector/J ユーティリティのバージョン 3.0.3 では Aurora DB クラスターがサポートされなくなるため、AWS JDBC ドライバーに移行することを強くお勧めします。AWS JDBC ドライバーは、Aurora MySQL DB クラスターのフェイルオーバー速度を向上させています。

AWS DBC ドライバー for MySQL は、2024 年 7 月 25 日にサポートが終了します。この日より前に新しい AWS JDBC ドライバーの使用を開始することをお勧めします。詳細については、「MySQL GitHub リポジトリ用 Amazon Web Services JDBC ドライバー」の「リリーススケジュールとメンテナンスポリシー」を参照してください。

Aurora MySQL の SSL での接続

Aurora MySQL DB インスタンスへの接続には、SSL 暗号化を使用できます。詳細については、Aurora MySQL DB クラスターでの TLS の使用 を参照してください。

SSL を使用して接続するには、MySQL ユーティリティを次の手順に従って使用します。IAM データベース認証を使用している場合は、SSL 接続を使用する必要があります。詳細については、「 の IAM データベース認証」を参照してください。

注記

SSL を使用してクラスターエンドポイントに接続するには、クライアント接続ユーティリティでサブジェクト代替名 (SAN) がサポートされている必要があります。クライアント接続ユーティリティで SAN がサポートされていない場合、Aurora DB クラスター内のインスタンスに直接接続することができます。Aurora エンドポイントの詳細については、「Amazon Aurora 接続管理」を参照してください。

MySQL ユーティリティを使用して SSL で DB クラスターに接続するには

  1. Amazon RDS 署名証明書のパブリックキーをダウンロードします。

    証明書のダウンロードについては、SSL/TLS を使用した DB クラスターへの接続の暗号化 を参照してください。

  2. MySQL ユーティリティを使用して SSL で DB クラスターのプライマリインスタンスに接続するには、コマンドプロンプトで次のコマンドを入力します。-h パラメータは、エンドポイント DNS 名をプライマリインスタンスの代わりに使用します。-u パラメータは、データベースユーザーアカウントのユーザー ID を置き換えます。--ssl-ca パラメータは、必要に応じて SSL 証明書のファイル名に置き換えます。プロンプトが表示されたら、マスターユーザーパスワードを入力します。

    mysql -h mycluster-primary.123456789012.us-east-1.rds.amazonaws.com -u admin_user -p --ssl-ca=[full path]global-bundle.pem --ssl-verify-server-cert

次のような出力が表示されます。

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 350 Server version: 8.0.26-log MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>

RDS for MySQL 接続文字列の作成と SSL 接続用のパブリックキーの検索に関する一般的な手順については、「MySQL データベースエンジンを実行している DB インスタンスに接続する」を参照してください。

Amazon Aurora PostgreSQL DB クラスターへの接続

Amazon Aurora PostgreSQL DB クラスターの DB インスタンスに接続するには、PostgreSQL データベースに接続する場合と同じツールを使用できます。このプロセスの一部として、Secure Sockets Layer (SSL) 接続の場合と同じ発行鍵を使用します。Aurora PostgreSQL DB クラスターのプライマリインスタンスや Aurora レプリカのエンドポイントとポート情報を、PostgreSQL の DB インスタンスに接続するすべてのスクリプト、ユーティリティ、アプリケーションの接続文字列で使用できます。接続文字列では、プライマリインスタンスまたは Aurora レプリカのエンドポイントの DNS アドレスをホストパラメータとして指定します。エンドポイントのポート番号をポートパラメータとして指定します。

Amazon Aurora PostgreSQL DB クラスターの DB インスタンスに接続すると、PostgreSQL と互換性のある任意の SQL コマンドを実行できます。

Aurora PostgreSQL DB クラスターの詳細表示で、クラスターエンドポイントの名称、ステータス、タイプ、ポート番号を確認できます。このエンドポイントとポート番号は、PostgreSQL 接続文字列で使用します。例えば、エンドポイントの値が mycluster.cluster-123456789012.us-east-1.rds.amazonaws.com の場合、PostgreSQL 接続文字列には次の値を指定します。

  • ホストまたはホスト名には mycluster.cluster-123456789012.us-east-1.rds.amazonaws.com を指定します

  • ポートには、5432 を指定するか、DB クラスターの作成時に使用したポート値を指定します。

クラスターエンドポイントは DB クラスターのプライマリインスタンスに接続します。このクラスターエンドポイントを使用して、読み取りと書き込みの両方のオペレーションを実行できます。DB クラスターは、DB クラスターのデータへの読み取り専用アクセスをサポートする、最大 15 個の Aurora レプリカを使用できます。Aurora クラスターの各 DB インスタンス (プライマリインスタンスと各 Aurora のレプリカ) には、それぞれ、クラスターエンドポイントとは別に一意のエンドポイントが含まれます。一意のエンドポイントを使用することで、クラスターの特定の DB インスタンスに直接接続できるようになります。クラスターエンドポイントは常にプライマリインスタンスをポイントします。プライマリインスタンスが失敗し、置き換えられると、クラスターエンドポイントは新しいプライマリインスタンスをポイントします。

クラスターエンドポイント (ライターエンドポイント) を確認するには、Amazon RDS コンソールで [データベース] を選択し、DB クラスターの名前を選択して DB クラスターの詳細を表示します。


                Amazon Aurora の詳細

Aurora PostgreSQL の接続ユーティリティ

使用できる接続ユーティリティは次のとおりです。

  • コマンドライン - PostgreSQL インタラクティブターミナルである psql などのツールを使用して、Aurora PostgreSQL DB クラスターに接続できます。PostgreSQL インタラクティブターミナルの詳しい使用方法については、PostgreSQL ドキュメントの「psql」を参照してください。

  • GUI - UI インターフェイスで pgAdmin ユーティリティを使用して、Aurora PostgreSQL DB クラスターに接続できます。詳細については、pgAdmin ウェブサイトのダウンロードページを参照してください。

  • アプリケーション - アプリケーションに接続するための PostgreSQL 用AWS JDBC ドライバーを使用して Aurora PostgreSQL DB クラスターに接続できます。詳細については、「PostgreSQL 用 AWS JDBC ドライバー との接続」を参照してください。

PostgreSQL 用 AWS JDBC ドライバー との接続

PostgreSQL 用AWS JDBC ドライバーは、Aurora PostgreSQL の高可用性機能を最大限に活用します。PostgreSQL 用 AWS JDBC ドライバーおよびその使用方法の詳細については、PostgreSQL 用 AWS JDBC ドライバー GitHub リポジトリを参照してください。

PostgreSQL 用AWS JDBC ドライバーは、コミュニティ pgjDBC ドライバーを拡張します。Aurora PostgreSQL のクラスター対応フェイルオーバー機能を最大限に活用します。フェイルオーバーが発生した場合、PostgreSQL 用 AWS JDBC ドライバーは DNS 解決を使用する代わりに、クラスターに新しいトポロジーを直接クエリします。クラスターに直接クエリを実行することで、PostgreSQL 用 AWS JDBC ドライバーは信頼性が高く予測可能な方法で新しいプライマリにすばやく接続でき、DNS 解決による潜在的な遅延を回避できます。

MySQL 用の AWS JDBC ドライバーは AWS Identity and Access Management (IAM) データベース認証と AWS Secrets Manager をサポートしています。ドライバーでこれらの認証メカニズムを使用する方法の詳細については、AWS JDBC Driver for PostgreSQL GitHub リポジトリの「AWSIAM AWS Secrets Manager認証プラグインとプラグイン」を参照してください。

IAM データベース認証の詳細については、「 の IAM データベース認証」を参照してください。Secrets Manager の詳細については、AWS Secrets Manager ユーザーガイドを参照してください。

Aurora 接続障害のトラブルシューティング

新しい Aurora DB クラスターに対する接続障害の一般的な原因を次に示します。

  • VPC のセキュリティグループがアクセスを許可していない場合、VPC では、VPC のセキュリティグループを適切に設定して、デバイスまたは Amazon EC2 インスタンスからの接続を許可する必要があります。障害を解決するには、VPC のセキュリティグループの、インバウンドルールを変更して接続を許可します。例については、「チュートリアル: DB クラスターで使用する VPC を作成する (IPv4 専用)」を参照してください。

  • ファイアウォールルールによってブロックされたポート - Aurora DB クラスター用に設定されたポートの値を確認します。ファイアウォールルールがそのポートをブロックしている場合は、別のポートを使用してインスタンスを再作成できます。

  • 不完全なまたは誤ったIAM設定 - Aurora DB インスタンスを IAM-ベースの認証を使用するように作成している場合は、正しく設定されていることを確認します。詳細については、「 の IAM データベース認証」を参照してください。

Aurora DB 接続問題のトラブルシューティングの詳細については、「Amazon RDS DB インスタンスに接続できない」を参照してください。