

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon SQS FIFO 대기열 및 Lambda 동시성 동작
<a name="fifo-queue-lambda-behavior"></a>

Lambda에서 FIFO(선입선출) 대기열을 사용하면 각 메시지 그룹 내에서 메시지의 정렬된 처리를 보장할 수 있습니다. Lambda 함수는 동일한 메시지 그룹에 대해 여러 인스턴스를 동시에 실행하지 않으므로 순서를 유지합니다. 그러나 여러 메시지 그룹을 병렬로 처리하도록 확장할 수 있으므로 대기열 워크로드를 효율적으로 처리할 수 있습니다. 다음 내용에서는 메시지 그룹 ID와 관련하여 Amazon SQS FIFO 대기열에서 메시지를 처리할 때 Lambda 함수의 동작을 설명합니다.
+ **메시지 그룹당 단일 인스턴스:** 언제든지 Lambda 인스턴스 하나만 특정 메시지 그룹 ID의 메시지를 처리합니다. 이렇게 하면 동일한 그룹 내의 메시지가 순서대로 처리되어 FIFO 시퀀스의 무결성을 유지할 수 있습니다.
+ **여러 그룹의 동시 처리:** Lambda는 여러 인스턴스를 사용하여 여러 메시지 그룹 ID의 메시지를 동시에 처리할 수 있습니다. 즉, Lambda 함수의 한 인스턴스가 한 메시지 그룹 ID의 메시지를 처리하는 동안 다른 인스턴스는 다른 메시지 그룹 ID의 메시지를 동시에 처리하여 Lambda의 동시성 기능을 활용함으로써 여러 그룹을 병렬로 처리할 수 있습니다.

## FIFO 대기열 메시지 그룹화
<a name="fifo-queue-message-grouping"></a>

FIFO 대기열은 메시지가 전송된 정확한 순서로 처리되도록 합니다. **메시지 그룹 ID**를 사용하여 순차적으로 처리해야 하는 메시지를 그룹화합니다.

동일한 메시지 그룹 내의 메시지는 순서대로 처리되며, 이 순서를 유지하기 위해 한 번에 각 그룹의 메시지 하나씩만 처리됩니다.

## FIFO 대기열을 사용한 Lambda 동시성
<a name="lambda-concurrency-fifo-queues"></a>

대기열을 생성한 후 그 대기열에 메시지를 보낼 수 있습니다.

Amazon SQS FIFO 대기열의 메시지를 처리하도록 Lambda 함수를 설정하면 Lambda는 FIFO 대기열에서 제공하는 순서 보장을 준수합니다. 다음 내용에서는 메시지 그룹 ID를 사용하는 경우 Amazon SQS FIFO 대기열의 메시지를 처리할 때 동시성 및 규모 조정 측면에서 Lambda 함수의 동작을 설명합니다.
+ **메시지 그룹 내 동시성:** Lambda 인스턴스는 특정 메시지 그룹 ID에 대해 한 번에 하나의 메시지만 처리합니다. 이렇게 하면 그룹 내의 메시지가 순차적으로 처리됩니다.
+ **규모 조정 및 여러 메시지 그룹:** Lambda는 메시지를 동시에 처리하도록 확장할 수 있지만 이 규모 조정은 다양한 메시지 그룹에서 발생합니다. 메시지 그룹이 여러 개인 경우 Lambda는 여러 그룹을 병렬로 처리할 수 있으며 각 그룹은 별도의 Lambda 인스턴스에서 처리됩니다.

자세한 내용은 *AWS Lambda 운영자 가이드*의 [Lambda의 규모 조정 및 동시성](https://docs.aws.amazon.com/lambda/latest/operatorguide/scaling-concurrency.html)을 참조하세요.

## 사용 사례 예제
<a name="lambda-concurrency-fifo-queues-example"></a>

FIFO 대기열이 동일한 메시지 그룹 ID로 메시지를 수신하고 Lambda 함수의 동시성 한도가 높다고 가정해 보겠습니다(최대 1,000개).

그룹 ID 'A'의 메시지가 처리되고 그룹 ID 'A'의 다른 메시지가 도착하면 첫 번째 메시지가 완전히 처리될 때까지 두 번째 메시지가 새 Lambda 인스턴스를 트리거하지 않습니다.

그러나 그룹 ID 'A' 및 'B'의 메시지가 도착하면 별도의 Lambda 인스턴스에서 두 메시지를 동시에 처리할 수 있습니다.