Amazon S3의 데이터 통합
AWS(Amazon Web Services) Simple Storage Service(S3) 버킷에 저장된 데이터 사용
초록
1장. Red Hat 문서에 관한 피드백 제공
Red Hat에서 문서를 개선하는 방법을 알려주십시오. 아래 단계에 따라 문서 페이지에서 직접 피드백을 제공할 수 있습니다.
- 고객 포털에 로그인했는지 확인합니다.
- 이 문서의 다중 페이지 HTML 형식을 보고 있는지 확인합니다.
- 피드백을 제공할 텍스트를 강조 표시합니다. 피드백 추가 프롬프트가 표시됩니다.
- 피드백 추가를 클릭합니다.
- 피드백 텍스트 상자에 의견을 입력하고 제출을 클릭합니다.
일부 Ad Blocker는 Red Hat 문서에 대한 피드백을 제공할 수 있는 기능을 방해할 수 있습니다. ad blocker가 활성화되어 있고 피드백을 남길 수 없는 웹 브라우저를 사용하는 경우 ad blocker를 비활성화하는 것이 좋습니다. ad blocker를 비활성화하는 방법에 대한 자세한 내용은 웹 브라우저에 대한 설명서를 참조하십시오.
Red Hat은 피드백을 제출할 때마다 추적 문제를 자동으로 생성합니다. Submit을 클릭한 후 표시되는 링크를 열고 문제 보기를 시작하거나 더 많은 주석을 추가하여 문제에 대한 자세한 정보를 제공합니다.
피드백을 제공하기 위해 시간을 내어 주셔서 감사합니다.
sendpyter 노트북에서 작업할 때 AWS(Amazon Web Services) Simple Storage Service(S3) 버킷에 저장된 데이터로 작업해야 할 수 있습니다. 이 섹션에서는 Amazon S3에 저장된 데이터를 사용하기 위한 명령 및 절차를 설명합니다.
2장. 사전 요구 사항
- Red Hat OpenShift Data Science에서 실행되는 Hawkularpyter 서버.
- Amazon Web Services S3 버킷에 액세스합니다.
-
Amazon S3 계정의
AWS Access Key ID및AWS Secret Access Key를 찾습니다. - 개인 정보 보호 정책
3장. 노트북 셀을 사용하여 Amazon S3 클라이언트 생성
Amazon S3 버킷의 데이터와 상호 작용하려면 해당 서비스에 대한 요청을 처리할 로컬 클라이언트를 생성해야 합니다.
사전 요구 사항
- Red Hat OpenShift Data Science에서 실행되는 sendpyter 노트북 서버에 액세스할 수 있습니다.
-
내 보안 자격 증명 아래의 Amazon Web Services 계정 값을 사용하여 노트북 서버를 시작할 때
AWS_ACCESS_KEY_ID및AWS_SECRET_ACCESS_KEY환경 변수의 값을 정의합니다.
절차
새 노트북 셀에서 다음을 추가하여 필요한 라이브러리를 가져옵니다.
import os import boto3 from boto3 import session
다른 새 노트북 셀에서 세션 및 클라이언트를 생성하려면 다음을 정의합니다.
인증 정보를 정의합니다.
key_id = os.environ.get('AWS_ACCESS_KEY_ID') secret_key = os.environ.get('AWS_SECRET_ACCESS_KEY')클라이언트 세션을 정의합니다.
session = boto3.session.Session(aws_access_key_id=key_id, aws_secret_access_key=secret_key)
클라이언트 연결을 정의합니다.
s3_client = boto3.client('s3', aws_access_key_id=key_id, aws_secret_access_key=secret_key)
검증
새 셀을 생성하고 다음과 같은 Amazon S3 명령을 실행합니다.
s3_client.list_buckets()
성공적인 응답에는
200의HTTPStatusCode와 다음과 유사한Bucket목록이 포함됩니다.'Buckets': [{'Name': 'my-app-asdf3-image-registry-us-east-1-wbmlcvbasdfasdgvtsmkpt', 'CreationDate': datetime.datetime(2021, 4, 21, 6, 8, 52, tzinfo=tzlocal())}, {'Name': 'cf-templates-18rxasdfggawsvb-us-east-1', 'CreationDate': datetime.datetime(2021, 2, 15, 18, 35, 34, tzinfo=tzlocal())}
4장. 노트북 셀을 사용하여 사용 가능한 Amazon S3 버킷 나열
계정에 사용할 수 있는 버킷을 나열하여 액세스할 수 있는 버킷을 확인할 수 있습니다.
사전 요구 사항
- 노트북의 이전 셀에서 Amazon S3 클라이언트를 구성합니다. 자세한 내용은 노트북 셀을 사용하여 Amazon S3 클라이언트 생성 을 참조하십시오.
절차
새 노트북 셀을 만들고
s3_client를 사용하여 사용 가능한 버킷을 나열합니다.s3_client.list_buckets()
전체 응답이 아닌 이름만 인쇄하면 이 버킷 목록을 더 쉽게 읽을 수 있습니다. 예를 들면 다음과 같습니다.
for bucket in s3_client.list_buckets()['Buckets']: print(bucket['Name'])이렇게 하면 다음과 유사한 출력이 반환됩니다.
my-app-asdf3-image-registry-us-east-1-wbmlcvbasdgasdgtkpt cf-templates-18rxuasgasgvb-us-east-1
5장. 노트북 셀을 사용하여 사용 가능한 Amazon S3 버킷에 파일 나열
버킷의 오브젝트를 나열하여 액세스할 수 있는 버킷에서 사용 가능한 파일을 확인할 수 있습니다. 버킷은 일반적인 파일 시스템이 아닌 오브젝트 스토리지를 사용하므로 오브젝트 이름 지정은 일반 파일 이름과 다르게 작동합니다. 버킷의 오브젝트는 항상 버킷의 전체 경로와 파일 자체의 이름으로 구성된 키로 알려져 있습니다.
사전 요구 사항
- 노트북의 이전 셀에서 Amazon S3 클라이언트를 구성합니다. 자세한 내용은 노트북 셀을 사용하여 Amazon S3 클라이언트 생성 을 참조하십시오.
절차
새 노트북 셀을 생성하고 버킷에 오브젝트를 나열합니다. 예를 들면 다음과 같습니다.
bucket_name = 'std-user-bucket1' s3_client.list_objects_v2(Bucket=bucket_name)
이렇게 하면 다음 형식으로 여러 개체가 반환됩니다.
{'Key': 'docker/registry/v2/blobs/sha256/00/0080913dd3f10aadb34asfgsgsdgasdga072049c93606b98bec84adb259b424f/data', 'LastModified': datetime.datetime(2021, 4, 22, 1, 26, 1, tzinfo=tzlocal()), 'ETag': '"6e02fad2deassadfsf900a4bd7344ffe"', 'Size': 4052, 'StorageClass': 'STANDARD'}전체 응답 대신 키만 인쇄하여 이 목록을 더 쉽게 읽을 수 있도록 할 수 있습니다. 예를 들면 다음과 같습니다.
bucket_name = 'std-user-bucket1' for key in s3_client.list_objects_v2(Bucket=bucket_name)['Contents']: print(key['Key'])이렇게 하면 다음과 유사한 출력이 반환됩니다.
docker/registry/v2/blobs/sha256/00/0080913dd3f10aadb34asfgsgsdgasdga072049c93606b98bec84adb259b424f/data
특정 "path" 또는 파일 이름을 나열하도록 쿼리를 필터링할 수도 있습니다. 예를 들면 다음과 같습니다.
bucket_name = 'std-user-bucket1' for key in s3_client.list_objects_v2(Bucket=bucket_name,Prefix='<start_of_file_path>')['Contents']: print(key['Key'])이전 예에서 <
start_of_file_path>를 사용자 값으로 바꿉니다.
6장. 노트북 셀을 사용하여 사용 가능한 Amazon S3 버킷에서 파일 다운로드
download_file 방법을 사용하여 노트북 서버로 파일을 다운로드할 수 있습니다.
사전 요구 사항
- 노트북의 이전 셀에서 Amazon S3 클라이언트를 구성합니다. 자세한 내용은 노트북 셀을 사용하여 Amazon S3 클라이언트 생성 을 참조하십시오.
절차
노트북 셀에서 다음 세부 정보를 정의합니다.
파일이 있는 버킷입니다. &
lt;name_of_the_bucket>을 고유한 값으로 바꿉니다.bucket_name = '<name_of_the_bucket>'다운로드할 파일의 이름입니다. &
lt;name_of_the_file_to_download>를 고유한 값으로 바꿉니다.file_name = '<name_of_the_file_to_download>' # Full path from the bucket파일을 다운로드한 후 원하는 이름입니다. 전체 경로, 상대 경로 또는 새 파일 이름일 수 있습니다. &
lt;name_of_the_file_when_downloaded>를 사용자 값으로 바꿉니다.new_file_name = '<name_of_the_file_when_downloaded>'
이전 변수를 인수로 지정하여 파일을 다운로드합니다.
s3_client.download_file(bucket_name, file_name, new_file_name)
참고read() 메서드를 사용하여 표준 파일로 스트리밍할 수 있는 오브젝트로 파일을 검색하려면 Amazon Sev Services get object 명령 참조 를 참조하십시오.
7장. 노트북 셀을 사용하여 사용 가능한 Amazon S3 버킷에 파일 업로드
upload_file 방법을 사용하여 노트북 서버의 파일을 Amazon S3 버킷에 업로드할 수 있습니다.
사전 요구 사항
- 노트북의 이전 셀에서 Amazon S3 클라이언트를 구성합니다. 자세한 내용은 노트북 셀을 사용하여 Amazon S3 클라이언트 생성 을 참조하십시오.
절차
노트북 셀에서 다음 세부 정보를 정의합니다.
업로드할 파일의 이름입니다. 여기에는 파일의 전체 로컬 경로가 포함되어야 합니다. &
lt;name_of_the_file_to_upload>를 사용자 값으로 바꿉니다.file_name = '<name_of_the_file_to_upload>'파일을 업로드할 버킷의 이름입니다. &
lt;name_of_the_bucket>을 고유한 값으로 바꿉니다.bucket_name = '<name_of_the_bucket>'파일을 버킷에 저장하는 데 사용할 전체 키입니다. &
lt;full_path_and_file_name>을 고유한 값으로 바꿉니다.key = '<full_path_and_file_name>'
이전 변수를 인수로 지정하여 파일을 업로드합니다.
s3_client.upload_file(file_name, bucket_name, key)