[파이썬] AWS Lambda와 SNS를 활용한 알림 시스템 구축

AWS Lambda와 SNS를 사용하여 실시간 알림 시스템을 구축하는 방법에 대해 알아보겠습니다. 이 시스템은 Python 언어를 기반으로 구현됩니다.

Lambda 함수 생성

먼저, AWS Lambda 함수를 생성해야 합니다. 이 함수는 SNS와 연동되어 알림 메시지를 처리할 것입니다. 아래는 Lambda 함수의 예시 코드입니다.

import json

def lambda_handler(event, context):
    # SNS에서 전달된 메시지 추출
    sns_message = event['Records'][0]['Sns']['Message']

    # 처리할 로직 추가
    # 여기서는 단순히 메시지를 로그에 출력하는 예시 코드를 작성합니다.
    print(f"Received message: {sns_message}")

    return {
        'statusCode': 200,
        'body': json.dumps('Notification processed')
    }

위 코드에서는 lambda_handler 함수를 정의하고, 이 함수는 SNS에서 전달된 메시지를 추출하여 처리하는 로직을 포함합니다. 여기서는 단순히 메시지를 로그에 출력하는 예시 코드를 작성하였습니다.

SNS 주제 생성

다음으로, AWS SNS 주제를 생성해야 합니다. SNS 주제에는 알림을 받을 구독자들의 엔드포인트가 등록됩니다. 이 엔드포인트는 Lambda 함수와 연결됩니다.

주제를 생성하고 구독자를 추가하는 방법은 AWS 콘솔을 통해 수행할 수 있습니다. 또는 AWS CLI를 사용하여 다음과 같이 명령어로도 수행할 수 있습니다.

aws sns create-topic --name MyNotificationTopic
aws sns subscribe --topic-arn <ARN of your topic> --protocol lambda --notification-endpoint <ARN of your Lambda function>

위 명령어에서 <ARN of your topic><ARN of your Lambda function>은 각각 생성한 주제와 Lambda 함수의 ARN(Amazon Resource Name)으로 대체해야 합니다.

테스트

이제 알림 시스템을 테스트해보겠습니다. AWS SNS 콘솔 또는 AWS CLI를 사용하여 주제에 메시지를 게시해보세요. Lambda 함수가 호출되고 메시지가 처리되는 것을 확인할 수 있습니다. 또한, Lambda 함수의 실행 로그를 확인하여 메시지가 제대로 로그에 출력되었는지 확인할 수도 있습니다.

결론

이렇게 AWS Lambda와 SNS를 활용하여 알림 시스템을 구축할 수 있습니다. Lambda 함수를 사용하여 SNS 메시지를 처리하면 실시간으로 알림을 받을 수 있으며, 다양한 로직을 추가하여 알림 시스템을 확장할 수도 있습니다.