다루는 내용
∙ S3를 통한 아카이빙
∙ Glacier를 통한 아카이빙
실습
S3를 통한 아카이빙
S3에 arang-lab이라는 버킷이 생성되어 있다.
1. 폴더 생성
backup1, backup2 폴더를 생성한다.
2. Lifecycle 적용 (backup1 폴더)
1) Properties 클릭
2) Lifecycle 클릭
3) Add rule 클릭
4) Apply the Rule to :
· A Prefix 선택
· backup1/ 입력 (반드시 폴더명 뒤에 ‘/’를 입력한다.)
5) Configure Rule 클릭
6) Action on Objects
· Archive to the Glacier Storage Class 선택
· Days after the object’s creation data : 0입력
7) Transitioning Smaller Objects to Glacier May Increase Costs
· I acknowledge that the Archive to Glacier Storage Class Lifecycle rule I am setting up will likely increase my storage costs. 체크
(S3에 있는 파일을 Glacier에 저장할 때 메타데이터를 추가하므로 256KB보다 작은 파일을 아카이빙하면 오히려 비용이 더 발생할 수 있다는 메시지)
8) Review 클릭
9) Rule Name : backup1 입력
10) Create and Activate Rule 클릭
3. Lifecycle 적용 (backup2 폴더)
Days after the object’s creation data : 1입력
4. 파일 업로드
1) backup1, backup2 폴더에 파일 업로드
동일한 파일을 동일 시각에 업로드한다.
예. Last Modified: Mon Sep 07 10:29:21 GMT+900 2015
5. 확인
아카이빙은 비동기로 발생한다. 정확히 정해진 시각에 아카이빙 되는 것은 아니다.
· 0일로 설정한 backup1 : 약 40시간 후에 아카이빙되었다.
· 1일로 설정한 backup2 : 50시간이 지난 현재도 아카이빙되지 않았다.
6. 복원
1) 아카이빙된 파일 우클릭
2) Initiate Restore 클릭
3) days : 1입력
입력 값은 아카이빙되어 있는 파일을 restore(access 가능) 상태로 유지할 기간이다.
4) OK 클릭
5) 확인
해당 파일의 Properties를 보면 ‘Restoration in progress‘ 상태이다. 약 3-5시간 후에 access 가능하다.
restore가 완료되면 상태가 변경되며, access 가능하다.
7. 참고툴
3rd-party 툴을 이용하여 손쉽게 적용할 수도 있다.
Glacier를 통한 아카이빙
기본 개념
∙ 아카이브(Archive) : Glacier에 저장된 객체. 각 아카이브들은 고유한 ID를 가진다.
∙ 볼트(Vault) : 아카이브들의 컨테이너(디렉토리)
∙ 볼트 인벤토리(Vault Inventory) : 아카이브 목록 및 메타데이터
∙ 반출, 검색(Retrieval) : 아카이브를 다운로드 가능 상태로 변경하는 작업
볼트 생성
1. 콘솔에서 Glacier 클릭
2. Get started 클릭
3. Step 1: Vault Name 페이지에서
1) Region : us-west-2
2) Vault Name : sampleVault 입력
3) Next Step 클릭
4. Step 2: Event Notifications 페이지에서
1) Enable notifications and create a new SNS topic 선택
2) Next Step 클릭
5. Step 3: Event Notification Details 페이지에서
1) Topic Name : sampleGlacier 입력
2) Display Name : Glacier Job 입력
3) Archive Retrieval Jop Complete : 체크
4) Vault Inventory Retrieval Job Complete : 체크
5) Next Step 클릭
6. Step 4: Review 페이지에서
1) submit 클릭
SNS 설정
볼트 생성 과정에서 알림을 위해 SNS Topic를 만들었지만, Topic의 Suscriptions을 만들지 않았다.
1. 콘솔에서 SNS 클릭
2. 왼쪽 메뉴에서 Topics 클릭
3. sampleGlacier 토픽의 ARN 클릭
4. Create Subscription 클릭
1) Protocol : Email 선택
2) Endpoint : arang@gsneotek.co.kr 입력
3) Create Subscription 클릭
5. 메일 검증
Display name으로 입력한 값이 메일의 from값이 되어 메일이 발송된다.
Confirm Subscription을 클릭하여 유효한 메일 임을 알린다.
6. 확인
파일 아카이빙 (볼트에 파일 업로드)
현재 AWS 콘솔에서는 Glacier의 Vault에 파일 읽기, 쓰기 작업을 할 수 없다. 아카이브 작업을 하기 위해서는 SDK(JAVA, .NET) 혹은 CLI를 이용해야한다. 여기서는 CLI를 이용한다.
1. 아카이브 업로드
볼트를 생성한 후 최초 아카이브를 하게되면 24시간이 지나야 Inventory 정보가 업데이트된다.
파일 다운로드
1. 인벤토리 반출
2. 작업 상태 확인
InProgress 상태이며, 3-5시간 후에 반출 작업이 완료되면 SNS를 통해 알림 메일이 발송된다.
3. 결과 확인
get-job-output으로 JobId의 인벤토리 반출 결과를 확인할 수 있다.
· output.json 파일
ArchiveID가 포함된 리스트이다.
4. 아카이브 반출
반출할 ArchiveID를 포함하여 job-archive-retrieval.json 파일을 만든다.
PolicyEnforcedException 에러가 발생하면 Data Retrieval Policy를 수정한다.
5. 작업 상태 확인
6. 아카이브 다운로드
인벤토리 반출 결과를 출력하는 것과 동일하게 get-job-output을 이용하여 아카이브를 다운로드한다.
7. 참고툴
http://fastglacier.com/
glacier-fastglacier