AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

AWS Lambda で接続を管理する

次のベストプラクティスを使用して、AWS Lambda と Atlas 間の接続を適切に管理します。

  • AWS Lambdaハンドラー関数 の外部でMongoDBサーバーへのクライアントを定義します。

    関数を呼び出すたびに新しいクライアントオブジェクトを定義しないでください。定義すると、ドライバーは関数を呼び出すごとに新しいデータベース接続を作成します。こうなると、コストが高くなり、アプリケーションがデータベース接続制限を超えてしまう可能性があります。最高のパフォーマンスを得るには、次のガイドラインに従ってください。

    1. クライアントオブジェクトを一度だけ作成します。

    2. オブジェクトを保存し、関数の呼び出し全体でクライアントを再利用できるようにします。

    この接続例では、既存のデータベース接続を再利用して、データベースとの通信を高速化し、データベースへの接続数をアプリケーション トラフィックに関して適切なレベルに維持します。

  • 多数のシャードを含むシャーディングされたクラスターに接続するLambda関数がある場合、パフォーマンスの問題が発生する可能性があります。例、シャーディングされたクラスターが 10 個ある場合、ドライバーはデフォルトで 30 個の インスタンスすべてに接続します。接続文字列に オプションを使用して、ドライバーが接続するホストの最大数を設定できます。ドライバーのパフォーマンスを向上させるには、mongos を設定します。srvMaxHosts srvMaxHosts=3(例: )。
    mongodb+srv://<db_username>:<db_password>@<clusterName>.mongodb.net/?retryWrites=true&w=majority&srvMaxHosts=3
  • Atlas クラスターへのネットワーク アクセスを制限します。

    Atlas クラスターと AWS Lambda 関数間のネットワークピアリング接続 を使用してプライベート ネットワーク経由で Atlas クラスターに接続するか、またはプライベートエンドポイントを使用して、IP アクセス リストからプライベート IP アドレスのみを許可できるようにします。

    プライベートネットワークを使用しない場合は、マッピングされた Elastic IPアドレスを使用して NAT ゲートウェイ 経由で Atlas クラスターに接続することを検討してください。それ以外の場合は、すべてのIPアドレス(...0 000/0 )にサービス クラスターへのアクセスを許可する必要があります。

    警告

    0.0.0.0/0IP アクセス リストに を追加すると、パブリック インターネットのどこからでもクラスターにアクセスできるようになります。どこからでもアクセスを許可する場合は、すべてのデータベースユーザーについて必ず強力な認証情報を使用してください。

注意

プロジェクトアクセスリストに IPv4 /0 CIDR(たとえば、0.0.0.0/0 または 10.0.0.0/0)を追加すると、Atlas は、そのプロジェクトに直接ロールが付与されているすべてのユーザー、またはチーム(そのチームにプロジェクトのロールが付与されている場合)を通じて間接的にロールが付与されているすべてのユーザーに、警告メールを送信します。

  • maxIdleTimeMS 60000を1 に設定すると、アイドルタイムが 分経過した後に接続が自動的に閉じられます。 を調整すると、サーバーレス関数からのタイムアウトmaxIdleTimeMS エラーの発生を減らすことができます。
  • 統合 AWS アクセスを設定し、可能な場合はAWS IAM 認証を使用します。

    Lambdaで認証情報をハードコーディングする代わりに、 AWS IAMロール を使用してAtlasクラスターに接続できますハードコードされた認証情報は、 AWS Lambda環境にアクセスするすべてのユーザーが表示できるため、セキュリティ上のリスクが生じる可能性があります。 AWS IAM認証では、Atlas は想定された IAM ロールを通じてAWS Lambdaにアクセスします。そのため、接続文字列に認証情報は必要ありません。

    Atlas は、 MongoDBバージョン 以降を実行中クラスターのAWS IAM認証をサポートしています。クラスターが要件を満たしている場合は、7.0 Lambda接続にAWS IAM認証を使用することを強くお勧めします。

  • Lambda関数に割り当てられるメモリの量はデフォルトで128 MB になります。 Lambda関数に割り当てられるメモリの量は、128 MB10 から,240 MB の範囲で構成できます。十分なメモリを割り当ててください。メモリを増やして使用可能な仮想 CPU の量を増やすことで、 MongoDBドライバーのパフォーマンスを向上させます。詳しくは「 メモリとコンピューティング能力 」を参照してください。

  • AWS_STS_REGIONAL_ENDPOINTS および AWS_REGION 環境変数を設定する。

#include <mongoc/mongoc.h>
void lambda_handler ()
{
bson_error_t error;
mongoc_init();
// Parse URI
char *uri_string = "your-mongodb-atlas-connection-string";
mongoc_uri_t *uri = mongoc_uri_new_with_error (uri_string, &error);
if (!uri) {
fprintf (stderr, "Failed to parse URI: %s\n", error.message);
return;
}
// Create client
mongoc_client_t *client = mongoc_client_new_from_uri_with_error(uri, &error);
if (!client) {
fprintf(stderr, "Failed to create client: %s\n", error.message);
return;
}
// Perform client operations here
// Cleanup
mongoc_client_destroy(client);
mongoc_uri_destroy (uri);
mongoc_cleanup();
}
このページを評価