PrivateLink (AWS) を設定する
このガイドでは、Zilliz Cloudクラスターから異なるAWS VPCでホストされているサービスへのプライベートリンクを設定する手順を示します。
この機能は、専用(エンタープライズ)クラスターでのみ利用可能です。
プライベートリンクはプロジェクトレベルで設定され、このプロジェクトの下で同じクラウドプロバイダーとリージョンにデプロイされたすべてのクラスターに対して有効です。
Zilliz Cloudは、プライベートエンドポイントの作成および使用に対して料金を請求しません。ただし、Zilliz Cloudにアクセスするために作成したエンドポイントごとに、クラウドプロバイダーから料金が請求される場合があります。
始める前に
以下の条件が満たされていることを確認してください。
- 専用(Enterprise)クラスタが作成されました。クラスタの作成方法については、「クラスタ作成する」を参照してください。
プライベートエンドポイントの作成する
Zilliz Cloudは、プライベートエンドポイントを追加するための直感的なWebコンソールを提供しています。ターゲットプロジェクトに移動し、左側のナビゲーションでネットワーク>プライベートエンドポイントをクリックします。+プライベートエンドポイントをクリックします。
クラウドプロバイダーと地域を選択する
AWSリージョンにデプロイされたクラスターのプライベートエンドポイントを作成するには、AWSをCloud Providerドロップダウンリストから選択します。リージョンで、プライベートにアクセスしたいクラスターを収容するリージョンを選択します。次へをクリックします。
利用可能なクラウドプロバイダーとリージョンの詳細については、「クラウドプロバイダー&地域」を参照してください。
エンドポイントの作成する
UIコンソールまたはCLIを使用して、クラウドプロバイダコンソールでこの手順を完了する必要があります。
-
UIコンソールから
-
[UIコンソール経由]タブに切り替えます。
-
AWSコンソールページに移動します。AWSコンソールで、クラウドリージョンがステップ1で選択したクラウドリージョンに対応しているかどうかを確認します。左ナビゲーションのエンドポイントをクリックします。エンドポイントを作成をクリックします。
-
[Create Endpoint]ページで、[Endpoint services that use NLB and GWLB]をエンドポイントの種類として選択します。
-
Zilliz Cloudコンソールに戻り、サービス名をコピーしてください。
-
AWSコンソールに切り替えます。サービス設定で、Zilliz Cloudウェブコンソールからコピーしたサービス名をサービス名フィールドに貼り付けます。その後、サービスの検証をクリックします。
-
サービス名が確認されたら、ネットワーク設定、サブネット、セキュリティグループを完了し、[作成]をクリックします。
-
エンドポイントが正常に作成されたら、エンドポイントID("vpce-"で始まる)をコピーしてください。
-
-
CLIより
-
[Via CLI]タブに切り替えます。
-
2.VPC IDを入力します。
VPCを表示するには、Amazon VPCコンソールに移動します。ナビゲーションペインで、Your VPCを選択します。希望のVPCを見つけ、そのIDをコピーします。このIDをZilliz CloudのVPC IDに入力します。
VPCを作成するには、VPCの作成を参照してください。
-
[サブネットID]を入力します。
サブネットはVPCのサブディビジョンです。作成するプライベートエンドポイントと同じリージョンに存在するサブネットが必要です。サブネットを表示するには、Amazon VPCコンソールに移動します。現在のリージョンをプライベートリンクを作成するために指定されたリージョンに変更します。ナビゲーションペインで、[サブネット]を選択します。希望するサブネットを見つけ、そのIDをコピーします。このIDをZilliz CloudのサブネットIDに入力します。
サブネットを作成するには、「VPCでサブネットを作成する」を参照してください。
-
[コピーして移動]をクリックします。
クラウドプロバイダーコンソールにリダイレクトされます。上部のナビゲーションで、AWS Cloud Shellを起動してください。Zilliz CloudからコピーしたCLIコマンドをCloud Shellで実行してください。
以下のようなメッセージが返されます:
{
"VpcEndpoint": {
# Copy this and fill it in "Your VPC Private Link ID"
"VpcEndpointId": "vpce-0ce90d01341533a5c",
"VpcEndpointType": "Interface",
...
"DnsEntries": [
{
# Copy this one and use it as "VPCE_DNS" in the next step.
"DnsName": "vpce-0ce90d01341533a5c-ngbqfdnj.vpce-svc-0b62964bfd0edfb74.us-west-2.vpce.amazonaws.com",
"HostedZoneId": "Z1YSA3EXCYUU9Z"
},
{
"DnsName": "vpce-0ce90d01341533a5c-ngbqfdnj-us-west-2a.vpce-svc-0b62964bfd0edfb74.us-west-2.vpce.amazonaws.com",
"HostedZoneId": "Z1YSA3EXCYUU9Z"
}
]
}返されたメッセージに、作成したVPCエンドポイントのVpcEndpointId("vpce-"で始まる)をコピーします。
-
エンドポイントを承認する
AWSコンソールから取得したエンドポイントIDをZilliz CloudのエンドポイントIDボックスに貼り付けてください。作成をクリックしてください。
プライベートリンクを取得する
送信したVPCエンドポイントを確認して承認した後、Zilliz Cloudはこのエンドポイントにプライベートリンクを割り当てます。この過程には約5分かかります。
プライベートリンクが準備できたら、Zilliz Cloudのプライベートリンクページで閲覧可能です。
DNSレコードを設定する
Zilliz Cloudが割り当てたプライベートリンクを使用してクラスタをアクセス可能にする前に、プライベートリンクをVPCエンドポイントのDNS名に解決するために、DNSゾーンにCNAMEレコードを作成する必要があります。
-
Amazon Route 53を使用してホストゾーンを作成する
Amazon Route 53はWebベースのDNSサービスです。DNSレコードを追加できるように、ホストされたDNSゾーンを作成してください。
-
AWSアカウントにログインし、ホストゾーンに移動します。
-
[ホストゾーンを作成]をクリックします。
-
[ホストゾーン構成]セクションで、次のパラメーターを設定します。
パラメータ名
パラメータの説明
ドメイン名
ターゲットクラスタ用にZilliz Cloudによって割り当てられたプライベートリンク。
説明する
ホストゾーンを区別するために使用される説明。
タイプ
[プライベートホストゾーン]を選択します。
-
[ホストゾーンに関連付けるVPC]セクションで、ホストゾーンに関連付けるVPC IDを追加します。
-
-
ホストゾーンにエイリアスレコードを作成する
エイリアスレコードは、エイリアス名を真のまたは正規のドメイン名にマップするDNSレコードの一種です。Zilliz Cloudによって割り当てられたプライベートリンクをVPCエンドポイントのDNS名にマップするエイリアスレコードを作成します。その後、プライベートリンクを使用してクラスターにプライベートにアクセスできます。
-
作成したホストゾーンで、[レコードを作成]をクリックします。
-
[レコードを作成]ページで[エイリアス]をオンにし、[トラフィックを次のようにルーティング]を選択します。
-
最初のドロップダウンリストで[VPCエンドポイントへのエイリアス]を選択します。
-
2番目のドロップダウンリストで雲の地域を選択してください。
-
上で作成したエンドポイントの名前を入力します。
-
-
[レコードを作成]をクリックします。
-
クラスタへのインターネットアクセスを管理する
プライベートエンドポイントを設定した後、クラスターのパブリックエンドポイントを無効にして、プロジェクトへのインターネットアクセスを制限することができます。パブリックエンドポイントを無効にすると、ユーザーはプライベートリンクを使用してクラスターにのみ接続できます。
パブリックエンドポイントを無効にするには:
-
ターゲットクラスタのクラスタ詳細ページに移動します。
-
[接続]セクションに移動します。
-
クラスターパブリックエンドポイントの横にある構成アイコンをクリックしてください。
-
情報を読んで、無効にするをクリックして、パブリックエンドポイントを無効にするダイアログボックス。
プライベートエンドポイントはデータプレーンへのアクセスにのみ影響します。コントロールプレーンは引き続きパブリックインターネットからアクセスできます。
パブリックエンドポイントを再度有効にした後、ローカルDNSキャッシュの有効期限が切れるまで、パブリックエンドポイントにアクセス可能にする必要がある場合があります。
トラブルシューティング
AWSのプライベートリンクに接続すると、常にタイムアウトが報告されるのはなぜですか?
タイムアウトは通常、次の理由で発生します。
-
プライベートDNSレコードは存在しません。
DNSレコードが存在する場合は、次のようにプライベートリンクをpingできます。
📘ノートping要求の出力でVPCエンドポイントのIPアドレスが正しく解決された場合、DNSレコードは機能します。
以下が表示された場合は、DNSレコードを設定する必要があります。
-
セキュリティグループ規則が存在しないか、無効です。
AWSコンソールで、EC 2インスタンスからVPCエンドポイントへのトラフィックのセキュリティグループルールを適切に設定する必要があります。VPC内の適切なセキュリティグループは、プライベートリンクにサフィックスが付けられたポートからEC 2インスタンスへのインバウンドアクセスを許可する必要があります。
プライベートリンクの接続性をテストするには、
url
コマンドを使用できます。通常の場合、400レスポンスが返されます。次のスクリーンショットのように、
url
コマンドが応答せずにハングする場合は、「Create a VPC endpoint」の手順9を参照して、適切なセキュリティグループルールを設定する必要があります。📘ノート2つのセキュリティグループを設定する必要があります。1つはEC 2インスタンス用で、プライベートリンクに関連付けられたポートでのトラフィックを許可する必要があります。もう1つはVPCエンドポイント用で、EC 2インスタンスのIPアドレスからのトラフィックを許可し、指定されたポート番号をターゲットにする必要があります。