boto3는 AWS 서비스를 Python 코드로 자동화하고 제어할 수 있게 해주는 Python SDK(Software Development Kit)이다. 이 글에서는 boto3가 무엇인지 간단히 알아보고, 실제로 S3 버킷에 파일을 업로드하는 예제를 통해 사용법을 설명하겠다.
boto3
boto3는 Python에서 AWS의 다양한 서비스(EC2, S3, RDS, Lambda 등)를 제어할 수 있게 해주는 AWS 공식 SDK(Software Development Kit)이다. 예를 들어, EC2 인스턴스를 시작하거나 종료하고, S3에 파일을 업로드하거나 다운로드하며, DynamoDB에 데이터를 읽고 쓰는 작업을 모두 boto3 한 줄 코드로 자동화할 수 있다. 설치 방법은 다음과 같다.
pip install boto3
인증 정보 설정
boto3는 여러 방식으로 AWS 인증 정보를 불러올 수 있다.
- ~/.aws/credentials 파일
- IAM Role (EC2, Lambda에서 자동 적용)
- 환경 변수 설정 : export AWS_ACCESS_KEY_ID=AKIAxxxxxxxx export AWS_SECRET_ACCESS_KEY=xxxxxxxx
S3에 파일 업로드해보기
S3는 AWS에서 제공하는 객체 스토리지 서비스로, 폴더 구조처럼 파일을 저장할 수 있고, 이미지/문서/로그 등을 저장하고 배포하는 데 자주 사용된다. boto3를 통해 AWS S3를 연결하여 사용하는 법을 살펴보자.
ex)
import boto3
# S3 클라이언트 생성
s3 = boto3.client('s3')
# 업로드할 파일과 대상 버킷/경로 지정
local_file_path = 'example.txt'
bucket_name = 'my-s3-bucket'
s3_key = 'uploads/example.txt' # S3 내의 경로 (key)
# 파일 업로드
s3.upload_file(local_file_path, bucket_name, s3_key)
추가로, 업로드 시 파일의 공개 여부나 MIME 타입(Content-Type) 등을 지정할 수 있다.
s3.upload_file(
local_file_path,
bucket_name,
s3_key,
ExtraArgs={
'ContentType': 'text/plain',
'ACL': 'public-read'
}
)
- ContentType: 브라우저가 파일을 해석하는 방식 지정
- ACL: 접근 권한 설정 (private, public-read 등)
boto3를 이용하면 AWS 리소스를 쉽고 강력하게 제어할 수 있다. 이번 글에서는 가장 자주 쓰이는 S3 업로드 예제를 다뤘지만, 이를 기반으로 자동 백업, 배포 자동화, 로그 저장 등 다양한 작업을 구현할 수 있다.
'개념정리 > 개발' 카테고리의 다른 글
Celery와 Redis (0) | 2025.02.09 |
---|---|
FastAPI와 비동기 처리 (0) | 2025.02.09 |
MSA, Landing Zone (0) | 2025.01.31 |
Bastion Host (1) | 2025.01.27 |