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

알림 시스템은 모든 기업이 필요로 하는 중요한 요소입니다. 사용자에게 이벤트, 경고, 업데이트 등의 정보를 신속하게 전달함으로써 기업은 효율적인 의사 결정과 프로세스 실행을 할 수 있습니다.

Amazon Web Services(AWS)는 Lambda와 SNS 서비스를 통해 간단하고 확장 가능한 알림 시스템을 구축할 수 있도록 지원합니다. 이 블로그 글에서는 Python을 사용하여 AWS Lambda와 SNS를 통한 알림 시스템을 구축하는 방법에 대해 알아보겠습니다.

1. AWS SNS(Simple Notification Service) 설정

알림 시스템의 핵심 부분은 메시지를 전송할 수 있는 푸시 알림 서비스입니다. 우리는 AWS의 SNS를 사용하여 메시지를 보낼 것입니다.

  1. AWS Management Console에 로그인하고, SNS 서비스로 이동합니다.
  2. “Create topic”을 클릭하여 새로운 토픽을 생성합니다. 토픽은 특정 주제에 대한 메시지를 그룹화하는 용도로 사용됩니다. 예를 들어, “notification_topic”과 같은 이름의 토픽을 생성할 수 있습니다.
  3. 생성한 토픽의 ARN(Amazon Resource Name)을 메모해 둡니다. 이것은 나중에 Lambda 함수에서 사용할 것입니다.

2. AWS Lambda 함수 생성

이제 AWS Lambda에서 알림을 트리거하는 함수를 생성해 보겠습니다.

  1. AWS Management Console에서 Lambda 서비스로 이동합니다.
  2. “Functions” 탭을 클릭하고, “Create function”을 선택합니다.
  3. 다음과 같은 설정을 수행합니다:
    • Function name: 알림 함수의 이름을 입력합니다. 예를 들어, “notification_function”과 같이 할 수 있습니다.
    • Runtime: Python 3.8 또는 원하는 Python 버전을 선택합니다.
    • Execution role: Lambda 함수가 사용할 IAM 역할을 선택하거나 새로운 역할을 만듭니다.
  4. “Create function”을 클릭하여 함수를 생성합니다.

3. Lambda 함수 코드 작성

이제 Lambda 함수의 코드를 작성해 보겠습니다. 이 예제에서는 Python을 사용할 것이므로, 코드는 Python으로 작성됩니다. 다음은 알림 함수의 예시입니다:

import boto3

def lambda_handler(event, context):
    # SNS client 생성
    sns_client = boto3.client('sns')

    # 토픽 ARN 가져오기
    topic_arn = 'YOUR_TOPIC_ARN'

    # 알림 메시지 작성
    message = 'Hello from AWS Lambda!'

    # 알림 전송
    sns_client.publish(
        TopicArn=topic_arn,
        Message=message
    )

위 코드에서 YOUR_TOPIC_ARN을 생성 단계에서 메모한 SNS 토픽의 ARN으로 바꿔야 합니다. 이 함수는 Lambda가 트리거될 때마다 SNS 토픽으로 메시지를 전송합니다.

4. Lambda 함수 트리거 설정

마지막 단계는 Lambda 함수를 트리거하는 방법을 설정하는 것입니다.

  1. Lambda 함수 편집 페이지로 이동합니다.
  2. “Add trigger”을 클릭하고, “SNS”를 선택합니다.
  3. 트리거 구성에서 SNS 토픽을 선택하고, 올바른 토픽 ARN을 입력합니다.
  4. “Add”를 클릭하여 트리거를 추가합니다.

이제 Lambda 함수는 선택한 SNS 토픽에 메시지를 전송할 때마다 트리거됩니다.

5. 테스트

모든 설정이 완료되었으므로 Lambda 함수가 제대로 작동하는지 테스트해 보세요. SNS 토픽에 메시지가 도착할 때마다 Lambda가 트리거되고, 메시지가 선택한 토픽으로 정상적으로 전송될 것입니다.

이제 당신은 AWS Lambda와 SNS를 통해 강력하고 확장 가능한 알림 시스템을 구축하기 위한 필수 단계를 알게 되었습니다. 앞으로 이러한 시스템을 사용하여 업데이트, 경고 등의 알림을 사용하여 기업의 효율성을 높일 수 있습니다.

Happy coding!