AWS PrivateLinkによるVeloDB Servicesへの接続
このリファレンスでは、VeloDB ServicesがサポートするAWSリージョンと、各リージョンで公開されるEndpoint Service名を示します。また、Interface VPC Endpointを作成して公開サービスに接続し、サポートされるVeloDBホスト名のプライベートDNSを設定する方法について説明します。
サポートされるアクセスパスと接続モデルについては、VeloDB Servicesを参照してください。
要件
- VeloDBホスト名と対応するAWSリージョン。Endpoint ServiceとクライアントVPCは同じリージョンに配置する必要があります。
- クライアントがVeloDBサービスへアクセスする際に使用するAWS VPC。
- Interface VPC Endpoint、セキュリティグループルール、Route 53プライベートDNSレコードを作成する権限。
- VPCでDNS resolutionとDNS hostnamesが有効であること。
- クライアントとエンドポイント間でTCPポート
443が許可されていること。
サポートされるリージョンとEndpoint Service
| AWSリージョン | Endpoint Service名 |
|---|---|
us-east-1 | com.amazonaws.vpce.us-east-1.vpce-svc-0fb96af7d8cd84d4d |
us-west-2 | com.amazonaws.vpce.us-west-2.vpce-svc-0709eceab1c84431a |
eu-west-1 | com.amazonaws.vpce.eu-west-1.vpce-svc-027fb01a146da1e29 |
eu-central-1 | com.amazonaws.vpce.eu-central-1.vpce-svc-0b44881fddef6b599 |
ap-southeast-1 | com.amazonaws.vpce.ap-southeast-1.vpce-svc-06e619c006c767a35 |
ap-southeast-7 | com.amazonaws.vpce.ap-southeast-7.vpce-svc-0378cb9082f6839fd |
ap-northeast-1 | com.amazonaws.vpce.ap-northeast-1.vpce-svc-02a4c77c825111428 |
ap-south-1 | com.amazonaws.vpce.ap-south-1.vpce-svc-066b8836d19ee2a95 |
ap-east-1 | com.amazonaws.vpce.ap-east-1.vpce-svc-07c3dac48f26cc10a |
me-south-1 | com.amazonaws.vpce.me-south-1.vpce-svc-0f51549e7949898ca |
me-central-1 | com.amazonaws.vpce.me-central-1.vpce-svc-01bb92d635d16039f |
手順1: Interface VPC Endpointを作成する
- AWS Management ConsoleでVPC > Endpointsを開きます。
- Create endpointを選択します。
velodb-servicesなどの名前を入力します。- TypeでEndpoint services that use NLBs and GWLBsを選択します。
- リージョンに対応するVeloDB Cloud Service名を入力します。
- Verify serviceを選択し、Service名が検証されることを確認します。
- VeloDBサービスにアクセスするクライアントが使用するVPCを選択します。
- 1つ以上のエンドポイントサブネットを選択します。
- クライアントのCIDR範囲またはクライアントセキュリティグループからのTCP
443インバウンドを許可するセキュリティグループをアタッチします。 - エンドポイントを作成します。
状態がPending acceptanceのままの場合は、次の情報をVeloDB Supportに送信します。
- VeloDB Cloud組織名
- エンドポイント経由でルーティングするVeloDBホスト名
- AWSリージョン
- VPC Endpoint ID(例:
vpce-0123456789abcdef0)
エンドポイントの状態がAvailableになってから続行します。
手順2: プライベートDNSを設定する
エンドポイントのDetailsタブからリージョンDNS名を記録します。形式は次のとおりです。
vpce-xxxxxxxx-yyyyyyyy.vpce-svc-xxxxxxxx.<region>.vpce.amazonaws.com
次にRoute 53を設定します。
-
VPCで
enableDnsSupportとenableDnsHostnamesが有効であることを確認します。 -
クライアントVPCに関連付けられたRoute 53 Private Hosted Zoneを作成または選択します。
-
複数のAWSリージョンにあるVeloDBホスト名を同じPrivate Hosted Zoneの対象にする場合は、次のゾーン名を使用します。
aws.velodb.cloud1つのリージョンだけでプライベートアクセスが必要な場合は、
us-east-1.aws.velodb.cloudなどの限定的なゾーンを使用できます。
Private Hosted Zoneは、サフィックス内のすべてのホスト名に対して権威を持ちます。一致するプライベートレコードがなくても、DNSはパブリックゾーンにフォールバックしません。aws.velodb.cloudを使用する場合は、ウェアハウス固有の各Consoleホスト名を含め、クライアントが解決する必要があるすべてのVeloDBホスト名にレコードを追加してください。レコードがないホスト名にはNXDOMAINが返されます。
- 必要な各VeloDBホスト名の
CNAMEレコードを作成し、リージョンVPC Endpoint DNS名を指定します。
たとえば、ウェアハウス固有のConsoleエンドポイントには<warehouse-id>-studio.<region>.aws.velodb.cloudを、Metrics APIにはapps-api.<region>.aws.velodb.cloudを作成します。
VeloDB Supportから明示的な指示がない限り、Endpoint Serviceの自動Private DNSオプションは無効のままにします。
手順3: 接続を確認する
VPC内のクライアントから次のコマンドを実行します。
nslookup <warehouse-id>-studio.<region>.aws.velodb.cloud
nslookup apps-api.<region>.aws.velodb.cloud
DNSチェーンは、エンドポイントのネットワークインターフェースに属するプライベートIPアドレスに解決される必要があります。
TLSとHTTPルーティングを確認します。
curl -sS \
-o /dev/null \
-w 'remote_ip=%{remote_ip} http_code=%{http_code}\n' \
https://apps-api.<region>.aws.velodb.cloud/
リモートアドレスがプライベートであること、--insecureを使用せずにTLS検証が成功すること、サーバーがHTTPレスポンスを返すことを確認します。未認証のリクエストは401、403、またはリダイレクトを返すことがあります。
オンプレミスネットワークから接続する
- AWS Direct ConnectまたはVPNを使用して、オンプレミスネットワークをエンドポイントVPCに接続します。
- ルートとセキュリティルールで、エンドポイントのネットワークインターフェースへのTCP
443アクセスを許可します。 - リージョン別VeloDB CloudプライベートゾーンをRoute 53 Resolverに転送するように企業DNSを設定します。
トラブルシューティング
| 問題 | 確認事項 |
|---|---|
| Service名を検証できない | VPCリージョンがService名と一致し、エンドポイントタイプがInterfaceであることを確認します。 |
| エンドポイントがPendingのまま | VPC Endpoint IDの承認をVeloDB Supportに依頼します。 |
| VeloDBホスト名がパブリックに解決される | Private Hosted Zone名、VPCの関連付け、レコード名、DNS転送を確認します。 |
| 接続がタイムアウトする | エンドポイントの状態、セキュリティグループ、ネットワークACL、ルート、TCP 443アクセスを確認します。 |
| TLS検証に失敗する | VPC Endpoint DNS名やプライベートIPではなく、元のVeloDBホスト名を使用します。 |