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

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

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

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

AWS ドライバーを使用した Aurora DB クラスターへの接続

AWS のドライバースイートは、スイッチオーバーとフェイルオーバーの時間の短縮、AWS Secrets Manager、AWS Identity and Access Management (IAM)、フェデレーティッド ID での認証をサポートするように設計されています。AWS ドライバーは、DB クラスターステータスをモニタリングし、クラスタートポロジを認識して新しいライターを決定することを前提としています。このアプローチにより、スイッチオーバーとフェイルオーバーの時間が 1 桁秒に短縮されます (オープンソースドライバーの場合は数十秒)。

次の表に、各ドライバーでサポートされている機能を示します。新しいサービス機能が導入されるにあたって、こうしたサービス機能を標準でサポートすることが AWS のドライバースイートの目標です。

機能 AWS JDBC ドライバー AWS Python ドライバー
フェイルオーバーのサポート はい はい
フェイルオーバーモニタリングの強化 はい はい
読み取り/書き込みの分割 はい はい
Aurora 接続トラッカー はい はい
ドライバーメタデータ接続 はい 該当なし
Telemetry はい はい
Secrets Manager はい はい
IAM 認証 はい はい
フェデレーティッド ID (AD FS) はい はい
フェデレーティッド ID (Okta) はい いいえ

AWS ドライバーの詳細については、お使いの Aurora MySQL または Aurora PostgreSQL DB クラスターに対応する言語ドライバーを参照してください。

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 ユーティリティを使用した 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 ドライバーを使用した Aurora MySQL への接続

Amazon Web Services (AWS) JDBC ドライバーは、高度な JDBC ラッパーとして設計されています。このラッパーは、既存の JDBC ドライバーの機能を補完および拡張して、アプリケーションが Aurora MySQL などのクラスター化されたデータベースの機能を利用できるようにします。ドライバーには、コミュニティ MySQL Connector/J ドライバーおよびコミュニティ MariaDB Connector/J ドライバーとドロップイン互換性があります。

AWS JDBC ドライバーをインストールするには、AWS JDBC ドライバーの.jar ファイル (CLASSPATH アプリケーション内) を追加して、それぞれのコミュニティドライバーへの参照を保持します。対応する接続 URL プレフィックスを次のように更新します。

  • jdbc:mysql://jdbc:aws-wrapper:mysql://

  • jdbc:mariadb://jdbc:aws-wrapper:mariadb://

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

注記

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

Amazon Web Services (AWS) Python ドライバーを使用した Aurora MySQL への接続

Amazon Web Services (AWS) Python ドライバーは、高度な Python ラッパーとして設計されています。このラッパーは、オープンソースの Psycopg ドライバーの機能を補完し、拡張します。AWS Python ドライバーは Python バージョン 3.8 以降をサポートしています。aws-advanced-python-wrapper パッケージは、pip コマンドと psycopg オープンソースパッケージを使用してインストールできます。

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

SSL を使用した Aurora MySQL への接続

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 の接続ユーティリティ

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

Amazon Web Services (AWS) JDBC ドライバーを使用した Aurora PostgreSQL への接続

Amazon Web Services (AWS) JDBC ドライバーは、高度な JDBC ラッパーとして設計されています。このラッパーは、既存の JDBC ドライバーの機能を補完および拡張して、アプリケーションが Aurora PostgreSQL などのクラスター化されたデータベースの機能を利用できるようにします。ドライバーには、コミュニティ pgJDBC ドライバーとドロップイン互換性があります。

AWS JDBC ドライバーをインストールするには、AWS JDBC ドライバーの.jar ファイル (CLASSPATH アプリケーション内) を追加して、pgJDBC コミュニティドライバーへの参照を保持します。接続 URL プレフィックスを jdbc:postgresql:// から jdbc:aws-wrapper:postgresql:// に更新します。

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

Amazon Web Services (AWS) Python ドライバーを使用した Aurora PostgreSQL への接続

Amazon Web Services (AWS) Python ドライバーは、高度な Python ラッパーとして設計されています。このラッパーは、オープンソースの Psycopg ドライバーの機能を補完し、拡張します。AWS Python ドライバーは Python バージョン 3.8 以降をサポートしています。aws-advanced-python-wrapper パッケージは、pip コマンドと psycopg オープンソースパッケージを使用してインストールできます。

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

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

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

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

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

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

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