시작하며
안녕하세요, 한주현입니다.
오늘은 아마존 AWS S3 Glacier에서 파일 꺼내는 방법에 대해 알아보겠습니다.
목차 |
아마존 AWS S3 란? aws cli 설치하기 S3에서 파일 다운 받기 S3에서 파일 복원(restore)하기 S3에서 파일 복원 과정 확인하기 |
아마존 AWS S3 란?
아마존 AWS S3는 아마존에서 제공하는 Simple Storage Service 로 99.99999999999%의 안정성을 가진 저장공간입니다.
저는 주로 업무에서 S3 서비스를 유전체 데이터의 저장공간, 서버리스 웹 서비스 저장공간 등의 용도로 사용하고 있습니다.
S3의 장점이라 함은 싼 가격에 있는데요, 가격을 알아보겠습니다.
종류 | GB당 요금 | 1TB 로 계산 시 |
S3 | $0.025/GB | $25/TB |
S3 Glacier | $0.005/GB | $5/TB |
S3 Glacier Deep Archive | $0.002/GB | $2/TB |
USB 메모리가 128GB 가 25,000원으로 대략 195원/GB 인걸 생각하면
S3의 요금은 약 30원/GB 정도로 가격이 엄청 싼것을 확인할 수 있습니다.
게다가 아마존 내 서비스들과 연동도 되며 빠른 속도로 EC2 등에 전송도 가능합니다.
aws cli 설치하기
커맨드 라인에서 aws 서비스들을 다루기 위해서는 aws cli라는 것을 설치해야 합니다.
간단하게 pip로 설치하시면 됩니다 ㅎㅎ;
$ pip install awscli
그리고 aws configure를 진행 합니다
$ aws configure
AWS Access Key ID []:
AWS Secret Access Key []:
Default region name []:
Default output format []:
S3에서 파일 다운 받기
커맨드라인에서 aws s3의 파일을 다운받기 위해서는 다음과 같이 입력합니다.
aws s3 cp s3://<원본파일> <복사하려는 위치>
s3에서 원하는 위치로 정상적으로 복사가 되기도 하지만,
만약 파일이 glacier에 있다면 다음과 같이 오류가 발생합니다.
warning: Skipping file s3://test.txt.
Object is of storage class GLACIER.
Unable to perform download operations on GLACIER objects.
You must restore the object to be able to perform the operation.
See aws s3 download help for additional parameter options to ignore or force these transfers.
파일을 꺼내려면 restore 를 하라고 하는군요.
S3에서 파일 복원(restore)하기
glacier에 들어간 파일을 복원하는 방법은 다음과 같습니다.
aws s3api restore-object \
--bucket <버킷이름> \
--key <파일이름> \
--restore-request '{"Days:2", "GlacierJobParameters":{"Tier":"Bulk"}'
길어서 \ 기호로 잘랐는데 한 줄로 쓰셔도 됩니다.
--restore-request 옵션에서 Days와 GlacierJobParameters가 있는데
Days는 파일을 복원 후 지정한 기간 동안 받을 수 있고
기간이 지나면 다시 glacier로 들어가게 됩니다.
GlacierJobParameters에서 Tier는 glacier에서 restore하는 속도를 의미하는데
Bulk 이외에도 Expedited, Standard가 있습니다.
다음은 Tier의 종류를 정리한 표입니다.
종류 | Expedited | Standard | Bulk |
Glacier | 1-5 분 | 3-5 시간 | 5-12 시간 |
Deep archive | NA | 12시간 이내 | 48시간 이내 |
당연하겠지만, 빠르면 빠를 수록 restore하는데 가격이 더 비쌉니다.
S3에서 파일 복원 과정 확인하기
복원이 완료되었는지 여부는 cli 에서 다음과 같이 확인할 수 있습니다.
aws s3api head-object \
--bucket <버킷이름> \
--key <파일이름>
복원이 진행중이라면 다음과 같이 나옵니다. ongoing-request 가 true 임을 확인해봅시다.
{
"Restore": "ongoing-request=\"true\"",
...
"StorageClass": "GLACIER",
"Metadata": {}
}
복원이 끝났다면 다음과 같이 나옵니다. ongoing-request 가 false 임을 확인해봅시다.
{
"Restore": "ongoing-request=\"false\"",
...
"StorageClass": "GLACIER",
"Metadata": {}
}
만약 복원 과정이 아니고 glacier에 있는 상태라고 하면 다음과 같이 StorageClass가 GLACIER 라고 나옵니다.
{
...
"Metadata": {},
"StorageClass": "GLACIER"
}
오늘은 아마존 S3와 awscli, 다운, 복원 방법에 대해 알아보았습니다.
여러분들께 도움이 되셨음 좋겠습니다.
그럼 다음 포스트에서 만나요~
참고문헌
aws s3 요금
https://aws.amazon.com/ko/s3/pricing/?nc=sn&loc=4
aws cli 설치
https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-chap-install.html
aws glacier restore
https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html
'컴퓨터' 카테고리의 다른 글
[AI] 5분 만에 GPT3 chatbot 만들기 (4) | 2023.01.08 |
---|---|
[AWS] S3 다운로드 , 업로드 속도 제한 방법 (0) | 2020.02.23 |
댓글