良輔(51)34この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。モバイルアプリサービス部の五十嵐です。Serviceの組み合わせ)を、DocumentDB(MongoDB)に置き換えたいという場合も多いのではないでしょうか。VPCの考慮事項(起動速度やプライベートIPの枯渇など)を踏まえるとアプリケーションの特性によってはインターネット経由で接続できたほうが望ましい場合もあります。そこで、NLB経由でDocumentDBに接続する方法を検証しました。ちなみに公式のドキュメントではSSHトンネルを使用できますとあります。オペレーション用でしたらこれで十分なのですが、アプリケーションから接続する場合は踏み台となるインスタンス(EC2など)がボトルネックとなるため、NLBの方が望ましいと考えました。専用で、パブリックエンドポイントを現在サポートしていません。クラスターに直接接続することはできません。トンネルを使用できます。クラスターへの接続」を参照してください。検証Clusterの作成~接続確認まずはDocumentDBのClusterを作成し、VPC内のEC2から接続できることを確認します。Clusterの作成手順は誰かが書くことを期待して割愛します。Linux)にsshしてターミナルに接続します。shellをインストールし、CAの公開鍵をダウンロードして、DocumentDBに接続できることを確認します。コンソールが表示されたら接続成功です。接続できない場合はSecurityGroupの設定などを確認してみてください。トラブルシューティングのドキュメントもあります。トンネルを使用した接続せっかくなのでSSHトンネルを使用した接続を試してみましょう。いま、先ほど使用したEC2のホスト名をworkとして、sshで接続できる状態になっています。workを踏み台にしてDocumentDBに接続できる状態にします。27017:[DocumentDBのClusterのドメイン]:27017これで、ローカル(localhost)の27017ポートを、リモート(work)の27017ポートに転送する状態になります。shellがインストールされていない場合は、こちらの手順に従ってインストールします。shellでホストをlocalhostにして接続します。オプションが必要になります。--sslAllowInvalidHostnamesコンソールが表示されたら接続成功です。CompassというMongoDBのクライアントアプリケーションでもSSHトンネルで接続できました。NLBを使用した接続それでは、本題のNLBを使用した接続を試してみましょう。大まかな流れは以下のとおりです。具体的には以下のリソースを作成します。接続するためのCAの公開鍵も先ほどのEC2(work)から取得します。~/.ssh/rds-combined-ca-bundle.pemNLBのドメインを指定してDocumentDBに接続します。オプションが必要な点はSSHトンネルの場合と同じです。--sslAllowInvalidHostnamesコンソールが表示されたら接続成功です。追記ただしこの方法では、プライベートIPが変わると疎通できなくなること、エンドポイントがインターネットに露出してしまうためセキュアではないこと、などの問題点がありますのでご留意ください。おわりに本記事では、インターネット(NLB)経由でDocumentDBに接続できることを確認できました。次はLambdaからmongodbのクライアントライブラリを使ってインターネット経由で接続する方法を試してみたいと思います。516,423バックエンドがメインのエンジニアです。CX事業本部でSaaS開発をしています。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。使いたいときの注意点を書きました。本が出ていたので読んでみたところよかったので紹介させていただきます。