[파이썬] AWS Lambda와 CloudWatch 이벤트를 활용한 스케줄링 작업

AWS Lambda는 서버리스 아키텍처를 지원하는 서비스로, 애플리케이션 코드를 실행할 수 있는 서버를 관리하지 않고도 코드를 실행할 수 있습니다. CloudWatch는 Amazon Web Services의 모니터링 및 관리 서비스로, 여러 가지 이벤트에 대한 알림을 받거나 자동으로 조치를 취할 수 있습니다. 여기서는 AWS Lambda와 CloudWatch 이벤트를 결합하여 스케줄링 작업을 수행하는 방법을 알아보겠습니다.

스케줄링 작업을 위한 설정

  1. AWS Management Console에 로그인하고 Lambda 서비스로 이동합니다.
  2. “함수 만들기” 버튼을 클릭하고, 적절한 함수 이름을 입력합니다.
  3. “런타임” 드롭다운에서 “Python 3.8”을 선택합니다.
  4. “퍼블릭 및 퍼블릭 서브넷이 있는 VPC”를 선택하거나, 필요에 따라 다른 옵션을 선택합니다.
  5. “함수 생성” 버튼을 클릭합니다.

Lambda 함수 작성

Lambda 함수는 Python으로 작성할 수 있으며, 스케줄링 작업을 처리할 코드를 작성해야 합니다. 예를 들어, 매일 오전 9시에 실행되는 함수를 작성해보겠습니다.

import boto3
import datetime

def lambda_handler(event, context):
    # 현재 시간 가져오기
    current_time = datetime.datetime.now().strftime('%H:%M')
    
    # 원하는 시간과 비교
    if current_time == '09:00':
        # 스케줄링 작업 수행
        perform_scheduled_task()
    
    return {
        'statusCode': 200,
        'body': 'Scheduled task completed'
    }

def perform_scheduled_task():
    # 스케줄링 작업을 수행하는 코드 작성
    print('Scheduled task performed')

위 코드에서 perform_scheduled_task() 함수는 실제로 수행할 스케줄링 작업을 정의하는 부분입니다. 원하는 작업을 이 함수에 추가하십시오.

CloudWatch 이벤트 생성

이제 Lambda 함수와 CloudWatch 이벤트를 연결하여 스케줄링 작업을 수행하기 위한 이벤트를 생성해야 합니다.

  1. AWS Management Console에서 CloudWatch 서비스로 이동합니다.
  2. “이벤트” 섹션에서 “규칙 만들기” 버튼을 클릭합니다.
  3. “스케줄”을 선택하고, 원하는 Cron 표현식을 입력합니다. (예: 0 9 * * ? *는 매일 오전 9시를 의미합니다.)
  4. “타깃”으로 이전에 생성한 Lambda 함수를 선택합니다.
  5. “규칙 생성” 버튼을 클릭합니다.

이제 CloudWatch 이벤트가 Lambda 함수와 연결되었습니다. 설정한 시간대에 맞춰서 Lambda 함수가 실행되어 원하는 작업을 수행할 것입니다.

결론

이렇게 AWS Lambda와 CloudWatch 이벤트를 활용하여 스케줄링 작업을 수행할 수 있습니다. Lambda 함수를 작성하고 CloudWatch 이벤트를 설정하면, 특정 시간에 원하는 작업을 자동으로 실행할 수 있습니다. 이를 통해 개발자는 서버 관리에 대한 부담을 덜 수 있으며, 자동화된 작업으로 시스템을 효율적으로 관리할 수 있습니다.