[파이썬] AWS Lambda와 S3를 활용한 데이터 분석 및 시각화

AWS Lambda와 S3는 데이터 분석 및 시각화에 있어서 강력한 도구들입니다. AWS Lambda는 서버리스 아키텍처를 통해 데이터 처리 작업을 자동화하고, S3는 데이터를 저장하고 관리하는 데 사용됩니다. 이번 블로그 포스트에서는 Python을 사용하여 AWS Lambda와 S3를 활용한 데이터 분석 및 시각화 프로세스를 설명하겠습니다.

데이터 수집

먼저, 데이터를 수집하는 과정부터 시작해보겠습니다. 예를 들어, 웹 애플리케이션 로그 데이터를 수집하고자 한다면, AWS API Gateway를 통해 수집된 로그 데이터를 Lambda 함수에서 처리할 수 있습니다.

다음은 데이터를 수집하는 Lambda 함수의 예시입니다:

import boto3

def lambda_handler(event, context):
    # API Gateway로부터 전달된 로그 데이터
    log_data = event['logData']

    # 데이터 처리 및 저장
    # (이 부분은 각자의 데이터에 맞게 구현)

    # S3에 데이터 저장
    s3 = boto3.client('s3')
    s3.put_object(Bucket='my-bucket', Key='logs/log.txt', Body=log_data)

    return {
        'statusCode': 200,
        'body': 'Data saved successfully'
    }

위의 코드에서는 lambda_handler 함수가 API Gateway로부터 전달된 로그 데이터를 받아서, 데이터를 처리하고 S3에 저장하는 작업을 수행합니다.

데이터 처리 및 시각화

데이터가 S3에 저장되었다면, 이어서 데이터 처리 및 시각화 작업을 진행할 수 있습니다. 이 작업은 AWS Glue 및 Amazon Athena와 같은 AWS의 다른 서비스들을 활용하여 수행될 수 있습니다. 이번 예시에서는 Python 패키지인 pandasmatplotlib를 사용하여 데이터 분석 및 시각화 작업을 진행할 것입니다.

import boto3
import pandas as pd
import matplotlib.pyplot as plt

def analyze_data():
    # S3에서 데이터 로드
    s3 = boto3.client('s3')
    response = s3.get_object(Bucket='my-bucket', Key='logs/log.txt')
    data = response['Body'].read().decode('utf-8')

    # 데이터 프레임 생성 및 분석
    df = pd.read_csv(data, delimiter=',')
    # (이 부분은 데이터 분석에 맞게 구현)

    # 데이터 시각화
    df.plot(x='date', y='value', kind='line')
    plt.xlabel("Date")
    plt.ylabel("Value")
    plt.title("Data Visualization")
    plt.show()

if __name__ == "__main__":
    analyze_data()

위의 코드에서는 analyze_data 함수가 S3에서 데이터를 로드하여 데이터 프레임을 생성하고 분석하는 작업을 합니다. 그리고 마지막으로 데이터를 시각화하여 그래프로 표현합니다.

Lambda 함수 스케줄링

마지막으로, AWS CloudWatch Events를 사용하여 Lambda 함수를 정기적으로 실행하도록 스케줄링할 수 있습니다. 예를 들어, 매일 밤 10시에 데이터를 수집하고 분석하는 작업을 실행하고 싶다면, 다음과 같이 CloudWatch Events를 구성할 수 있습니다:

  1. AWS Management Console에서 CloudWatch 서비스로 이동합니다.
  2. 왼쪽 탐색 창에서 “이벤트”를 클릭합니다.
  3. “규칙 만들기” 버튼을 클릭합니다.
  4. “Schema - 시작 이벤트 선택” 단계에서 “스케줄 표현 사용” 옵션을 선택하고 매일 밤 10시를 입력합니다.
  5. “Targets” 단계에서 앞서 작성한 Lambda 함수를 선택합니다.
  6. 나머지 설정을 완료하고 규칙을 생성합니다.

이제 CloudWatch Events에서 생성한 규칙을 통해 Lambda 함수가 매일 밤 10시에 자동으로 실행됩니다.

마무리

이번 블로그 포스트에서는 AWS Lambda와 S3를 활용한 데이터 분석 및 시각화에 대해 알아보았습니다. AWS Lambda를 사용하여 데이터를 수집하고, S3를 활용하여 데이터를 저장하며, Python을 통해 데이터를 분석 및 시각화하는 작업을 수행할 수 있습니다. AWS의 다른 서비스들과 결합하여 보다 복잡한 분석 및 시각화 프로세스를 구현할 수도 있습니다.

더 많은 기능과 기술을 활용하여 데이터 분석과 시각화 프로세스를 개선해보세요!