boto3 관하여

김윤하·2024년 2월 4일

Python

목록 보기
11/11

1. 기본적인 AWS에서의 소개

Python용 AWS SDK인 boto3를 사용하여 AWS를 빠르게 시작하십시오. Boto3를 사용하면 Python 애플리케이션, 라이브러리 또는 스크립트를 Amazon S3, Amazon EC2, Amazon DynamoDB 등 AWS 서비스와 쉽게 통합할 수 있습니다.

# 다운로드
pip install boto3

2. boto3 자격증명(Credentials)

  1. boto3.client, resource, session 함수에 자격증명을 매개 변수로 직접 전달
  2. 환경 변수(Environment variables)
  3. 공유 자격증명 파일 [ ~/.aws/credentials ]
  4. AWS 구성 파일 [ ~/.aws/config ]
  5. AssumeRole(임시 자격증명) 호출 [ ~/.aws/config ]
  6. Boto2 구성 파일 [ /etc/boto.cfg 또는 ~/.boto ]
  7. IAM 역할이 구성된 Amazon EC2 인스턴스의 인스턴스 메타 데이터 서비스

3. client, resource, session 의 차이

  • Client
    - Low-level API 액세스
    - 클라이언트 객체를 사용하여 AWS 서비스의 각각의 메서드를 직접 호출
    - 일반적으로 JSON 형식의 응답을 반환
  • Resource
    - High-level 인터페이스
    - 리소스 객체 생성
    - 자동 상태 관리
  • Session
    Session은 설정상태를 저장하고 client & resource 서비스를 생성하기 위한 권한을 부여하기 위해 사용된다.
    aws_access_key_id=AWS_ACCESS_KEY_ID
    aws_secret_access_key=AWS_SECRET_ACCESS_KEY
    region_name=AWS_DEFAULT_REGION
import boto3

# S3 클라이언트 생성 예제
s3_client = boto3.client('s3')

res = s3_client.list_buckets()
print(res["Contents"])  # json 형태 응답

# S3 리소스 생성 예제
s3_resource = boto3.resource('s3')

my_bucket = s3_resource.Bucket('my_bucket_name')

for obj in my_bucket.objects.all():
    print(obj.key)

https://aws.amazon.com/ko/sdk-for-python/
https://boto3.amazonaws.com/v1/documentation/api/latest/index.html
https://tech.cloud.nongshim.co.kr/2021/03/12/boto3%EA%B0%80-aws%EC%9D%98-%EC%9E%90%EA%B2%A9%EC%A6%9D%EB%AA%85credentials%EC%9D%84-%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94-%EC%88%9C%EC%84%9C-from-python/

profile
data engineer

0개의 댓글