パク・ヒョンテク
TWIGFARMのシニア・フルスタック・エンジニア
MongoDB Atlas にはいくつかのネットワークセキュリティオプションがあります。その 1 つが従来の IP ホワイトリストです。これは、MongoDB Atlas にアクセスする必要があるビジネスロジックに静的 IP アドレスが設定されている場合に非常に便利です。または、データベースにアクセスするように0.0.0.0/0を設定すると、データベースが一般に公開されます。これは非常に危険なので避けるべきです。
Twigfarmでは、AWSラムダを頻繁に使用しています。ラムダが MongoDB Atlas データベースにアクセスする必要がある場合がありました。既にご存知かもしれませんが、AWS EC2 とは異なり、AWS Lambda には静的 IP アドレスを設定することはできません。AWS NAT Gateway を使用することも可能ですが、少し手間がかかるため、この記事では説明しません。このトピックについては、機会があれば後で取り上げます。
Prerequisites
- データベースは MongoDB アトラス上にセットアップされています
- MongoDB アトラス接続文字列を用意してください
ラムダ関数を作成する
MongoDB Atlas データベースにアクセスしようとするラムダ関数を作成しましょう。残念ながら、MongoDB Atlas データベースではまだこの接続が許可されていないため、この関数は動作せず、タイムアウトになります。
Lambda コードは次のとおりです。コードスニペットは以下からコピーされます ここに そして修正されました。
次のコードを実行するには MongoDB Nods.js ドライバーが必要です。次のリンクを参照してください。 https://www.npmjs.com/package/mongodb
ラムダでサードパーティのライブラリを使用するには、ライブラリをレイヤーに配置する方が好きです。ラムダ関数のレイヤーについては、次のリンクを参照していただけますか。 https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html
次に、MONGODB_URI を MongoDB アトラス接続文字列に設定します。
次に、をクリックします テスト ボタンをクリックしてラムダ関数を実行します。以前にテストケースを作成したことがない場合は、すべてをそのままにして、テストケースに名前を付けて保存してください。次に、をクリックします。 テスト ボタンをもう一度押します。
Lambda は MongoDB Atlas データベースでホワイトリストに登録されていないため、次のようなタイムアウト応答が返されるはずです。
VPC を作成する
に移動 AWS ポリ塩化ビニル。次に、をクリックします。 VPC の作成 ボタン。
ここでは、簡単にするために、パブリックサブネットがいくつかありますが、プライベートサブネットはありません。
これらは VPC を作成した結果であり、状況は MongoDB アトラスで使われる文字列です。
MongoDB アトラスで VPC ピアリングを作成する
MongoDB Atlas にログインし、ラムダ関数に接続するプロジェクトを選択します。をクリックします。 ネットワークアクセス そして選択してください ピアリング タブ。VPC ピアリング接続は既にいくつかありますが、おそらくあなたにはないでしょう。をクリックします。 ピアリング接続を追加 ボタンをクリックして新しい接続を作成します。
選ぶ AWS。クリック [次へ]。
アカウント ID、VPC ID、および VPC CIDR に上記の VPC 情報を入力します。次に、をクリックします。 インタクト・ピアリング。
AWS でピアリング接続リクエストを受け付ける
さあ、戻ってください AWS ポリ塩化ビニル そして、ピアリング接続を選択します。ピアリング接続を選択し、 [アクション] そして選択してください リクエストを受け付ける。
ステータスが次のように変更されたことがわかります アクティブ。
ルートテーブルを設定する
これは VPC ピアリングの最後のステップです。に進んでください。 AWS ポリ塩化ビニル 次に、を選択します ルートテーブル。VPC のルートテーブルを選択し、をクリックします。 ルートの編集 それから ルートを追加。
MongoDB アトラスピアリング接続から推奨する VPC CIDR 値を追加します。私の場合は、 192.168.248.0/21 の場合 先 フィールド。を選択してください。 ピアリング接続 と、のピアリング接続 ID ターゲット フィールド。
ラムダの VPC の設定
これで接続が完了しました。Lambda に戻って VPC の設定を行いましょう。
作成したラムダに戻って選択してください 設定 そして VPC。次に、をクリックします。 [編集] ボタン。
次に、VPC 情報を入力してクリックします [保存] ボタン。
最終テスト
これで、ラムダデータベースと MongoDB アトラスデータベースが接続されました。この記事の冒頭で行ったのと同じテストを行いましょう。これで、ログに「サーバーに接続しました」と表示されます。
VPC ピアリング接続の詳細については、MongoDB Atlas チュートリアルも参照してください。 https://www.mongodb.com/docs/atlas/security-vpc-peering。