AWS Lambda는 서버리스 컴퓨팅 서비스로써, 코드를 실행하고 스케일링을 자동으로 처리해주는 기능을 제공합니다. S3는 Amazon Simple Storage Service로서, 파일 및 데이터를 안전하게 저장하고 검색할 수 있는 스토리지 솔루션입니다. 이 두 서비스를 함께 사용하여 파일 처리 및 변환 작업을 수행할 수 있습니다.
이번 블로그 포스트에서는 AWS Lambda와 S3를 사용하여 파일을 처리하고 변환하는 과정을 알아보겠습니다. 이를 위해 Python을 사용하겠습니다.
1. AWS Lambda 함수 생성
먼저 AWS Lambda 함수를 생성해야 합니다.
- AWS Management Console에 로그인합니다.
- Lambda 콘솔로 이동합니다.
- “함수 생성”을 클릭합니다.
- 함수 생성 페이지에서 다음과 같이 설정합니다:
- 함수 이름: 원하는 이름을 입력합니다.
- 런타임: Python 3.x를 선택합니다.
- 실행 역할: Lambda 함수가 사용할 권한을 선택합니다. 필요에 따라 새로운 역할을 생성하거나 기존의 역할을 선택할 수 있습니다.
- “함수 생성”을 클릭하여 Lambda 함수를 생성합니다.
2. S3 버킷 설정
다음으로 S3 버킷을 설정해야 합니다.
- AWS Management Console에 로그인합니다.
- S3 콘솔로 이동합니다.
- 원하는 위치에서 “버킷 생성”을 클릭합니다.
- 버킷 이름을 입력하고 원하는 설정을 선택한 후 “생성”을 클릭합니다.
- 생성된 버킷에 파일을 업로드합니다.
3. Lambda 함수 코드 작성
이제 AWS Lambda 함수에 파일 처리 및 변환을 위한 코드를 작성해야 합니다. 아래는 Python 코드의 예입니다. 이 코드는 S3 버킷에 저장된 파일을 읽고, 특정한 변환 작업을 수행한 후에 결과를 다시 S3에 저장합니다.
import boto3
def lambda_handler(event, context):
# S3 클라이언트 생성
s3 = boto3.client('s3')
# 이벤트에서 버킷 및 파일 이름 추출
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
# S3에서 파일 읽기
response = s3.get_object(Bucket=bucket, Key=key)
content = response['Body'].read().decode('utf-8')
# 파일 변환 작업 수행 (예: 대문자로 변환)
transformed_content = content.upper()
# 변환된 결과를 새로운 파일로 S3에 저장
new_key = key + '.transformed'
s3.put_object(Bucket=bucket, Key=new_key, Body=transformed_content.encode('utf-8'))
return {
'statusCode': 200
}
위 코드에서는 boto3 라이브러리를 사용하여 S3 클라이언트를 생성하고, 이벤트에서 버킷과 파일 이름을 추출합니다. 그 후, S3에서 파일을 읽고 특정 작업을 수행한 다음, 변환된 결과를 새로운 파일로 S3에 저장합니다.
4. Lambda 함수 트리거 설정
Lambda 함수를 실행하기 위해 S3 변경 알림을 트리거로 설정해야 합니다.
- AWS Management Console에 로그인합니다.
- S3 콘솔로 이동합니다.
- 트리거를 설정할 버킷을 선택합니다.
- “속성” 탭에서 “이벤트” 섹션으로 이동합니다.
- “이벤트 추가”를 클릭합니다.
- “이벤트 유형”에서 “모든 객체 생성 이벤트”를 선택하고, Lambda 함수를 선택합니다.
- “저장”을 클릭하여 트리거를 설정합니다.
이제 S3 버킷에 파일을 업로드하면 Lambda 함수가 자동으로 실행되어 파일 처리 및 변환 작업을 수행합니다.
AWS Lambda와 S3를 함께 사용하여 파일 처리 및 변환 작업을 자동화할 수 있습니다. 이를 통해 효율적으로 파일 관리 및 작업을 수행할 수 있습니다.