FAQ:接続文字列オプション
項目一覧
- クラスターに複数の接続文字列があるのはなぜですか?
- これは、ピアリング専用モードの Google Cloud または Azure クラスターにとってどのような意味がありますか?
- VNet ピアリングされた Azure クラスターは複数のリージョンにまたがることはできますか。
- ピアリング専用モードを無効にするにはどうすればよいですか。
- カスタム DNS を使用する場合、AWS VPC ピアリングにどのような影響がありますか。
- アプリケーションが使用する接続文字列を識別するにはどうすればよいですか?
-
M0
、M2
、またはM5
クラスターから別のクラウドプロバイダーに移行する場合、接続文字列をアップデートする必要がありますか。 - 専用クラスターから別のクラウドプロバイダーに移行する場合、接続文字列を更新する必要がありますか?
Atlas には複数の接続文字列が用意されています。これらの文字列により、パブリックとプライベートの両方のコンテキストからクラスターに接続できます。Atlas は常にクラスターにユニークな接続文字列を割り当てるため、2 つのクラスターがAtlasとの間でホスト名や接続文字列を共有することはありません。
クラスターに複数の接続文字列があるのはなぜですか?
Atlas に接続するには、アプリケーションをクラスターと通信するための URI に向けます。Atlas は、複数のノードまたはホストを持つクラスターを作成します。各ノードは IP アドレスに解決される、独自のホスト名を持ちます。Atlas が接続する接続文字列と呼ばれる URI には、複数のホスト名が含まれる場合があります。許可された IP アドレスからクラスター ホストへの接続を受け入れるように、Atlas を設定します。
Atlas は、認証とTLS を通じてパブリック IP アドレスからの接続を保護します。プライベート IP アドレスに接続する場合は、以下を使用できます。
これらの機能はすべて、安全なネットワーク内の内部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 アドレスに解決されます。これらの接続文字列は、プライベートエンドポイントに接続するアプリケーションで使用します。
これは、ピアリング専用モードの Google Cloud または Azure クラスターにとって何を意味しますか。
2020 年 3 月 31 日より前は、ピアネットワーク化された Azure または Google Cloud クラスター上のデータベースに接続するには、ピアリング専用モードを有効にする必要がありました。このモード:
影響を受けるグローバルDNS 解決と
ピアリングされたネットワーク外のデータベース接続を制限します。
複数ホライズンではこれらの制限を解除し、次の追加機能のロックを解除します。
複数ホライゾンを活用するには、以下のタスクを実行します。
アプリケーションの既存の接続文字列を更新して、 ピアリング接続文字列にプライベート IP を使用します。
「クラスターに複数の接続文字列があるのはなぜですか」で説明されている文字列を使用して接続します。
注意
現時点では、既存のピアリング対応接続文字列を使用してクラスターに接続し続けることが可能です。ピアリング専用モードでは、複数ホライズンで改善された機能と緩和された制限を利用できなくなります。新機能を使用してレガシー制限を取り除くには、MongoDB では新しい接続文字列を使用する必要があります。
VNet ピアリングされた Azure クラスターは複数のリージョンにまたがることができますか。
はい。
ピアリング接続文字列用のプライベート IPを使用して接続するようにアプリケーションを変更します。この変更により、アプリケーションは UI または API を使用してピアリングされたネットワークから接続できるようになります。
より多くのリージョンに拡張するには、まず既存の Azure クラスターでピアリング専用モードを無効にします。
ピアリング専用モードを無効にするにはどうすればよいですか。
ピアリング専用モードを無効にするには、以下を使用します。
Atlas Atlasで、プロジェクトの {0 ページにGoします。GoClusters
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
まだ表示されていない場合は、サイドバーの [Clusters] をクリックします。
[ Clusters (クラスター) ] ページが表示されます。
ピアリング接続文字列にプライベート IP を使用するようにすべてのアプリケーションを更新する。
Atlas クラスターを使用するアプリケーション内のすべての URL を変更して、ピアリング接続文字列用のプライベート IP を使用します。
Atlas で、Project Settings ページに移動します。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
Projects メニューの横にある Options メニューをクリックし、 Project Settings をクリックします。
[ Project Settings ]ページが表示されます。
プロジェクト内のすべてのクラスターが MongoDB 5.0 以降を使用していることを確認します。
すべてのクラスターとそれらの 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", ... } ] }
ピアリング接続文字列にプライベート IP を使用するようにすべてのアプリケーションを更新する。
Atlas クラスターを使用するアプリケーション内のすべての URL を変更して、ピアリング接続文字列用のプライベート IP を使用します。
クラスターでプライベート IP モードを無効にします。
プライベート 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 }
カスタム DNS を使用する場合、AWS VPC ピアリングにはどのような影響がありますか。
2020 年 3 月 31 日より前は、カスタム DNS サービスと Atlas とピアリングされた VPC を使用して AWS 内に配置されたアプリケーションは、プライベート IP アドレスで接続することはできませんでした。
カスタム DNS はパブリック IP アドレスに解決されました。
AWS の内部 DNS がプライベート IP アドレスに解決されました。
AWS にカスタム DNS サービスを使用して展開されたアプリケーションでは、ピアリング接続文字列にプライベート IP を使用する必要があります。
これらの文字列を表示するには、
Atlas で、Project Settings ページに移動します。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
Projects メニューの横にある Options メニューをクリックし、 Project Settings をクリックします。
[ Project Settings ]ページが表示されます。
アプリケーションが使用する接続文字列を識別するにはどうすればよいですか?
接続文字列の 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 接続文字列
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 接続文字列
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 |
| ||
Azure |
| ||
Google Cloud |
|
プライベート専用モードを有効にした場合、これらのホスト名はピアリングされたネットワーク IP アドレスに解決されます。このモードを無効にすると、ホスト名はパブリック IP アドレスに解決されます。
アプリケーションがピアリング専用モードでレガシー接続文字列を使用している場合、ピアリング接続文字列用のプライベート IP に切り替えます。
M0
、M2
、または M5
クラスターから別のクラウドプロバイダーに移行する場合、接続文字列をアップデートする必要がありますか。
レガシー接続文字列が存在しており、クラウドプロバイダーを変更する場合は、接続文字列に.gcp
または.azure
を含める必要があります。次のいずれかを実行します。
Google Cloud または Azure への移行
Google Cloud または Azure からの移行
注意
どちらの操作でも、接続文字列を変更する場合があります。Atlas UI で、アップグレード完了後にクラスターのConnectをクリックし、アップデートされた接続文字列を表示します。
専用クラスターから別のクラウドプロバイダーに移行する場合、接続文字列を更新する必要がありますか?
下記の条件によって異なります。
現在のクラスターが使用しているクラウドプロバイダー
クラスターを作成したとき
2020 年 11 月 3 日より前に作成された GCP または Azure クラスター
2020 年 11 月 3 日にマルチクラウド クラスターが導入される前にクラスターを作成し、かつ、そのクラスターが Google Cloud または Azure で実行されている場合。
クラスタービルダを開きます。
クラスターを編集します。
ターゲットのクラウドプロバイダーから読み取り専用ノードを追加します。
注意
レガシーバックアップを使用している場合は、現在のクラウドプロバイダーに 1 つのノードを残し、残りをターゲットのクラウドプロバイダーに移動させます。
変更内容を確認して送信します。
生成されたカンマ区切りの URI 接続文字列をコピーします。
アプリケーション内の接続文字列をこの新しい標準接続文字列に置き換えます。
これにより、アプリケーションは複数のクラウドプロバイダーのノードに接続できるようになります。
アプリケーションを再起動します。
アプリケーションが Atlas に接続できることを確認します。
最初の変更が完了したら、クラスターを再構成します。
元のクラウドプロバイダーを使用して、選挙可能なノードをすべて削除します。
ターゲットのクラウドプロバイダーの読み取り専用ノードを削除します。
ターゲットのクラウドプロバイダーを使用して、同じ数の選挙可能なノードを追加します。
注意
レガシーバックアップを使用している場合は、新しいバックアップが作成されるまで待ってから、残りのノードを対象のクラウドプロバイダーに移動します。
変更内容を確認して送信します。
生成されたカンマ区切りの URI 接続文字列をコピーします。
アプリケーション内の URI 接続文字列を、この新しい URI 接続文字列に置き換えます。
アプリケーションを再起動します。
アプリケーションが Atlas に接続できることを確認します。
2020 年 11 月 2 日以降に作成された AWS とクラスター
次のいずれかに当てはまる場合は、接続文字列は変更されず、クラスターのダウンタイムは発生しません。
クラスターはAWSで実行されます。
クラスターは任意のクラウドプロバイダーで実行されますが、作成されたのは 11 月 112 日、2020 以降です。
クラスターのクラウドプロバイダーを変更するには、以下の手順を行います。
クラスタービルダを開きます。
クラスターを編集します。
クラウドプロバイダーを変更します。
変更内容を確認して送信します。