

# 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)