

# Lambda マネージドインスタンスのランタイム
<a name="lambda-managed-instances-runtimes"></a>

Lambda マネージドインスタンスを使用する場合、Lambda はリクエストを異なる方法で処理します。Lambda マネージドインスタンスは、各実行環境でリクエストを順次処理する代わりに、各実行環境内で複数のリクエストを同時に処理します。この実行モデルの変更により、Lambda マネージドインスタンスを使用する関数は、スレッドセーフ、状態管理、コンテキストの分離、および Lambda (デフォルト) の単一同時実行モデルでは発生しない懸念を考慮する必要があります。さらに、複数同時実行の実装はランタイムによって異なります。

## サポートされている言語
<a name="lambda-managed-instances-supported-runtimes"></a>

Lambda マネージドインスタンスは、次のプログラミング言語とランタイムで使用できます。
+ **Java:** Java 21 以降。
+ **Python:** Python 3.13 以降。
+ **Node.js:** Node.js 22 以降。
+ **.NET:** .NET 8 以降。
+ **Rust:** OS 専用ランタイム `provided.al2023` 以降でサポートされています。

## 言語固有の考慮事項
<a name="lambda-managed-instances-runtime-considerations"></a>

プログラミング言語によって、複数同時実行の実装方法はそれぞれ異なります。適切な同時実行のベストプラクティスを適用するには、選択したプログラミング言語で複数同時実行がどのように実装されるかを理解する必要があります。

**Java**

OS スレッドで単一のプロセスを使用して同時実行を行います。複数のスレッドがハンドラーメソッドを同時に実行するため、状態と共有リソースをスレッドセーフに処理する必要があります。

**Python**

各同時リクエストが個別のプロセスで実行される複数の Python プロセスが使用されます。これにより、ほとんどの同時実行の問題から保護できますが、`/tmp` ディレクトリなどの共有リソースに注意が必要です。

**Node.js**

非同期実行で[ワーカースレッド](https://nodejs.org/api/worker_threads.html)を使用します。同時リクエストはワーカースレッド全体に分散され、さらに各ワーカースレッドは同時リクエストを非同期で処理できるため、状態と共有リソースを安全に処理する必要があります。

**.NET**

複数同時リクエストの非同期処理で .NET タスクを使用します。状態と共有リソースを安全に処理する必要があります。

**Rust**

[Tokio](https://tokio.rs/) を搭載した非同期タスクで単一のプロセスを使用します。ハンドラー値は、`Clone` \+ `Send` である必要があります。

## 次のステップ
<a name="lambda-managed-instances-runtime-next-steps"></a>

各ランタイムの詳細については、次のトピックを参照してください。
+ [Lambda マネージドインスタンスの Java ランタイム](lambda-managed-instances-java-runtime.md)
+ [Lambda マネージドインスタンスの Node.js ランタイム](lambda-managed-instances-nodejs-runtime.md)
+ [Lambda マネージドインスタンスの Python ランタイム](lambda-managed-instances-python-runtime.md)
+ [Lambda マネージドインスタンスの .NET ランタイム](lambda-managed-instances-dotnet-runtime.md)
+ [Lambda マネージドインスタンスの Rust サポート](lambda-managed-instances-rust.md)