AWS Boto3 설치 및 구성 방법
Boto3 는 Python 용 AWS SDK (Software Development Kit)입니다.
개발자들은 Boto3를 활용하여 파이썬 코드로 AWS의 40개가 넘는 서비스들을 활용할 수 있습니다.
AWS서비스를 효과적으로 사용하기 위해서 매우 중요한 SDK중 하나이며, 지원되는 서비스들은 아래 url을 통하여 확인할 수 있습니다.
Boto3 를 설치하고 구성하는 방법
To do list:
- Boto 3 설치
- AWS Access Key 발급
- Access Key를 Crendentials File 에 저장
- Configuration File 생성
- 테스트!
1. Boto3 설치
1.1 package installer (pip) 을 활용하여 boto3 를 설치해줍니다.
package installer 는 Python 을 install 하실 때 자동으로 install 됩니다.
$pip3 install boto3
2. AWS Access Key 발급
2.1 AWS 에 접속하셔서 Access Key 를 발급 받습니다.
아래 경로로 가시면됩니다.
AWS Management Consol → My security credentials → Access Keys
3. Access Key를 Credentials File 에 저장
Access Key는 실수로라도 코드에 노출 되어선 안됩니다!
그래서 Access Key 를 사용하실 때는 2가지 방법으로 사용 하시는것을 권장드립니다.
- 환경 변수 (environment variable)로 저장하여 os library 를 사용하여 코드로 부르는 방법
- AWS credential file을 사용하는 방법.
현업에서는 AWS crendentials file에 access key를 저장하여 사용하시는 경우가 많아 , 그 방법을 보여드리도록 하겠습니다.
3.1 AWS directory를 만들어주고 안에 credentials file 생성
AWS directory 생성
$mkdir ~/.awsCredentials file 생성
$touch ~/.aws/credentials
3.2. Credentials File 안에 Access Key 를 다음과 같은 형태로 입력 합니다.
[default]
aws_access_key_id = [2번에서 받은 access key id 입력]
aws_secret_access_key = [2번에서 받은 secret access key 입력]
4. Configuration File 생성
4.1 AWS directory 안에 configuration file을 생성합니다
$touch ~/.aws/config
4.2. configuration file 안에 region 을 입력합니다
[default]
region = [현재 사용중인 region] ex.) ap-northeast-2
5. 테스트
이로써, 기본적은 설정은 완료되었으며 잘 작동되는지 테스트를 진행해보도록 하겠습니다.
파이썬 파일 하나를 작성 해보도록 하겠습니다
boto3_test.py
import boto3#S3를 사용
s3 = boto3.client('s3')#s3 안에 있는 bucket name을 출력
for bucket in s3.buckets.all():
print(bucket.name)
S3 버킷이 존재한다면, 아래와 같이, 버킷 네임이 출력될것입니다.
(버킷이 없다면 S3 management console
에서 하나 생성 해보시고 테스트 하시면 됩니다)
6. 번외 (여러 profile 변경)
AWS 를 사용하시다보면 여러 환경을 왔다갔다 해야하는 상황이 발생할 수 있습니다.
이럴경우, credentials file
에 새로운 profile
을 추가하실 수도 있습니다.
저는 학교에서 사용하는 NYU account 를 추가하였습니다.
[default]
aws_access_key_id = [Default Profile Access Key]
aws_secret_access_key = [Default Profile Secret Access Key][NYU_account]
aws_access_key_id = [NYU account profile access key]
aws_secret_access_key = [NYU account profile secret access key]
그리고 Credentials file에 profile을 추가하셨다면 추가한 profile으로 session을 생성하실 수 있습니다
import boto3#Session 을 생성하고 NYU_account 라는 profile 을 선택
session = boto3.Session(profile_name='NYU_account')#Client 에 NYU_account 라는 세션이 S3를 사용할것을 선언
nyu_s3 = session.client('s3')for bucket in nyu_s3.buckets.all():
print(bucket.name)