더덕

AWS Glacier에 archive upload, archive download, archive delete 본문

IT/AWS

AWS Glacier에 archive upload, archive download, archive delete

더덕주인 2021. 7. 21. 16:12
반응형

AWS Glacier란?

데이터 보관 및 백업 전용 스토리지 서비스입니다.

 

AWS Glacier 장점

저렴한 가격

사용빈도가 적은 대용량 데이터의 안정적 저장

 

AWS Glacier 단점

직접접근이 불가하여 HTTP 호스팅으로 사용 불가

파일 검색이 불편함

업로드와 다운로드의 시간이 오래 걸림

 

AWS Glacier 용어

  • 볼트(Vault)
    Glacier에서 최상위 폴더 디렉터리를 의미합니다.
  • 아카이브(Archive)
    - Vault 아래에 실제적으로 데이터가 저장되는 단위를 Archive라고 합니다.
  • 반출(Retreval)
    - 아카이브를 다운로드하기 위해 준비하는 작업을 의미합니다. 반출 작업은 수시간 소요되며, 반출이 완료된 시점부터
      일정 시간동안(24시간)만 다운로드가 가능합니다.

 

Vault 생성

[Create vault] 클릭

 

[Vault Name] 입력 후 [Next Step]

 

[Do not enable notifications] 후 [Next Setp]

 

[Summit] 클릭

 

생성된 vault

 

AWS CLI Console Login

Windows CMD 실행 후 aws login

 

Examples

C:\>aws configure
   AWS Access Key ID [None]: accesskey
   AWS Secret Access Key [None]: secretkey
   Default region name [None]: us-west-2
   Default output format [None]:

 

Archive upload

C:\awscli>aws glacier upload-archive --account-id - --vault-name docs --body archive_docs.zip
{
    "location": "/-/vaults/docs/archives/DwgnzBZpBCLT9DaXs31M-Jd8Mtab2EV5K-a8UpnB9cEmuptJDbCSlpwyn0CKEk4dVA_VmGhukh-zA0y8tt92j3FPrrNBANgAs9z7XuScPQ-2sTLoWKJvP8pJTW_wF6icfyobPFkLdA",
    "checksum": "44abcc282e15bf7ebae0c9edf8bb310d34eebf054020240d46ca610fbe35aa97",
    "archiveId": "DwgnzBZpBCLT9DaXs31M-Jd8Mtab2EV5K-a8UpnB9cEmuptJDbCSlpwyn0CKEk4dVA_VmGhukh-zA0y8tt92j3FPrrNBANgAs9z7XuScPQ-2sTLoWKJvP8pJTW_wF6icfyobPFkLdA"
}

 

** 업로드 완료확인까지 수시간이 필요함(Upload후 익일 보는게 정신 건강에 좋음)

C:\awscli>aws glacier describe-vault --vault-name docs  --account-id -
{
    "VaultARN": "arn:aws:glacier:ap-northeast-2:-:vaults/docs",
    "VaultName": "docs",
    "CreationDate": "2021-07-19T02:12:45.377Z",
    "NumberOfArchives": 0,
    "SizeInBytes": 0
}

 

완료되면 Archive 정보가 업데이트 됨

C:\awscli>aws glacier describe-vault --vault-name docs  --account-id -
{
    "VaultARN": "arn:aws:glacier:ap-northeast-2:-:vaults/docs",
    "VaultName": "docs",
    "CreationDate": "2021-07-19T02:12:45.377Z",
    "LastInventoryDate": "2021-07-19T17:05:56.069Z",
    "NumberOfArchives": 1,
    "SizeInBytes": 358589
}


Archive Download

Upload와 다르게 Download는 복잡합니다. ㅠ

 

1. initiate-job inventory-retrieval

C:\awscli>aws glacier initiate-job --account-id - --vault-name docs --job-parameters file://job-archive-retrieval.json
{
    "location": "/-/vaults/docs/jobs/-7Ps8dIMJpKWzFkPlTd5v1A2VtmfI45H12p0o4BS-TRJay7jURZuspY4_4_y_LfkMqt18bughZLWgyjMagQ6_2XBtOhj",
    "jobId": "-7Ps8dIMJpKWzFkPlTd5v1A2VtmfI45H12p0o4BS-TRJay7jURZuspY4_4_y_LfkMqt18bughZLWgyjMagQ6_2XBtOhj"
}

 

job-archive-retrieval.json 파일 내용

{
  "Type": "inventory-retrieval"
}

 

describe-job로 완료 여부 확인(수시간 필요ㅋ)

C:\awscli>aws glacier describe-job --account-id - --vault-name docs --job-id=-7Ps8dIMJpKWzFkPlTd5v1A2VtmfI45H12p0o4BS-TRJay7jURZuspY4_4_y_LfkMqt18bughZLWgyjMagQ6_2XBtOhj
{
    "JobId": "-7Ps8dIMJpKWzFkPlTd5v1A2VtmfI45H12p0o4BS-TRJay7jURZuspY4_4_y_LfkMqt18bughZLWgyjMagQ6_2XBtOhj",
    "Action": "InventoryRetrieval",
    "VaultARN": "arn:aws:glacier:ap-northeast-2:-:vaults/docs",
    "CreationDate": "2021-07-20T06:36:46.255Z",
    "Completed": true,
    "StatusCode": "Succeeded",
    "StatusMessage": "Succeeded",
    "InventorySizeInBytes": 440,
    "CompletionDate": "2021-07-20T10:24:12.394Z",
    "InventoryRetrievalParameters": {
        "Format": "JSON"
    }
}

 

완료되면 inventory를 local에 저장

C:\awscli>aws glacier get-job-output --account-id - --vault-name docs --job-id=-7Ps8dIMJpKWzFkPlTd5v1A2VtmfI45H12p0o4BS-TRJay7jURZuspY4_4_y_LfkMqt18bughZLWgyjMagQ6_2XBtOhj inventory.json
{
    "status": 200,
    "acceptRanges": "bytes",
    "contentType": "application/json"
}
C:\awscli>dir inventory.json
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: 1610-6B77

 C:\awscli 디렉터리

2021-07-21  오전 09:57    <DIR>          .
2021-07-21  오전 09:57    <DIR>          ..
2021-07-21  오전 09:57               440 inventory.json
C:\awscli>type inventory.json
{
"VaultARN":"arn:aws:glacier:ap-northeast-2:-:vaults/docs",
"InventoryDate":"2021-07-19T17:05:56Z",
"ArchiveList":[
{
"ArchiveId":"Fd13uxkh1sIWAfv1b0J1Qap5hAv-oDznOI398V8VNrVQMsOvUIY_qpolJsHCEXaHCzPTGrXGOOFjZPlrBLVLvMZJqBwl6MG-MDqihdOUcE4_j4bVnheqds1TfGybRcwpiSV-DqsqPg",
"ArchiveDescription":"",
"CreationDate":"2021-07-19T05:13:17Z",
"Size":325821,
"SHA256TreeHash":"44abcc282e15bf7ebae0c9edf8bb310d34eebf054020240d46ca610fbe35aa97"
}
]
}

 

Download 준비 요청(수시간 요소)

C:\awscli>aws glacier initiate-job --account-id - --vault-name docs --job-parameters file://archive_retrieval_request.json
{
    "location": "/-/vaults/docs/jobs/-PA8duwbd9qkxnR9Vab4gxyTanj2l1bh_vHxMNFq8sKMpsEws6zTGYXehIr7xI3V4uPHjx7aIL6UerhCtsF-lFZCLM56",
    "jobId": "-PA8duwbd9qkxnR9Vab4gxyTanj2l1bh_vHxMNFq8sKMpsEws6zTGYXehIr7xI3V4uPHjx7aIL6UerhCtsF-lFZCLM56"
}

 

describe-job으로 확인

C:\awscli>aws glacier describe-job --account-id - --vault-name docs --job-id=-PA8duwbd9qkxnR9Vab4gxyTanj2l1bh_vHxMNFq8sKMpsEws6zTGYXehIr7xI3V4uPHjx7aIL6UerhCtsF-lFZCLM56
{
    "JobId": "-PA8duwbd9qkxnR9Vab4gxyTanj2l1bh_vHxMNFq8sKMpsEws6zTGYXehIr7xI3V4uPHjx7aIL6UerhCtsF-lFZCLM56",
    "JobDescription": "Download docs archive",
    "Action": "ArchiveRetrieval",
    "ArchiveId": "Fd13uxkh1sIWAfv1b0J1Qap5hAv-oDznOI398V8VNrVQMsOvUIY_qpolJsHCEXaHCzPTGrXGOOFjZPlrBLVLvMZJqBwl6MG-MDqihdOUcE4_j4bVnheqds1TfGybRcwpiSV-DqsqPg",
    "VaultARN": "arn:aws:glacier:ap-northeast-2:-:vaults/docs",
    "CreationDate": "2021-07-21T01:05:36.716Z",
    "Completed": true,
    "StatusCode": "Succeeded",
    "StatusMessage": "Succeeded",
    "ArchiveSizeInBytes": 325821,
    "CompletionDate": "2021-07-21T04:52:43.972Z",
    "SHA256TreeHash": "44abcc282e15bf7ebae0c9edf8bb310d34eebf054020240d46ca610fbe35aa97",
    "ArchiveSHA256TreeHash": "44abcc282e15bf7ebae0c9edf8bb310d34eebf054020240d46ca610fbe35aa97",
    "RetrievalByteRange": "0-325820",
    "Tier": "Standard"
}

 

Archive Download(진짜 다운로드)

C:\awscli>aws glacier get-job-output --account-id - --vault-name docs --range bytes=0-325820 --job-id=-PA8duwbd9qkxnR9Vab4gxyTanj2l1bh_vHxMNFq8sKMpsEws6zTGYXehIr7xI3V4uPHjx7aIL6UerhCtsF-lFZCLM56 docs.zip
{
    "checksum": "44abcc282e15bf7ebae0c9edf8bb310d34eebf054020240d46ca610fbe35aa97",
    "status": 200,
    "acceptRanges": "bytes",
    "contentType": "application/octet-stream"
}
C:\awscli>dir docs.zip
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: 1610-6B77

 C:\awscli 디렉터리

2021-07-21  오후 02:12           325,821 docs.zip

 

Delete Archive

삭제도 archive-id가 필요하다. (위 inventory 조회 참고)

C:\awscli>aws glacier delete-archive --account-id - --vault-name docs --archive-id Fd13uxkh1sIWAfv1b0J1Qap5hAv-oDznOI398V8VNrVQMsOvUIY_qpolJsHCEXaHCzPTGrXGOOFjZPlrBLVLvMZJqBwl6MG-MDqihdOUcE4_j4bVnheqds1TfGybRcwpiSV-DqsqPg

 

가격은 저렴하지만 파일 확인이 바로 되지 않고 처리 시간이 오래 걸린다는 단점이 있다.

반응형
Comments