Docs Menu
Docs Home
/
MongoDB Atlas
/ /

プライベートエンドポイント接続の問題のトラブルシューティング

項目一覧

  • 専有クラスター

このページでは、一般的なプライベートエンドポイント接続の問題と考えられる解決策について説明します。

1

各プライベートエンドポイントのステータスを表示するには:

  1. Atlasで、プロジェクトのGo Network Access{0 ページに します。

    1. まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

    2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

    3. サイドバーで、 Security見出しの下のNetwork Accessをクリックします。

      [ ネットワーク アクセス]ページが表示されます。

  2. [Private Endpoint] タブをクリックします。

  3. ステータスを確認します。

    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をクリックし、提供した情報が正しいことを確認し、プライベートエンドポイントを再度作成します。

重要:インターフェイスエンドポイントが失敗すると、次のメッセージが表示される場合があります。

No dns entries found for endpoint vpce-<guid>,
your endpoint must be provisioned in at least one subnet.
Click "Edit" to fix the problem.

このメッセージは、AWS PrivateLink 接続を作成したときにサブネットを指定しなかったことを示しています。 このエラーを解決するには、以下の手順を行います。

  1. [Edit] をクリックします。

  2. [Back] をクリックします。

  3. 少なくとも 1 つのサブネットを指定します。

  4. 残りの手順に従って、AWS PrivateLink 接続を作成します。

利用可能

Atlas VPC リソースは VPC 内の インターフェイスエンドポイント に接続されます。AWS PrivateLink を使用して、このリージョンの Atlas クラスターに接続できます。

削除

Atlas は、プライベートエンドポイント サービスからインターフェイスエンドポイントを削除しています。

2
  1. AWS PrivateLink を使用して Atlas クラスターに接続する必要があるリソースごとに、リソースのセキュリティグループは、すべてのポートで インターフェイスエンドポイントの プライベートIPアドレスへのアウトバウンド トラフィックを許可する必要があります(1024 -65535 )。

    「 セキュリティ グループへのルールの追加 」 参照してください。 詳しくは、 を参照してください。

  2. インターフェイスエンドポイントのセキュリティグループは、AWS PrivateLink を使用して Atlas クラスターに接続する必要がある各リソースからのすべてのポートでインバウンド トラフィックを許可する必要があります。

    ホワイトリスト インスタンスの 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 クラスター内の各ノードのホスト名です。

  • 102410251026 は、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

プライベートエンドポイントは、クラスターがまたがる各リージョン内にプライベートエンドポイントが設定されているノードがある場合にのみ、マルチリージョンクラスター で 使用できます 。マルチリージョンプライベートエンドポイントの構成の詳細については、「 マルチリージョンのシャーディングされたクラスターのリージョン別プライベートエンドポイント 」を参照してください。

ツール nslookuptelnet を使用して、アプリケーションから Atlas のプライベートエンドポイントへの接続をテストできます。

1

-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.
2

リスト内のポートの 1 つ(上記の出力例では 、10261024、または 1025)を使用して、次の telnet コマンドを実行して接続をテストしアプリケーション。

telnet pl-0-<xyz>.mongodb.net 1024
telnet pl-0-<xyz>.mongodb.net 1025
telnet pl-0-<xyz>.mongodb.net 1026

各プライベートエンドポイントのステータスを表示するには:

1
  1. まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

  2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

  3. サイドバーで、 Security見出しの下のNetwork Accessをクリックします。

    [ネットワーク アクセス]ページが表示されます。

2
3

Atlas Endpoint Service StatusフィールドとEndpoint Statusフィールドには、各プライベートエンドポイントのステータスが表示されます。

プライベートエンドポイント接続の状態を判断するには、次のステータスを参照してください。

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 からプライベートエンドポイント接続を削除しています。

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 クラスター内の各ノードのホスト名です。

  • 102410251026 は、 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

プライベートエンドポイントは、クラスターがまたがる各リージョン内にプライベートエンドポイントが設定されているノードがある場合にのみ、マルチリージョンクラスター で 使用できます 。マルチリージョンプライベートエンドポイントの構成の詳細については、「 マルチリージョンのシャーディングされたクラスターのリージョン別プライベートエンドポイント 」を参照してください。

ツール nslookuptelnet を使用して、アプリケーションから Atlas のプライベートエンドポイントへの接続をテストできます。

1

-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.
2

リスト内のポートの 1 つ(上記の出力例では 、10261024、または 1025)を使用して、次の telnet コマンドを実行して接続をテストしアプリケーション。

telnet pl-0-<xyz>.mongodb.net 1024
telnet pl-0-<xyz>.mongodb.net 1025
telnet pl-0-<xyz>.mongodb.net 1026

各プライベートエンドポイントのステータスを表示するには:

1
  1. まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

  2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

  3. サイドバーで、 Security見出しの下のNetwork Accessをクリックします。

    [ネットワーク アクセス]ページが表示されます。

2
3

Atlas Endpoint Service StatusフィールドとEndpoint Statusフィールドには、各プライベートエンドポイントのステータスが表示されます。

プライベートエンドポイント接続の状態を判断するには、次のステータスを参照してください。

Atlas Endpoint Service Status

ステータス
説明

プライベートリンクの作成

Atlas はネットワーク ロード バランサーとVPCリソースを作成しています。

失敗

システム障害が発生しました。

利用可能

Atlas はネットワーク ロード バランサーとVPCエンドポイント サービスを作成しました。 プライベートエンドポイント サービスは接続リクエストを受信する準備ができています。

削除

Atlas はプライベートエンドポイント サービスを削除しています。

Endpoint Status

ステータス
説明

開始

Atlas はまだプライベートエンドポイントに接続されておらず、エンドポイントをまだ受け入れていません。

ユーザーの待機

Atlas 上のVPCリソースを使用する準備が整いました。 shell スクリプトを実行して、 VPC内でエンドポイントを設定する必要があります。

確認済み

Atlas はVPC内のエンドポイントを確認しましたが、Google Cloud VPCのプライベートエンドポイントはまだ受け入れていません。Endpoint Status Availableになるまでに数分かかる場合があります。

利用可能

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のプライベートエンドポイントも削除する必要があります。 リージョン グループの保留中の削除。

プライベートエンドポイントは、クラスターがまたがる各リージョン内にプライベートエンドポイントが設定されているノードがある場合にのみ、マルチリージョンクラスター で 使用できます 。マルチリージョンプライベートエンドポイントの構成の詳細については、「 マルチリージョンのシャーディングされたクラスターのリージョン別プライベートエンドポイント 」を参照してください。

ツール nslookuptelnet を使用して、アプリケーションから Atlas のプライベートエンドポイントへの接続をテストできます。

1

-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.
2

アプリケーション環境から、リストされているポートの 1 つ(上記の出力例では、 27017)を使用して、次の telnet コマンドを実行して接続をテストします。

telnet pl-0-<xyz>.mongodb.net 27017

戻る

管理と接続