이전 S3 버킷 생성에 이어서 S3에 파일을 올려보겠습니다.
S3를 파이썬에 이어서 사용하기 위해서는 boto3란 라이브러리를 사용하면 쉽게 사용할 수 있습니다.
S3 접근을 위해서는 기본적으로 엑세스 ID와 키가 필요합니다.
이것들을 만들기 위해 먼저 AWS 홈페이지에 들어 가서 [보안 자격 증명] 들어갑니다.
그리고 좌측 사용자 탭을 누르고 사용자 추가를 클릭합니다.
아래와 같이 사용자 이름과 엑세스 유형을 선택하고 다음:권한을 클릭합니다.
다음 정책으로는 '기존 정책 직접 연결' 선택 후 [AmazonS3FullAccess]를 선택합니다. S3에 접근할 수 있는 권한이라고 보시면 됩니다. S3라고 검색하면 쉽게 찾을 수 있습니다.
다음 버튼을 쭉 누르면 이제 엑세스 키 ID와 비밀 엑세스 키 둘다 확인할 수 있습니다. [.csv 다운로드]하여 보관해주시면 됩니다.
S3를 파이썬에 이어서 사용하기 위해서는 2개 라이브러리를 사용하면 쉽게 사용할 수 있습니다. boto3와 awscli 입니다.
이 둘을 먼 저 설치합니다.
boto3 documents : https://boto3.amazonaws.com/v1/documentation/api/latest/index.html
Boto3 documentation — Boto3 Docs 1.21.27 documentation
You use the AWS SDK for Python (Boto3) to create, configure, and manage AWS services, such as Amazon Elastic Compute Cloud (Amazon EC2) and Amazon Simple Storage Service (Amazon S3). The SDK provides an object-oriented API as well as low-level access to AW
boto3.amazonaws.com
!pip install boto3
!pip install awscli
이제 awscli가 설치 되었으므로 aws configure 명령을 이용하여 AWS 계정 연결을 수행할 수 있습니다.
파이썬을 이용해서 우리 AWS 계정의 버킷 이름을 출력해보면 됩니다. 아래와 같이 본인 버킷 이름이 정상적으로 출력된다면 성공적으로 연결 된 것입니다.
import boto3
s3 = boto3.resource('s3')
for bucket in s3.buckets.all():
print(bucket.name)
jimin-example
그리고 EC2에 업로드 되어 있는 간단한 파일 하나를 S3에 업로드 해보겠습니다. 아래와 같이 경로, 버켓 이름, 파일 이름 순으로 넣으면 됩니다. 그럼 실제 버켓에서 업로드 된것을 확인할 수 있습니다.
s3.meta.client.upload_file('/home/ubuntu/project/posrtgre_testing.ipynb', 'jimin-example', 'posrtgre_testing.ipynb')
업로드 되었는지 확인 가능한 함수는 다음과 같습니다. 만약 값이 True가 나오면 제대로 업로드 되었다는 것을 의미합니다.
코드의 출처 : https://github.com/gaussian37/S3UpDownLoader
코드 제작자 블로그 : https://gaussian37.github.io/python-etc-s3_storage_for_boto3/
def prefix_exits(bucket, path):
s3_client = boto3.client('s3')
res = s3_client.list_objects_v2(Bucket=bucket, Prefix=path, MaxKeys=1)
return 'Contents' in res
prefix_exits('jimin-example', 'posrtgre_testing.ipynb')
'AWS' 카테고리의 다른 글
[AWS]Analytics on AWS 워크샵 실습하기(1) (0) | 2022.03.30 |
---|---|
[AWS]간단 EC2 git 연동하기 (0) | 2022.03.29 |
[AWS] Amazon S3 버킷 생성하기 (0) | 2022.03.28 |
[AWS] RDS 생성 및 Python 연동하기 (0) | 2022.03.28 |
[AWS] EC2(ubuntu)에서 아나콘다 설치 (0) | 2022.03.27 |