[파이썬] AWS Lambda와 S3를 활용한 데이터 분석 및 시각화
소개
AWS Lambda와 S3는 클라우드 기반의 서비스로, 데이터 분석 및 시각화 작업을 수행하는 데 효과적으로 활용할 수 있습니다. Lambda는 서버리스 기반의 이벤트 기반 컴퓨팅 서비스로, 코드를 실행하고 스케일링 및 관리를 자동으로 처리해주는 편리한 도구입니다. S3는 안정적이고 확장 가능한 객체 스토리지 서비스로, 데이터를 저장하고 검색하는 데 용이합니다.
이 블로그 포스트에서는 Python과 함께 AWS Lambda와 S3를 사용하여 데이터를 분석하고 시각화하는 방법에 대해 알아보겠습니다.
전제 조건
- AWS 계정이 있어야 합니다.
- AWS CLI 설치 및 구성이 완료되어야 합니다.
- Python 3.x 버전이 설치되어 있어야 합니다.
- 필요한 Python 패키지를 모두 설치해야 합니다. (pandas, matplotlib, boto3 등)
단계별 가이드
- S3 버킷 생성 및 데이터 업로드
- AWS Management Console에 로그인합니다.
- S3 서비스로 이동하여 새로운 버킷을 생성합니다.
- 생성한 버킷에 분석할 데이터를 업로드합니다.
- AWS Lambda 함수 생성
- AWS Management Console에서 Lambda 서비스로 이동합니다.
- “함수 만들기”를 클릭하고 필요한 설정을 완료합니다.
- “실행 역할”을 구성하고 코드를 업로드하는 코드 에디터를 사용합니다.
- 데이터 분석 및 시각화 코드 작성
- 로컬 개발 환경에서 Python을 사용하여 데이터 분석 및 시각화 코드를 작성합니다.
- 필요한 패키지를 import하고, S3 버킷에서 데이터를 로드합니다.
- 데이터를 분석하고 시각화하는 코드를 작성합니다.
- AWS Lambda 함수에 코드 업로드
- 작성한 코드를 압축하여 AWS Lambda 함수에 업로드합니다.
- 이벤트 트리거 설정
- Lambda 함수를 S3 버킷의 이벤트에 트리거하도록 설정합니다.
- 테스트 및 확인
- 데이터를 업로드하고 Lambda 함수가 실행되는지 확인합니다.
- 결과를 확인하여 데이터 분석 및 시각화가 정상적으로 이루어지는지 확인합니다.
예시 코드
import pandas as pd
import matplotlib.pyplot as plt
import boto3
# S3 버킷에서 데이터 로드
def load_data_from_s3(bucket_name, file_name):
s3 = boto3.resource('s3')
obj = s3.Object(bucket_name, file_name)
dataset = pd.read_csv(obj.get()['Body'])
return dataset
# 데이터 분석 및 시각화
def analyze_and_visualize_data(dataset):
# 데이터 분석 및 시각화 작업
...
# Lambda 핸들러 함수
def lambda_handler(event, context):
# S3 버킷 정보 및 파일명 설정
bucket_name = 'my-bucket'
file_name = 'data.csv'
# S3에서 데이터 로드
dataset = load_data_from_s3(bucket_name, file_name)
# 데이터 분석 및 시각화
analyze_and_visualize_data(dataset)
위의 코드 예제에서는 AWS SDK인 boto3를 사용하여 S3 버킷에서 데이터를 로드하는 방법과 pandas 및 matplotlib를 사용하여 데이터를 분석하고 시각화하는 방법을 보여줍니다.
마무리
이제 AWS Lambda와 S3를 활용하여 데이터 분석 및 시각화 작업을 수행하는 방법을 알게 되었습니다. 이러한 클라우드 기반의 도구를 사용하면 데이터 분석 작업을 보다 효율적으로 수행할 수 있습니다. Lambda는 필요에 따라 자동으로 코드를 실행하므로 작업을 프로비저닝하고 관리하는 번거로움을 줄여줍니다. S3는 안정적이고 확장 가능한 스토리지로 데이터를 저장하고 검색하는 데 용이합니다.
이러한 기능을 활용하여 데이터 분석 및 시각화 작업을 수행해보시기 바랍니다. 좀 더 복잡한 작업을 위해서는 추가적인 설정과 패키지 설치가 필요할 수 있으므로 공식 문서를 참고하시기 바랍니다.