AWS에서 Python Boto3를 사용하여 S3 버킷을 생성하는 방법
이 기사에서는 Python Boto3 라이브러리를 사용하여 S3 버킷을 생성하는 방법을 배웁니다. 생성한 버킷을 삭제하는 단계도 볼 수 있습니다. \create_bucket\ 및 \delete_bucket\ 메서드를 사용하여 각각 버킷을 만들고 삭제합니다.
계속 진행하기 전에 귀하가 S3 버킷에 익숙하다고 가정하지만 S3 버킷 서비스에 익숙하지 않은 경우 여기를 클릭하여 AWS 콘솔에서 버킷을 만드는 방법을 알아보세요.
전제 조건
- AWS 계정(없으면 생성)
- S3에 대한 기본 이해
- Python에 대한 기본 이해
- 시스템에서 사용 가능한 Python
우리가 할 일
- Boto3 설치
- 필요한 방법을 알아 두십시오.
- S3 버킷을 생성하고 삭제합니다.
Boto3 종속성 설치
Python은 Ubuntu Server에 기본으로 제공되므로 설치할 필요가 없습니다.
시스템에서 Python 버전을 확인하려면 다음 명령을 사용하십시오.
python
/usr/bin/python --version
또는
파이썬 --버전
pip가 없고 Ubuntu를 사용 중인 경우 다음 명령을 실행하여 먼저 로컬 리포지토리를 업데이트합니다.
sudo 적절한 업데이트
pip를 설치하려면 다음 명령을 사용하십시오.
sudo apt install python-pip
설치된 Pip의 버전을 확인하려면 다음 명령을 실행합니다.
핍 --버전
Python과 pip가 있으면 Boto3를 설치할 수 있습니다.
Boto3 설치는 매우 간단하고 직관적입니다. Boto3를 설치하려면 다음 명령을 사용하십시오.
pip install boto3
Boto3가 설치되어 있고 버전이 있는지 확인하려면 다음 명령을 실행합니다.
핍 쇼 boto3
필요한 방법을 알고
버킷을 생성하려면 \create_bucket\ 메서드를 사용합니다. 다음은 수락할 수 있는 모든 매개 변수가 포함된 메서드의 구문입니다. 이러한 모든 매개변수를 사용하여 버킷을 생성하지는 않지만 원하는 경우 시도해 볼 수 있습니다.
create_bucket 메서드의 요청 구문
response = client.create_bucket( ACL='private'|'public-read'|'public-read-write'|'authenticated-read', Bucket='string', CreateBucketConfiguration={ 'LocationConstraint': 'EU'|'eu-west-1'|'us-west-1'|'us-west-2'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-northeast-1'|'sa-east-1'|'cn-north-1'|'eu-central-1' }, GrantFullControl='string', GrantRead='string', GrantReadACP='string', GrantWrite='string', GrantWriteACP='string', ObjectLockEnabledForBucket=True|False )
- ACL: 버킷에 적용할 미리 준비된 ACL입니다.
- 버킷: 생성할 버킷의 이름입니다. 이것은 전역적으로 고유해야 하며 2개의 버킷이 동일한 이름을 가질 수 없습니다.
- CreateBucketConfiguration: 버킷에 대한 구성 정보입니다.
LocationConstraint: 버킷을 만들려는 리전을 지정합니다. 미국 동부(버지니아 북부) 리전(us-east-1)이 기본 리전이며 리전을 지정하지 않으면 버킷이 생성됩니다. - GrantFullControl: 수여자에게 버킷에 대한 읽기, 쓰기, 읽기 ACP 및 쓰기 ACP 권한을 허용합니다.
- GrantRead: 수혜자가 버킷의 개체를 나열하도록 허용합니다.
- GrantReadACP: 수혜자가 버킷 ACL을 읽을 수 있도록 허용합니다.
- GrantWrite: 수혜자가 버킷의 모든 객체를 생성, 덮어쓰기 및 삭제할 수 있도록 허용합니다.
- GrantWriteACP: 수혜자가 해당 버킷에 대한 ACL을 쓸 수 있도록 허용합니다.
- ObjectLockEnabledForBucket: 새 버킷에 대해 S3 객체 잠금을 활성화할지 여부를 지정합니다.
다음은 생성한 버킷을 삭제하는 메서드 구문입니다.
delete_bucket 메서드의 요청 구문
response = client.delete_bucket( Bucket='string' )
- 버킷: 삭제할 버킷을 지정합니다. 삭제할 S3 버킷 이름을 여기에 지정해야 합니다.
S3 버킷 생성 및 삭제
AWS 사용자 aws_access_key_id_value ,aws_secret_access_key_value 및 리전을 포함할 \config.properties\ 파일을 생성합니다. 이 파일에 키를 추가하십시오.
config.properties
aws_access_key_id_value='ACCESS-KEY-OF-THE-AWS-ACCOUNT' aws_secret_access_key_value='SECRETE-KEY-OF-THE-AWS-ACCOUNT' region_name_value='eu-west-3'
이제 \create-s3-bucket.py\ 파일을 생성하고 그 안에 다음 코드를 추가합니다. 이 코드는 이전 단계에서 정의한 값을 읽고 이 파일에서 정의한 이름으로 버킷을 만듭니다. 여기에서 \rahul-boto3-test-delete\라는 이름의 버킷을 만들고 이를 원하는 것으로 변경합니다.
vim create-s3-bucket.py
import boto3 def getVarFromFile(filename): import imp f = open(filename) global data data = imp.load_source('data', '', f) f.close() getVarFromFile('config.properties') client = boto3.client( 's3', aws_access_key_id=data.aws_access_key_id_value, aws_secret_access_key=data.aws_secret_access_key_value ) response = client.create_bucket( Bucket='rahul-boto3-test-delete', CreateBucketConfiguration={ 'LocationConstraint': 'eu-west-3', }, ) print (response)
버킷을 삭제하는 코드가 포함된 \delete-s3-bucket.py\ 파일을 만듭니다. 다음 코드를 복사하여 붙여넣습니다.
vim 삭제-s3-bucket.py
def getVarFromFile(filename): import imp f = open(filename) global data data = imp.load_source('data', '', f) f.close() getVarFromFile('config.properties') client = boto3.client( 's3', aws_access_key_id=data.aws_access_key_id_value, aws_secret_access_key=data.aws_secret_access_key_value ) response = client.delete_bucket(Bucket='rahul-boto3-test-delete') print (response)
이제 버킷을 생성할 준비가 되었습니다.
버킷을 만들려면 다음 명령을 사용하여 \create-s3-bucket.py\ 파일을 실행합니다.
python create-s3-bucket.py
더 이상 필요하지 않은 버킷을 삭제하려면 다음 명령을 사용하여 \delete-s3-bucket.py\ 파일을 실행하세요.
python delete-s3-bucket.py
결론
Python의 Boto3 라이브러리를 사용하여 S3 버킷을 생성하고 삭제하는 것이 얼마나 쉬운지 확인했습니다. 간단한 버킷을 만들었습니다. 필요 및 요구사항에 따라 코드를 맞춤설정하고 create_bucket 메서드에서 사용할 수 있는 다양한 매개변수를 사용하여 버킷을 만들 수 있습니다.