Prerequisite
AWS CLI 사용을 위해 설치 및 구성이 필요합니다.[1]
S3에 대한 액세스 권한이 부여되어 있는 지 확인이 필요하며, 권한이 없다면 작업 진행 전 권한 부여가 필요합니다.
Process
1. S3 MultiPart Download
- 현재 작업 디렉터리로 파일을 복사합니다.
aws s3 cp s3://bucket-name/example ./
- <time> 명령어를 통해 다운로드 되는 시간을 확인합니다.
time aws s3 cp s3://bucket-name/example ./
(옵션) AWS CLI 구성파일을 수정하여 옵션을 Profile로 저장할 수 있습니다.
- S3 CLI 옵션을 지정하여 프로파일을 생성합니다.
- ~/.aws/config 위치를 편집하여 프로파일을 추가합니다.
[profile develoment]
aws_access_key_id = xxxxxxxxxxxxxxxxxxxx
aws_secret_access_key = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
max_concurrent_requests = 20 #(default 10)
multipart_threshold = 64MB #(default 8MB)
multipart_chunksize = 16MB #(default 8MB - aws configure 명령어로도 프로파일을 수정할 수 있습니다.(default profile에 설정)
aws configure set default.s3.max_concurrent_requests 20
aws configure set default.s3.multipart_threshold 64MB
aws configure set default.s3.multipart_chunksize 16MB - 기본 프로파일이 아닌 프로파일에 설정할 수 있습니다.(test-profile에 설정)
- max_concurrent_requests : 주어진 시간에 허용되는 최대 전송 명령 수를 지정합니다.
- 감소하면 리소스 사용량이 줄어들지만 응답속도가 느려질 수 있습니다.
- 증가하면 네트워크 대역폭 및 리소스 사용량이 늘어나며 전송 속도가 단축될 수 있습니다.
- multipart_threshold : 파일을 업로드, 다운로드 할 때 지정된 임계값에 도달하면 멀티파트로 전환됩니다.
- multipart_chunksize : 멀티파트 작업을 사용할 때 청크로 나눠지는 단위입니다.
- max_concurrent_requests : 주어진 시간에 허용되는 최대 전송 명령 수를 지정합니다.
- 프로파일을 사용합니다.
export AWS_PROFILE=develoment
- ~/.aws/config 위치를 편집하여 프로파일을 추가합니다.
2. S3P 오픈소스 도구 사용
- NodeJS가 설치된 상태에서 npm 패키지에 포함되어 있어 npx 명령어로 실행할 수 있습니다.
npx s3p
- npm 패키지로 설치하여 로컬에서 실행할 수 있습니다.
npm install s3p -g
npx s3p help
- AWS CLI 자격증명을 공유하므로 자격증명 구성이 필요합니다.
- 특정 버킷의 내용을 확인할 수 있습니다.
npx s3p summarize --bucket my-bucket-name
- 특정 버킷의 객체를 로컬로 다운받을 수 있습니다.
s3p cp --bucket my-bucket --to-folder my/local/folder
- 특정 버킷의 소스 접두사가 포함된 객체만 복사합니다.
s3p cp --bucket my-bucket --to-bucket my-to-bucket --prefix 2020-04-14/
- npm 패키지로 설치하여 로컬에서 실행할 수 있습니다.
Reference
- https://docs.aws.amazon.com/cli/latest/topic/s3-config.html
- https://www.genui.com/open-source/s3p-massively-parallel-s3-copying
- https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-chap-configure.html
- https://aws.amazon.com/ko/blogs/korea/amazon-s3-multi-part-dowload
End of document
※스마일샤크가 제공하는 모든 콘텐츠는 관련 법의 보호를 받습니다. 스마일샤크 콘텐츠를 사전허가 없이 무단으로 복사·배포·판매·전시·개작할 경우 민·형사상 책임이 따를 수 있습니다. 콘텐츠 사용과 관련해 궁금한 점이 있으면 전화(☎:0507-1485-2028) 또는 이메일(contact@smileshark.kr)로 문의하기 바랍니다.
댓글
댓글 0개
댓글을 남기려면 로그인하세요.