개념정리/개발

boto3

backtwobasic 2025. 5. 3. 18:39

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 인증 정보를 불러올 수 있다.

  1. ~/.aws/credentials 파일
  2. IAM Role (EC2, Lambda에서 자동 적용)
  3. 환경 변수 설정 : 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