Docs Menu
Docs Home
/
MongoDB Atlas
/ /

FAQ:接続文字列オプション

項目一覧

Atlas には複数の接続文字列が用意されています。これらの文字列により、パブリックとプライベートの両方のコンテキストからクラスターに接続できます。Atlas は常にクラスターにユニークな接続文字列を割り当てるため、2 つのクラスターがAtlasとの間でホスト名や接続文字列を共有することはありません。

Atlas に接続するには、アプリケーションをクラスターと通信するための URI に向けます。Atlas は、複数のノードまたはホストを持つクラスターを作成します。各ノードは IP アドレスに解決される、独自のホスト名を持ちます。Atlas が接続する接続文字列と呼ばれる URI には、複数のホスト名が含まれる場合があります。許可された IP アドレスからクラスター ホストへの接続を受け入れるように、Atlas を設定します。

Atlas は、認証とTLS を通じてパブリック IP アドレスからの接続を保護します。プライベート IP アドレスに接続する場合は、以下を使用できます。

  • AWS と GCP VPC のピアリング

  • Azure VNet ピアリング

  • AWS PrivateLink と Azure Private Link

これらの機能はすべて、安全なネットワーク内の内部IPアドレスを介した通信を管理します。

Atlas は、安全なネットワークを使用する場合に複数の接続ストリングを提供します。各ネットワークは、異なる IP に解決される文字列を提供します。

すべてのクラスターには標準接続文字列があります。これは、クラスターの以下に解決されます。

  • インターネット接続用のパブリック IP アドレスと

  • AWS クラスターに対する VPC プライベート IP アドレスがピアリングされた VPC によって解決される場合。

この文字列は、インターネット経由で接続するアプリケーション、または AWS 内のピアリングされたクラスターに接続するアプリケーションに使用します。

ピアリングされたネットワークのあるクラスターには、ピアリング接続文字列のプライベート IPがあります。この文字列は、次で利用可能な IP アドレスに解決されます。

  • Azure または Google Cloud のピアリングされたネットワーク

  • AWS のピアリングされたクラスターでカスタム DNS サービスを使用する。

この接続文字列は、右記に接続するアプリケーションで使用します。

  • Azure または Google Cloud のピアリングされたネットワーク内

  • AWS でカスタム DNS サービスを使用する場合の AWS クラスターへの接続。

プライベートエンドポイントが設定されているリージョンの AWS または Azure クラスターには、1 つ以上の接続文字列があります。各文字列は、Atlas VPC または VNet 内のロード バランサーに直接接続する VPC または VNet 内の、ネットワーク インターフェイスのプライベート IP アドレスに解決されます。これらの接続文字列は、プライベートエンドポイントに接続するアプリケーションで使用します。

2020 年 3 月 31 日より前は、ピアネットワーク化された Azure または Google Cloud クラスター上のデータベースに接続するには、ピアリング専用モードを有効にする必要がありました。このモード:

  • 影響を受けるグローバルDNS 解決と

  • ピアリングされたネットワーク外のデータベース接続を制限します。

複数ホライズンではこれらの制限を解除し、次の追加機能のロックを解除します。

複数ホライゾンを活用するには、以下のタスクを実行します。

注意

現時点では、既存のピアリング対応接続文字列を使用してクラスターに接続し続けることが可能です。ピアリング専用モードでは、複数ホライズンで改善された機能と緩和された制限を利用できなくなります。新機能を使用してレガシー制限を取り除くには、MongoDB では新しい接続文字列を使用する必要があります。

はい。

ピアリング接続文字列用のプライベート IPを使用して接続するようにアプリケーションを変更します。この変更により、アプリケーションは UI または API を使用してピアリングされたネットワークから接続できるようになります。

より多くのリージョンに拡張するには、まず既存の Azure クラスターでピアリング専用モードを無効にします。

ピアリング専用モードを無効にするには、以下を使用します。

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

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

  3. まだ表示されていない場合は、サイドバーの [Clusters] をクリックします。

    [ Clusters (クラスター) ] ページが表示されます。

2

Atlas クラスターを使用するアプリケーション内のすべての URL を変更して、ピアリング接続文字列用のプライベート IP を使用します。

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

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

  3. Projects メニューの横にある Options メニューをクリックし、 Project Settings をクリックします。

    [ Project Settings ]ページが表示されます。

4

Connect via Peering Only (GCP and Azure) をオフに切り替えます。

1

すべてのクラスターとそれらの MongoDB バージョンを返すには、get all API エンドポイントを呼び出します。

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--include \
--request GET "https://cloud.mongodb.com/api/atlas/v1.0/groups/{GROUP-ID}/clusters?pretty=true"

成功した場合、応答には以下の内容が含まれます。

{
"results": [{
...
"mongoDBMajorVersion": "5.0",
"mongoDBVersion": "5.0.14",
...
},{
...
"mongoDBMajorVersion": "5.0",
"mongoDBVersion": "5.0.12",
... }
]
}
2

Atlas クラスターを使用するアプリケーション内のすべての URL を変更して、ピアリング接続文字列用のプライベート IP を使用します。

3

プライベート IP モードを無効にするには、APIエンドポイントを呼び出します。

curlを使うと、このコマンドを実行することになります。

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--include \
--request PATCH "https://cloud.mongodb.com/api/atlas/v1.0/groups/{GROUP-ID}/privateIpMode?pretty=true" \
--data '
{
"enabled" : false
}'

{GROUP-ID}を、該当するプロジェクトのプロジェクト ID に変更します。

成功した場合、応答には次のように表示されます。

1{
2 "enabled" : false
3}

2020 年 3 月 31 日より前は、カスタム DNS サービスと Atlas とピアリングされた VPC を使用して AWS 内に配置されたアプリケーションは、プライベート IP アドレスで接続することはできませんでした。

  • カスタム DNS はパブリック IP アドレスに解決されました。

  • AWS の内部 DNS がプライベート IP アドレスに解決されました。

AWS にカスタム DNS サービスを使用して展開されたアプリケーションでは、ピアリング接続文字列にプライベート IP を使用する必要があります。

これらの文字列を表示するには、

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

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

  3. Projects メニューの横にある Options メニューをクリックし、 Project Settings をクリックします。

    [ Project Settings ]ページが表示されます。

2
  1. Using Custom DNS on AWS with VPC PeeringOn に切り替えます。

  2. AWSクラスターのconnectモーダルを表示します。

  3. Private IP for Peering 接続文字列を選択します。

接続文字列の URI の構造は、文字列のタイプを示します。ピアリング接続またはプライベートエンドポイントを作成した場合、Atlas にはこれらのオプションが複数表示されます。

標準の接続文字列は、次の形式に従います。

mongodb://xyz456-shard-00-00.ab123.mongodb.net:27017
mongodb+srv://xyz456.ab123.mongodb.net

ab123 の前のドットは重要です。この形式を使用する URI は、VPC ピアリングが設定された AWS 内から接続する場合を除き、パブリック IP アドレスに解決されます。

重要

この形式では、レガシー接続文字列から 1 文字が変更されます。クラスター名の後のハイフン ( - ) がピリオド ( . ) になります。

たとえば、このレガシー接続文字列は次のようになります。

mongodb+srv://xyx456-ab123.mongodb.net

はこの標準接続文字列として記述されます。

mongodb+srv://xyx456.ab123.mongodb.net

新しいクラスターの場合、レプリカセットとシャードの名前がクラスターの名前から派生することはありません。新しい名前には、6 文字の英数字 ID が使用されます。

プライベート接続文字列は次の形式に従います。

mongodb://xyx456-shard-00-00-pri.ab123.mongodb.net:27017
mongodb+srv://xyx456-pri.ab123.mongodb.net

ab123 の前の -pri重要です。この形式を使用する URI は、ピアリングされたネットワーク内でアクセス可能なプライベート IP アドレスに解決されます。クラスターにネットワークピアリングを設定する場合、ピアリングを利用するには、クラスターに接続する際に新しいホスト名を使用する必要があります。

重要

新しいクラスターの場合、レプリカセットとシャードの名前がクラスターの名前から派生することはありません。新しい名前には、6 文字の英数字 ID が使用されます。

AWS PrivateLink 接続文字列は次の形式に従います。

mongodb://pl-0-us-east-1a.ab123.mongodb.net:1024
mongodb+srv://pl-0-us-east-1a.ab123.mongodb.net

プライベートエンドポイントのリージョン化設定を有効にすると、AWS PrivateLink 接続文字列は次の形式に従います。

mongodb://pl-0-us-west-1.ab123.mongodb.net:1024
mongodb+srv://cluster0-pl-0-us-west-1.ab123.mongodb.net

この形式を使用する URI は、PrivateLink が設定された AWS VPC 経由でアクセスできますが、ピアリングされた他の VPC からもアクセスが順次可能となります。

Azure Private Link 接続文字列は次の形式に従います。

mongodb://pl-0-eastus2.ab123.mongodb.net:1024
mongodb+srv://pl-0-eastus2.ab123.mongodb.net

プライベートエンドポイントのリージョン化設定を有効にすると、Azure Private Link 接続文字列は次の形式に従います。

mongodb://pl-0-eastus2.ab123.mongodb.net:1024
mongodb+srv://cluster0-pl-0-eastus2.ab123.mongodb.net

この形式を使用するURIは、Private Link が設定された Azure VNet 経由でアクセスできますが、ピアリングされた他の VNet からもアクセスが順次可能となります。

2020 年 3 月 31 日より前は、Atlas の接続文字列は次のように記述されていました。

Amazon Web Services

foo-shard-00-00-ab123.mongodb.net
foo-ab123.mongodb.net

Azure

foo-shard-00-00-ab123.azure.mongodb.net
foo-ab123.azure.mongodb.net

Google Cloud

foo-shard-00-00-ab123.gcp.mongodb.net
foo-ab123.gcp.mongodb.net

プライベート専用モードを有効にした場合、これらのホスト名はピアリングされたネットワーク IP アドレスに解決されます。このモードを無効にすると、ホスト名はパブリック IP アドレスに解決されます。

アプリケーションがピアリング専用モードでレガシー接続文字列を使用している場合、ピアリング接続文字列用のプライベート IP に切り替えます

レガシー接続文字列が存在しており、クラウドプロバイダーを変更する場合は、接続文字列に.gcpまたは.azureを含める必要があります。次のいずれかを実行します。

  • Google Cloud または Azure への移行

  • Google Cloud または Azure からの移行

    注意

    どちらの操作でも、接続文字列を変更する場合があります。Atlas UI で、アップグレード完了後にクラスターのConnectをクリックし、アップデートされた接続文字列を表示します。

下記の条件によって異なります。

  • 現在のクラスターが使用しているクラウドプロバイダー

  • クラスターを作成したとき

2020 年 11 月 3 日にマルチクラウド クラスターが導入される前にクラスターを作成し、かつ、そのクラスターが Google Cloud または Azure で実行されている場合。

  1. クラスタービルダを開きます。

  2. クラスターを編集します。

  3. ターゲットのクラウドプロバイダーから読み取り専用ノードを追加します。

    注意

    レガシーバックアップを使用している場合は、現在のクラウドプロバイダーに 1 つのノードを残し、残りをターゲットのクラウドプロバイダーに移動させます。

  4. 変更内容を確認して送信します。

  5. 生成されたカンマ区切りの URI 接続文字列をコピーします。

  6. アプリケーション内の接続文字列をこの新しい標準接続文字列に置き換えます。

    これにより、アプリケーションは複数のクラウドプロバイダーのノードに接続できるようになります。

  7. アプリケーションを再起動します。

  8. アプリケーションが Atlas に接続できることを確認します。

  9. 最初の変更が完了したら、クラスターを再構成します。

    • 元のクラウドプロバイダーを使用して、選挙可能なノードをすべて削除します。

    • ターゲットのクラウドプロバイダーの読み取り専用ノードを削除します。

    • ターゲットのクラウドプロバイダーを使用して、同じ数の選挙可能なノードを追加します。

    注意

    レガシーバックアップを使用している場合は、新しいバックアップが作成されるまで待ってから、残りのノードを対象のクラウドプロバイダーに移動します。

  10. 変更内容を確認して送信します。

  11. 生成されたカンマ区切りの URI 接続文字列をコピーします。

  12. アプリケーション内の URI 接続文字列を、この新しい URI 接続文字列に置き換えます。

  13. アプリケーションを再起動します。

  14. アプリケーションが Atlas に接続できることを確認します。

次のいずれかに当てはまる場合は、接続文字列は変更されず、クラスターのダウンタイムは発生しません。

  • クラスターはAWSで実行されます。

  • クラスターは任意のクラウドプロバイダーで実行されますが、作成されたのは 11 月 112 日、2020 以降です。

クラスターのクラウドプロバイダーを変更するには、以下の手順を行います。

  1. クラスタービルダを開きます。

  2. クラスターを編集します。

  3. クラウドプロバイダーを変更します。

  4. 変更内容を確認して送信します。

戻る

FAQ: 請求