파이썬을 사용한 서버리스 데이터 변환

서버리스 아키텍처는 많은 기업이 클라우드 컴퓨팅을 활용하는 방법 중 하나입니다. 이 아키텍처에서는 서버가 필요하지 않고 코드가 실행되며, 비용 절감과 확장성 측면에서 많은 장점을 가지고 있습니다.

이번 예시에서는 파이썬을 사용하여 서버리스 아키텍처에서 데이터 변환을 하는 방법을 알아보겠습니다.

단계 1: 데이터 소스 가져오기

첫 번째 단계는 데이터를 가져오는 것입니다. 이 예시에서는 AWS S3 버킷에 있는 CSV 파일을 사용하겠습니다. 다음은 해당 파일을 가져오는 방법입니다.

import boto3

def get_data_from_s3(bucket, file_name):
    s3 = boto3.resource('s3')
    obj = s3.Object(bucket, file_name)
    data = obj.get()['Body'].read()
    return data

단계 2: 데이터 변환

두 번째 단계는 데이터를 원하는 형식으로 변환하는 것입니다. 이 예시에서는 CSV 파일을 JSON 형태로 변환하겠습니다.

import csv
import json

def transform_data(data):
    csv_data = data.decode('utf-8')
    reader = csv.DictReader(csv_data.splitlines())
    json_data = json.dumps([row for row in reader], indent=4)
    return json_data

단계 3: 변환된 데이터 저장

마지막 단계는 변환된 데이터를 저장하는 것입니다. 이 예시에서는 다시 AWS S3 버킷에 저장하겠습니다.

def save_data_to_s3(bucket, file_name, data):
    s3 = boto3.resource('s3')
    obj = s3.Object(bucket, file_name)
    obj.put(Body=data)

예제 실행하기

위의 코드를 가지고 데이터 변환 작업을 실행해봅시다.

def main(event, context):
    # AWS Lambda에서 실행하기 위한 진입점
    bucket = 'my-bucket'
    file_name = 'data.csv'

    # S3에서 데이터 가져오기
    data = get_data_from_s3(bucket, file_name)

    # 데이터 변환하기
    transformed_data = transform_data(data)

    # S3에 변환된 데이터 저장하기
    save_data_to_s3(bucket, 'transformed_data.json', transformed_data)

AWS Lambda 함수로 위의 main 함수를 등록하고, 이벤트 및 컨텍스트를 제공하여 실행하면 됩니다. 데이터 변환이 정상적으로 완료되면, transformed_data.json 파일이 my-bucket S3 버킷에 저장될 것입니다.

이렇게 파이썬을 사용하여 서버리스 아키텍처에서 데이터 변환을 할 수 있습니다. 이를 통해 비용 절감과 스케일링의 장점을 누릴 수 있습니다.

#데이터변환 #서버리스