Lambda와 Amazon MSK 사용
Lambda와 Amazon MSK 사용
Amazon Managed Streaming for Apache Kafka(Amazon MSK)는 Apache Kafka로 스트리밍 데이터를 처리하는 애플리케이션을 빌드·실행하는 데 사용할 수 있는 완전 관리형 서비스입니다. Amazon MSK는 Kafka 클러스터의 설정, 확장, 관리를 단순화합니다. 또한 여러 가용 영역과 AWS Identity and Access Management(IAM)로 보안을 위해 애플리케이션을 쉽게 구성할 수 있게 해줍니다.
본문
이 장은 Lambda 함수의 이벤트 소스로 Amazon MSK 클러스터를 사용하는 방법을 설명합니다. Amazon MSK를 Lambda와 통합하는 일반적인 과정은 다음 단계로 이루어집니다.
- 클러스터 및 네트워크 설정 – 먼저 Amazon MSK 클러스터를 설정합니다. 여기에는 Lambda가 클러스터에 접근할 수 있도록 올바른 네트워킹 구성을 포함합니다.
- 이벤트 소스 매핑 설정 – 그다음 Lambda가 Amazon MSK 클러스터를 함수에 안전하게 연결하는 데 필요한 이벤트 소스 매핑 리소스를 만듭니다.
- 함수 및 권한 설정 – 마지막으로 함수가 올바르게 설정되었고 실행 역할에 필요한 권한이 있는지 확인합니다.
이제 Lambda 콘솔이나 Amazon MSK 콘솔에서 직접 Amazon MSK 이벤트 소스 매핑을 만들고 관리할 수 있습니다. 두 콘솔 모두 간소화된 구성 과정을 위해 필요한 Lambda 실행 역할 권한 설정을 자동으로 처리하는 옵션을 제공합니다.
Amazon MSK 클러스터와 Lambda 통합 설정 예제는 '튜토리얼: Amazon MSK 이벤트 소스 매핑을 사용해 Lambda 함수 호출', AWS Compute Blog의 'Using Amazon MSK as an event source for AWS Lambda', Amazon MSK Labs의 'Amazon MSK Lambda Integration'을 참고하세요.
이 페이지의 내용:
- 예제 이벤트
- Lambda용 Amazon MSK 클러스터 및 Amazon VPC 네트워크 구성
- Amazon MSK 이벤트 소스 매핑용 Lambda 권한 구성
- Lambda용 Amazon MSK 이벤트 소스 구성
- 튜토리얼: Amazon MSK 이벤트 소스 매핑을 사용해 Lambda 함수 호출
예제 이벤트
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
]
}
]
}
]
}
}