AWS PrivateLink を使用した Amazon Aurora DSQL クラスターの管理と接続
Amazon Aurora DSQL 用の AWS PrivateLink を使用すると、Amazon Virtual Private Cloud でインターフェイス Amazon VPC エンドポイント (インターフェイスエンドポイント) をプロビジョニングできます。これらのエンドポイントには、オンプレミスにあるアプリケーションから、Amazon VPC および AWS Direct Connect 経由で、または別の AWS リージョンにあるアプリケーションから Amazon VPC ピアリング経由で直接アクセスできます。AWS PrivateLink とインターフェイスエンドポイントを使用することで、アプリケーションから、Aurora DSQL へのプライベートネットワーク接続を簡素化できます。
Amazon VPC 内のアプリケーションは、パブリック IP アドレスを必要とせずに、Amazon VPC インターフェイスエンドポイントを使用して Aurora DSQL にアクセスできます。
インターフェイスエンドポイントは、Amazon VPC 内のサブネットからプライベート IP アドレスが割り当てられた 1 つ以上の Elastic Network Interface (ENI) で表されます。インターフェイスエンドポイントを介した Aurora DSQL へのリクエストは、AWS ネットワークに残ります。Amazon VPC をオンプレミスネットワークに接続する方法の詳細については、「AWS Direct Connect ユーザーガイド」および「AWS Site-to-Site VPN VPN ユーザーガイド」を参照してください。
インターフェイスエンドポイントに関する一般的な情報については、「AWS PrivateLink ユーザーガイド」の「Access an AWS service using an interface Amazon VPC endpoint」を参照してください。
Aurora DSQL で使用される Amazon VPC エンドポイントのタイプ
Aurora DSQL には 2 つの異なるタイプの AWS PrivateLink エンドポイントが必要です。
-
管理エンドポイント — このエンドポイントは、Aurora DSQL クラスターの
get
、create
、update
、delete
、list
などの管理オペレーションに使用されます。「AWS PrivateLink を使用した Aurora DSQL クラスターの管理」を参照してください。 -
接続エンドポイント — このエンドポイントは、PostgreSQL クライアントを介して Aurora DSQL クラスターに接続するために使用されます。「AWS PrivateLink を使用した Aurora DSQL クラスターへの接続」を参照してください。
Aurora DSQL 用 AWS PrivateLink を使用する際の考慮事項
Amazon VPC に関する考慮事項は、Aurora DSQL 用 AWS PrivateLink に適用されます。詳細については、「AWS PrivateLink ガイド」の「Access an AWS service using an interface VPC endpoint」と「AWS PrivateLink quotas」を参照してください。
AWS PrivateLink を使用した Aurora DSQL クラスターの管理
AWS Command Line Interface または AWS Software Development Kit (SDK) を使用して、Aurora DSQL インターフェイスエンドポイントを介して Aurora DSQL クラスターを管理できます。
Amazon VPC エンドポイントの作成
Amazon VPC インターフェイスエンドポイントを作成するには、「AWS PrivateLink ガイド」の「Create an Amazon VPC endpoint」を参照してください。
aws ec2 create-vpc-endpoint \ --region
region
\ --service-name com.amazonaws.region
.dsql \ --vpc-idyour-vpc-id
\ --subnet-idsyour-subnet-id
\ --vpc-endpoint-type Interface \ --security-group-idsclient-sg-id
\
Aurora DSQL API リクエストにデフォルトのリージョン DNS 名を使用するには、Aurora DSQL インターフェイスエンドポイントの作成時にプライベート DNS を無効にしないでください。プライベート DNS を有効にすると、Amazon VPC 内から行われた Aurora DSQL サービスへのリクエストは、パブリック DNS 名ではなく、Amazon VPC エンドポイントのプライベート IP アドレスに自動的に解決されます。プライベート DNS を有効にすると、Amazon VPC 内で行われた Aurora DSQL リクエストは Amazon VPC エンドポイントに自動的に解決されます。
プライベート DNS が有効になっていない場合は、AWS CLI コマンドで --region
および --endpoint-url
パラメータを使用して、Aurora DSQL インターフェイスエンドポイントを介して Aurora DSQL クラスターを管理します。
エンドポイント URL を使用したクラスターの一覧表示
次の例では、AWS リージョン us-east-1
と Amazon VPC エンドポイント ID の DNS 名 vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com
をユーザー自身の情報に置き換えます。
aws dsql --region
us-east-1
--endpoint-url https://vpce-1a2b3c4d-5e6f.dsql.us-east-1.vpce.amazonaws.com
list-clusters
API オペレーション
Aurora DSQL でのリソースの管理に関するドキュメントについては、「Aurora DSQL API reference」を参照してください。
エンドポイントポリシーの管理
Amazon VPC エンドポイントポリシーを徹底的にテストして設定することで、Aurora DSQL クラスターの安全性、コンプライアンス、組織固有のアクセスコントロールやガバナンスの要件との整合性を確保できます。
例: 完全な Aurora DSQL アクセスポリシー
次のポリシーは、指定された Amazon VPC エンドポイントを介して、すべての Aurora DSQL アクションとリソースへのフルアクセスを許可します。
aws ec2 modify-vpc-endpoint \ --vpc-endpoint-id vpce-xxxxxxxxxxxxxxxxx \ --region region \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "dsql:*", "Resource": "*" } ] }'
例: 制限付き Aurora DSQL アクセスポリシー
次のポリシーでは、これらの Aurora DSQL アクションのみを許可します。
-
CreateCluster
-
GetCluster
-
ListClusters
その他の Aurora DSQL アクションはすべて拒否されます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "dsql:CreateCluster", "dsql:GetCluster", "dsql:ListClusters" ], "Resource": "*" } ] }
AWS PrivateLink を使用した Aurora DSQL クラスターへの接続
AWS PrivateLink エンドポイントが設定され、アクティブになったら、PostgreSQL クライアントを使用して Aurora DSQL クラスターに接続できます。以下の接続手順では、AWS PrivateLink エンドポイント経由で接続するための適切なホスト名を作成する手順の概要を説明します。
AWS PrivateLink 接続エンドポイントの設定
ステップ 1: クラスターのサービス名を取得する
クラスターに接続するための AWS PrivateLink エンドポイントを作成するときは、まずクラスター固有のサービス名を取得する必要があります。
ステップ 2: Amazon VPC エンドポイントを作成する
前の手順で取得したサービス名を使用して、Amazon VPC エンドポイントを作成します。
重要
以下の接続手順は、プライベート DNS が有効になっている場合のクラスターへの接続にのみ動作します。エンドポイントの作成時に --no-private-dns-enabled
フラグを使用しないでください。使用すると、以下の接続手順が正しく動作しなくなります。プライベート DNS を無効にする場合は、作成したエンドポイントを指すワイルドカードプライベート DNS レコードを独自に作成する必要があります。
AWS PrivateLink 接続エンドポイントを使用した Aurora DSQL クラスターへの接続
AWS PrivateLink エンドポイントが設定され、アクティブになったら (State
が available
になっていることを確認します)、PostgreSQL クライアントを使用して Aurora DSQL クラスターに接続できます。AWS SDK の使用方法については、「Programming with Aurora DSQL」のガイドを参照してください。クラスターエンドポイントをホスト名の形式に合わせて変更する必要があります。
ホスト名の作成
AWS PrivateLink を介して接続するためのホスト名は、パブリック DNS ホスト名とは異なります。次のコンポーネントを使用して作成する必要があります。
-
Your-cluster-id
-
サービス名のサービス識別子。例:
dsql-fnh4
-
AWS リージョン
次の形式を使用します。cluster-id
.service-identifier
.region
.on.aws
例: PostgreSQL を使用した接続
# Set environment variables export CLUSTERID=
your-cluster-id
export REGION=us-east-1 export SERVICE_IDENTIFIER=dsql-fnh4 # This should match the identifier in your service name # Construct the hostname export HOSTNAME="$CLUSTERID.$SERVICE_IDENTIFIER.$REGION.on.aws" # Generate authentication token export PGPASSWORD=$(aws dsql --region $REGION generate-db-connect-admin-auth-token --hostname $HOSTNAME) # Connect using psql psql -d postgres -h $HOSTNAME -U admin
AWS PrivateLink で問題のトラブルシューティング
一般的な問題と解決策
次の表に、Aurora DSQL と AWS PrivateLink に関連する一般的な問題と解決策を示します。
問題 | 考えられる原因 | ソリューション |
---|---|---|
接続タイムアウト |
セキュリティグループが正しく設定されていない |
Amazon VPC Reachability Analyzer を使用して、ネットワーク設定でポート 5432 のトラフィックが許可されていることを確認します。 |
DNS 解決の失敗 |
プライベート DNS が有効になっていない |
Amazon VPC エンドポイントがプライベート DNS を有効にして作成されたことを確認します。 |
認証の失敗 |
認証情報が正しくないか、トークンの有効期限が切れている |
新しい認証トークンを生成し、ユーザー名を確認します。 |
サービス名が見つからない |
クラスター ID が正しくない |
サービス名を取得するときに、クラスター ID と AWS リージョンを再確認します。 |
関連リソース
詳細については、以下のリソースを参照してください。