

# Amazon MSK에서 Lambda 사용
<a name="with-msk"></a>

[Amazon Managed Streaming for Apache Kafka(Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html)는 Apache Kafka를 사용하여 스트리밍 데이터를 처리하는 애플리케이션의 구축 및 실행을 위해 사용할 수 있는 완전관리형 서비스입니다. Amazon MSK는 Kafka 클러스터의 설정, 스케일링, 관리를 간소화합니다. 또한 Amazon MSK는 여러 Availability Zones에 맞게, 그리고 AWS Identity and Access Management(IAM)를 통한 보안을 위해 애플리케이션을 쉽게 구성할 수 있도록 도와줍니다.

이 장에서는 Amazon MSK 클러스터를 Lambda 함수의 이벤트 소스로 사용하는 방법을 설명합니다. Amazon MSK를 Lambda와 통합하는 일반적인 프로세스에는 다음 단계가 포함됩니다.

1. **[클러스터 및 네트워크 설정](with-msk-cluster-network.md)** - 먼저 [Amazon MSK 클러스터](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html)를 설정합니다. 여기에는 Lambda가 클러스터에 액세스할 수 있도록 올바른 네트워킹 구성이 포함됩니다.

1. **[이벤트 소스 매핑 설정](with-msk-configure.md)** - 그런 다음 Lambda가 Amazon MSK 클러스터를 함수에 안전하게 연결하는 데 필요한 [이벤트 소스 매핑](invocation-eventsourcemapping.md) 리소스를 생성합니다.

1. **[함수 및 권한 설정](with-msk-permissions.md)** - 마지막으로 함수가 올바르게 설정되었고 [실행 역할](lambda-intro-execution-role.md)에 필요한 권한이 있는지 확인합니다.

**참고**  
이제 Lambda 또는 Amazon MSK 콘솔에서 직접 Amazon MSK 이벤트 소스 매핑을 생성 및 관리할 수 있습니다. 두 콘솔 모두 보다 간편한 구성 프로세스를 위해 필요한 Lambda 실행 역할 권한 설정을 자동으로 처리하는 옵션을 제공합니다.

Amazon MSK 클러스터와 Lambda 통합을 설정하는 방법의 예는 [자습서: Amazon MSK 이벤트 소스 매핑을 사용하여 간접적으로 Lambda 함수 간접 호출](services-msk-tutorial.md), AWS Compute Blog의 [Using Amazon MSK as an event source for AWS Lambda](https://aws.amazon.com/blogs/compute/using-amazon-msk-as-an-event-source-for-aws-lambda/) 및 Amazon MSK Labs의 [ Amazon MSK Lambda Integration](https://amazonmsk-labs.workshop.aws/en/msklambda.html)을 참조하세요.

**Topics**
+ [예제 이벤트](#msk-sample-event)
+ [Lambda를 위한 Amazon MSK 클러스터 및 Amazon VPC 네트워크 구성](with-msk-cluster-network.md)
+ [Amazon MSK 이벤트 소스 매핑에 대한 Lambda 권한 구성](with-msk-permissions.md)
+ [Lambda용 Amazon MSK 이벤트 소스 구성](with-msk-configure.md)
+ [자습서: Amazon MSK 이벤트 소스 매핑을 사용하여 간접적으로 Lambda 함수 간접 호출](services-msk-tutorial.md)

## 예제 이벤트
<a name="msk-sample-event"></a>

Lambda는 함수를 간접 호출할 때 이벤트 파라미터의 메시지 배치를 보냅니다. 이벤트 페이로드에는 메시지 배열이 포함됩니다. 각 배열 항목에는 Amazon MSK 주제 및 파티션 식별자에 대한 세부 정보와 함께 타임스탬프 및 base64로 인코딩된 메시지가 포함됩니다.

```
{
   "eventSource":"aws:kafka",
   "eventSourceArn":"arn:aws:kafka:us-east-1:123456789012:cluster/vpc-2priv-2pub/751d2973-a626-431c-9d4e-d7975eb44dd7-2",
   "bootstrapServers":"b-2.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092,b-1.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092",
   "records":{
      "mytopic-0":[
         {
            "topic":"mytopic",
            "partition":0,
            "offset":15,
            "timestamp":1545084650987,
            "timestampType":"CREATE_TIME",
            "key":"abcDEFghiJKLmnoPQRstuVWXyz1234==",
            "value":"SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==",
            "headers":[
               {
                  "headerKey":[
                     104,
                     101,
                     97,
                     100,
                     101,
                     114,
                     86,
                     97,
                     108,
                     117,
                     101
                  ]
               }
            ]
         }
      ]
   }
}
```