AWS Lambda는 서버리스 아키텍처를 지원하는 서비스로, 애플리케이션 코드를 실행할 수 있는 서버를 관리하지 않고도 코드를 실행할 수 있습니다. CloudWatch는 Amazon Web Services의 모니터링 및 관리 서비스로, 여러 가지 이벤트에 대한 알림을 받거나 자동으로 조치를 취할 수 있습니다. 여기서는 AWS Lambda와 CloudWatch 이벤트를 결합하여 스케줄링 작업을 수행하는 방법을 알아보겠습니다.
스케줄링 작업을 위한 설정
- AWS Management Console에 로그인하고 Lambda 서비스로 이동합니다.
- “함수 만들기” 버튼을 클릭하고, 적절한 함수 이름을 입력합니다.
- “런타임” 드롭다운에서 “Python 3.8”을 선택합니다.
- “퍼블릭 및 퍼블릭 서브넷이 있는 VPC”를 선택하거나, 필요에 따라 다른 옵션을 선택합니다.
- “함수 생성” 버튼을 클릭합니다.
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 이벤트를 연결하여 스케줄링 작업을 수행하기 위한 이벤트를 생성해야 합니다.
- AWS Management Console에서 CloudWatch 서비스로 이동합니다.
- “이벤트” 섹션에서 “규칙 만들기” 버튼을 클릭합니다.
- “스케줄”을 선택하고, 원하는 Cron 표현식을 입력합니다. (예:
0 9 * * ? *
는 매일 오전 9시를 의미합니다.) - “타깃”으로 이전에 생성한 Lambda 함수를 선택합니다.
- “규칙 생성” 버튼을 클릭합니다.
이제 CloudWatch 이벤트가 Lambda 함수와 연결되었습니다. 설정한 시간대에 맞춰서 Lambda 함수가 실행되어 원하는 작업을 수행할 것입니다.
결론
이렇게 AWS Lambda와 CloudWatch 이벤트를 활용하여 스케줄링 작업을 수행할 수 있습니다. Lambda 함수를 작성하고 CloudWatch 이벤트를 설정하면, 특정 시간에 원하는 작업을 자동으로 실행할 수 있습니다. 이를 통해 개발자는 서버 관리에 대한 부담을 덜 수 있으며, 자동화된 작업으로 시스템을 효율적으로 관리할 수 있습니다.