プライベートエンドポイント接続の問題のトラブルシューティング
項目一覧
このページでは、一般的なプライベートエンドポイント接続の問題と考えられる解決策について説明します。
専有クラスター
AWS PrivateLink 接続のステータスを確認します。
各プライベートエンドポイントのステータスを表示するには:
Atlasで、プロジェクトのGo Network Access{0 ページに します。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のNetwork Accessをクリックします。
[ ネットワーク アクセス]ページが表示されます。
[Private Endpoint] タブをクリックします。
ステータスを確認します。
Atlas Endpoint Service StatusフィールドとEndpoint Statusフィールドには、各プライベートエンドポイントのステータスが表示されます。
プライベートエンドポイント接続の状態を判断するには、次のステータスを参照してください。
Atlas Endpoint Service Status
ステータス | 説明 |
---|---|
プライベートリンクの作成 | Atlas はネットワーク ロード バランサーと VPCリソースを作成しています。 |
失敗 | システム障害が発生しました。 |
利用可能 | Atlas ネットワーク ロード バランサーとVPCエンドポイント サービスが作成され、接続リクエストを受信する準備が整いました。 |
削除 | Atlas はプライベートエンドポイント サービスを削除しています。 |
Endpoint Status
ステータス | 説明 | |||
---|---|---|---|---|
未構成 | Atlasはネットワーク ロード バランサーとVPCエンドポイント サービスを作成しましたが、 Amazon Web Servicesはまだ インターフェイスエンドポイントを作成していません。 Editをクリックし、ウィザードを完了してインターフェースエンドポイントを作成します。 | |||
保留中の受け入れ | Amazon Web Servicesは、インターフェイスエンドポイントからAtlas VPCエンドポイント サービスへの接続リクエストを受信しました。 | |||
支払い待ち | Amazon Web Servicesは、インターフェイスエンドポイントとAtlas VPCエンドポイント サービス間の接続を確立しています。 | |||
失敗 | Amazon Web ServicesがAtlasVPC リソースと の インターフェイスエンドポイント VPCの間の接続を確立できませんでした。Editをクリックし、提供した情報が正しいことを確認し、プライベートエンドポイントを再度作成します。 重要:インターフェイスエンドポイントが失敗すると、次のメッセージが表示される場合があります。
このメッセージは、AWS PrivateLink 接続を作成したときにサブネットを指定しなかったことを示しています。 このエラーを解決するには、以下の手順を行います。
| |||
利用可能 | Atlas VPC リソースは VPC 内の インターフェイスエンドポイント に接続されます。AWS PrivateLink を使用して、このリージョンの Atlas クラスターに接続できます。 | |||
削除 | Atlas は、プライベートエンドポイント サービスからインターフェイスエンドポイントを削除しています。 |
セキュリティ グループが正しく構成されていることを確認します。
AWS PrivateLink を使用して Atlas クラスターに接続する必要があるリソースごとに、リソースのセキュリティグループは、すべてのポートで インターフェイスエンドポイントの プライベートIPアドレスへのアウトバウンド トラフィックを許可する必要があります(1024 -65535 )。
「 セキュリティ グループへのルールの追加 」 参照してください。 詳しくは、 を参照してください。
インターフェイスエンドポイントのセキュリティグループは、AWS PrivateLink を使用して Atlas クラスターに接続する必要がある各リソースからのすべてのポートでインバウンド トラフィックを許可する必要があります。
ホワイトリスト インスタンスの IP アドレスまたはセキュリティ グループ これらからのトラフィックは インターフェイスエンドポイント のセキュリティ グループに到達できます。
DNS ルックアップによるプライベート IP の取得
VPC 内のクライアントは、プライベートエンドポイントを認識する接続文字列を使用して Atlas クラスターに接続する際、インターフェイスエンドポイントのいずれかを経由して Atlas VPC のロード バランサーへの接続を確立しようとします。ホスト名は、お使いのクライアントで使用される DNS 解決メカニズムに従って、インターフェイスエンドポイントに変換されます。あるインターフェイスエンドポイントが使用できない場合は、次のものが使用されます。ドライバーなどの接続メカニズムではこの処理を見通すことはできません。ドライバーが認識するのは、SRV レコード形式または接続文字列形式のホスト名のみです。
DNS シードリストのプライベートエンドポイント対応接続文字列の SRV レコード
次の例は、 AWS PrivateLink が有効化されている単一リージョン クラスターの SRVレコードで、 pl-0-us-east-1-k45tj.mongodb.net
に 3 つの一意なポートが定義されています。
nslookup -type=SRV _mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: _mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net service = 0 0 1026 pl-0-us-east-1-k45tj.mongodb.net. _mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net service = 0 0 1024 pl-0-us-east-1-k45tj.mongodb.net. _mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net service = 0 0 1025 pl-0-us-east-1-k45tj.mongodb.net.
前の例では、次のようになります。
_mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net
は、mongodb+srv://cluster0-pl-0-k45tj.mongodb.net
接続文字列が参照する SRV レコードです。pl-0-us-east-1-k45tj.mongodb.net
は、AWS PrivateLink を構成済みのあるリージョンに属する 1 つの Atlas クラスター内の各ノードのホスト名です。1024
、1025
、1026
は、Atlas で AWS PrivateLink を有効化したリージョンに属する各 Atlas レプリカセット ノードのロード バランサーに割り当てられる固有のポートです。Atlas レプリカセット内のどのノードにも同じホスト名でアクセスでき、個々のノードはロード バランサーによって固有のポート別に解決されます。
プライベートエンドポイント対応接続文字列と SRV レコードでのホスト名 DNS 解決
SRV レコードと標準接続文字列のホスト名は、DNS 正規名(CNAME
)レコードとして AWS でインターフェイスエンドポイント向けに生成されるエンドポイント固有のリージョン別 DNS 名です。インターフェイスエンドポイントを配置した VPC の各サブネットには DNS ALIAS
レコードがあり、各 ALIAS
レコードには、そのサブネット向けインターフェイスエンドポイントのプライベート IP アドレスが含まれています。
以下に例示されているのは、SRV レコードと標準接続文字列のホスト名向けの DNS ルックアップであり、インターフェイスエンドポイントとその DNS ALIAS
レコード向けのエンドポイント固有のリージョン別 DNS 名が含まれています。
nslookup pl-0-us-east-1-k45tj.mongodb.net Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: pl-0-us-east-1-k45tj.mongodb.net canonical name = vpce-024f5b57108c8d3ed-ypwbxwll.vpce-svc-02863655456245e5c.us-east-1.vpce.amazonaws.com. Name: vpce-024f5b57108c8d3ed-ypwbxwll.vpce-svc-02863655456245e5c.us-east-1.vpce.amazonaws.com Address: 10.0.30.194 Name: vpce-024f5b57108c8d3ed-ypwbxwll.vpce-svc-02863655456245e5c.us-east-1.vpce.amazonaws.com Address: 10.0.20.54
マルチリージョン プライベートエンドポイント
プライベートエンドポイントは、クラスターがまたがる各リージョン内にプライベートエンドポイントが設定されているノードがある場合にのみ、マルチリージョンクラスター で 使用できます 。マルチリージョンプライベートエンドポイントの構成の詳細については、「 マルチリージョンのシャーディングされたクラスターのリージョン別プライベートエンドポイント 」を参照してください。
配置したアプリケーションからの接続をテストする
ツール nslookup
と telnet
を使用して、アプリケーションから Atlas のプライベートエンドポイントへの接続をテストできます。
Atlas クラスターの接続の詳細を取得します。
-type=SRV
フラグを指定して nslookup
を実行し、クラスター内の各ノードに関連付けられているポート番号を取得します。
nslookup -type=SRV _mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net
Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: _mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net service = 0 0 1026 pl-0-us-east-1-k45tj.mongodb.net. _mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net service = 0 0 1024 pl-0-us-east-1-k45tj.mongodb.net. _mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net service = 0 0 1025 pl-0-us-east-1-k45tj.mongodb.net.
各プライベートエンドポイントのステータスを表示するには:
AtlasGoNetwork AccessAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のNetwork Accessをクリックします。
[ネットワーク アクセス]ページが表示されます。
プライベートエンドポイント接続の状態を判断するには、次のステータスを参照してください。
Atlas Endpoint Service Status
ステータス | 説明 |
---|---|
プライベートリンクの作成 | Atlas はロード バランサーと VNet リソースを作成しています。 |
失敗 | システム障害が発生しました。 |
利用可能 | Atlas はロード バランサーと Azure Private Link Service を作成しました。 Azure Private Link Service は接続リクエストを受け入れる準備ができています。 |
削除 | Atlas は Azure Private Link Service を削除しています。 |
Endpoint Status
ステータス | 説明 |
---|---|
未構成 | Atlas はロード バランサーと Azure Private Link Service を作成しましたが、プライベートエンドポイントはまだ作成していません。 Editをクリックし、ウィザードを完了してプライベートエンドポイントを作成します。 |
開始 | Atlas はまだプライベートエンドポイントへの接続を受け入れていません。 |
失敗 | Azureは Atlas VNet リソースと VNet 内のプライベートエンドポイント間の接続を確立できませんでした。 Editをクリックし、提供した情報が正しいことを確認し、プライベートエンドポイントを再度作成します。 |
利用可能 | Atlas VNet リソースは、VNet 内のプライベートエンドポイントに接続されます。 Azure Private Link を使用して、このリージョンの Atlas クラスターに接続できます。 |
削除 | Atlas は、Azure Private Link Service からプライベートエンドポイント接続を削除しています。 |
DNS ルックアップによるプライベート IP の取得
VNet 内のクライアントは、これらのプライベートエンドポイントを認識する接続文字列を使用して Atlas クラスターに接続する際、プライベートエンドポイントのネットワーク インターフェイス経由で Atlas VNet 内の Private Link Service への接続を確立しようとします。Private Link Service では、Azure Standard Load Balancer から、該当リージョンに配置した Atlas クラスター ノードへトラフィックが送信されます。クライアントで使用される DNS 解決メカニズムでは、ホスト名はネットワーク インターフェイスのプライベート IP アドレスに変換されます。ドライバーは接続文字列形式のホスト名のみを認識し、クラスターのレプリカセット内の各ノードにつき 1 つのポートでリッスンします。
DNS シードリストのプライベートエンドポイント対応接続文字列の SRV レコード
次の例では、Azure Private Link が有効化されている単一リージョン クラスターの SRV レコードで、pl-0-eastus2.uzgh6.mongodb.net
に 3 つの一意なポートが定義されています。
nslookup -type=SRV _mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: _mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net service = 0 0 1024 pl-0-eastus2.uzgh6.mongodb.net. _mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net service = 0 0 1025 pl-0-eastus2.uzgh6.mongodb.net. _mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net service = 0 0 1026 pl-0-eastus2.uzgh6.mongodb.net.
前の例では、次のようになります。
_mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net
は、接続文字列が参照する SRV レコードです。pl-0-eastus2.uzgh6.mongodb.net
は、 Azure Private Link を構成済みのあるリージョンに属する 1 つの Atlas クラスター内の各ノードのホスト名です。1024
、1025
、1026
は、 Azure Private Link を有効化したリージョンに属する各 Atlasレプリカセットのノードのロードバランサーに Atlas が割り当てる一意のポートです。 Atlasレプリカセット内のどのノードにも同じホスト名でアクセスでき、個々のノードはロードバランサーによって固有のポート別に解決されます。
プライベートエンドポイント対応接続文字列と SRV レコードでのホスト名 DNS 解決
SRVレコードと標準接続文字列のホスト名は DNSA
レコードであり、プライベートエンドポイントのネットワーク インターフェースのプライベートIPアドレスに変換されます。
以下に例示されているのは、SRV レコードと標準接続文字列のホスト名向けの DNS ルックアップです。
nslookup pl-0-eastus2.uzgh6.mongodb.net Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: pl-0-eastus2.uzgh6.mongodb.net Address: 10.0.0.4
マルチリージョン プライベートエンドポイント
プライベートエンドポイントは、クラスターがまたがる各リージョン内にプライベートエンドポイントが設定されているノードがある場合にのみ、マルチリージョンクラスター で 使用できます 。マルチリージョンプライベートエンドポイントの構成の詳細については、「 マルチリージョンのシャーディングされたクラスターのリージョン別プライベートエンドポイント 」を参照してください。
配置したアプリケーションからの接続をテストする
ツール nslookup
と telnet
を使用して、アプリケーションから Atlas のプライベートエンドポイントへの接続をテストできます。
Atlas クラスターの接続の詳細を取得します。
-type=SRV
フラグを指定して nslookup
を実行し、クラスター内の各ノードに関連付けられているポート番号を取得します。
nslookup -type=SRV _mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net
Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: _mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net service = 0 0 1026 pl-0-us-east-1-k45tj.mongodb.net. _mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net service = 0 0 1024 pl-0-us-east-1-k45tj.mongodb.net. _mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net service = 0 0 1025 pl-0-us-east-1-k45tj.mongodb.net.
各プライベートエンドポイントのステータスを表示するには:
AtlasGoNetwork AccessAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のNetwork Accessをクリックします。
[ネットワーク アクセス]ページが表示されます。
プライベートエンドポイント接続の状態を判断するには、次のステータスを参照してください。
Atlas Endpoint Service Status
ステータス | 説明 |
---|---|
プライベートリンクの作成 | Atlas はネットワーク ロード バランサーとVPCリソースを作成しています。 |
失敗 | システム障害が発生しました。 |
利用可能 | Atlas はネットワーク ロード バランサーとVPCエンドポイント サービスを作成しました。 プライベートエンドポイント サービスは接続リクエストを受信する準備ができています。 |
削除 | Atlas はプライベートエンドポイント サービスを削除しています。 |
Endpoint Status
ステータス | 説明 |
---|---|
開始 | Atlas はまだプライベートエンドポイントに接続されておらず、エンドポイントをまだ受け入れていません。 |
ユーザーの待機 | Atlas 上のVPCリソースを使用する準備が整いました。 shell スクリプトを実行して、 VPC内でエンドポイントを設定する必要があります。 |
確認済み | Atlas はVPC内のエンドポイントを確認しましたが、Google Cloud VPCのプライベートエンドポイントはまだ受け入れていません。 がEndpoint Status |
利用可能 | Atlas VPCリソースは、 Google Cloud Platform VPCのプライベートエンドポイントに接続されます。 Atlas はエンドポイントを受け入れました。 GCP Private Service Connect を使用して、このリージョンの Atlas クラスターに接続できます。 |
アクティブ | Atlas はVPCリソースを使用する準備ができています。 Atlas はエンドポイントを受け入れました。 VM はプライベート サービス接続に割り当てられます。 |
失敗 | Google Cloud Platformで、 Atlas VPCリソースとGoogle Cloud Platform VPCのプライベートエンドポイントの間の接続を確立できませんでした。 Editをクリックし、提供した情報が正しいことを確認し、プライベートエンドポイントを再度作成します。 |
削除 | Atlas のリージョンからプライベートエンドポイントを手動で削除しました。 リソースを削除するには、 Google Cloud Platformのプライベートエンドポイントも削除する必要があります。 リージョン グループの保留中の削除。 |
マルチリージョン プライベートエンドポイント
プライベートエンドポイントは、クラスターがまたがる各リージョン内にプライベートエンドポイントが設定されているノードがある場合にのみ、マルチリージョンクラスター で 使用できます 。マルチリージョンプライベートエンドポイントの構成の詳細については、「 マルチリージョンのシャーディングされたクラスターのリージョン別プライベートエンドポイント 」を参照してください。
配置したアプリケーションからの接続をテストする
ツール nslookup
と telnet
を使用して、アプリケーションから Atlas のプライベートエンドポイントへの接続をテストできます。
Atlas クラスターの接続の詳細を取得します。
-type=SRV
フラグを指定して nslookup
を実行し、クラスター内の各ノードに関連付けられているポート番号を取得します。
nslookup -debug -type=SRV _mongodb._tcp.gpc-mongo-pl-0-us-central1.test.mongodb.net
Server: 8.8.8.8 Address: 8.8.8.8#53 ------------ QUESTIONS: _mongodb._tcp.gpc-mongo-pl-0-us-central1.test.mongodb.net, type = SRV, class = IN ANSWERS: -> _mongodb._tcp.gpc-mongo-pl-0-us-central1.test.mongodb.net service = 0 0 27017 pl-00-000-us-central1-gcp.test.mongodb.net. ttl = 60 -> _mongodb._tcp.gpc-mongo-pl-0-us-central1.test.mongodb.net service = 0 0 27017 pl-00-001-us-central1-gcp.test.mongodb.net. ttl = 60 -> _mongodb._tcp.gpc-mongo-pl-0-us-central1.test.mongodb.net service = 0 0 27017 pl-00-002-us-central1-gcp.test.mongodb.net. ttl = 60 AUTHORITY RECORDS: ADDITIONAL RECORDS: ------------ Non-authoritative answer: _mongodb._tcp.gpc-mongo-pl-0-us-central1.test.mongodb.net service = 0 0 27017 pl-00-000-us-central1-gcp.test.mongodb.net. _mongodb._tcp.gpc-mongo-pl-0-us-central1.test.mongodb.net service = 0 0 27017 pl-00-001-us-central1-gcp.test.mongodb.net. _mongodb._tcp.gpc-mongo-pl-0-us-central1.test.mongodb.net service = 0 0 27017 pl-00-002-us-central1-gcp.test.mongodb.net.