[파이썬] AWS Lambda와 DynamoDB를 통한 실시간 데이터 처리

AWS Lambda와 DynamoDB는 실시간 데이터 처리를 위한 강력한 도구입니다. Lambda는 이벤트를 트리거로 사용하여 동적으로 확장되는 서버리스 아키텍처를 구축하는 데 사용됩니다. DynamoDB는 높은 확장성과 신뢰성을 제공하는 완전 관리형 NoSQL 데이터베이스입니다.

Lambda와 DynamoDB의 연결

우리의 목표는 Lambda 함수를 사용하여 들어오는 데이터를 실시간으로 처리하고 DynamoDB에 저장하는 것입니다. 먼저 Lambda와 DynamoDB를 연결해 보겠습니다.

  1. AWS 콘솔에 로그인하고 Lambda 서비스로 이동합니다.
  2. “함수 만들기”를 클릭하고, “기본 설정”으로 이동하여 함수를 생성하세요.
  3. 함수 이름과 설명을 입력한 후 “실행 역할”에서 “새 역할 만들기”를 선택합니다.
  4. “실행 역할”을 만들고 나면 Lambda 함수의 세부 정보에 진입합니다. 우리는 여기서 코드를 작성하게 됩니다.

Lambda 코드 작성

이제 Lambda 함수를 작성해 보겠습니다. 이 예시에서는 Python을 사용할 것입니다.

import json
import boto3

def lambda_handler(event, context):
    # 이벤트에서 데이터를 추출합니다.
    data = json.loads(event['body'])
    
    # DynamoDB 클라이언트를 생성합니다.
    dynamodb = boto3.client('dynamodb')
    
    # 데이터를 DynamoDB에 저장합니다.
    response = dynamodb.put_item(
        TableName='my-table',
        Item={
            'id': {'S': data['id']},
            'name': {'S': data['name']}
        }
    )
    
    # 저장 결과를 리턴합니다.
    return {
        'statusCode': 200,
        'body': json.dumps('Data saved successfully')
    }

위 코드는 트리거된 Lambda 함수에서 데이터를 추출하고, DynamoDB에 저장하는 간단한 예시입니다.

데이터 송수신

Lambda 함수와 DynamoDB 테이블이 작동하는 방식을 이해했으니, 이제 데이터를 Lambda 함수로 전송하고 결과를 확인하는 방법을 알아보겠습니다.

  1. AWS 콘솔에서 API Gateway 서비스로 이동합니다.
  2. “API 생성”을 클릭하고, 새로운 REST API를 설정합니다.
  3. 리소스를 생성하고, 해당 리소스에 대한 POST 메서드를 설정합니다.
  4. Lambda 함수를 연결합니다.
  5. API 배포를 생성하고, API 엔드포인트를 얻습니다.

API Gateway를 사용하여 데이터를 전송할 수 있으며, 엔드포인트에 POST 요청을 보내고 Lambda 함수에서 처리된 결과를 확인할 수 있습니다.

요약

AWS Lambda와 DynamoDB는 실시간 데이터 처리를 위한 강력한 조합입니다. 이 문서에서는 Lambda 함수를 사용하여 데이터를 추출하고 DynamoDB에 실시간으로 저장하는 방법을 알아보았습니다.

Lambda와 DynamoDB를 사용하여 데이터 파이프라인을 구축할 수 있으며, 이를 활용하여 원하는 작업을 수행할 수 있습니다. 이러한 서비스를 사용하여 실시간 데이터 처리에 대한 필요성을 충족시킬 수 있습니다.