참고서적 : 아마존 웹 서비스를 다루는 기술 11장

image.png

11.1 - 버킷 생성하기
11.2 - S3 버킷에 파일 올리기/받기
11.3 - S3 세부 설정하기

이번 글에서는 AWS에서 S3 데이터를 백업하는 두 가지 방법에 대해 알아보겠습니다.

0. S3 데이터가 유실되었을때 대처법은?

AWS S3'버킷 버저닝' 혹은 '수명 주기' 설정을 통해 사용자는 S3데이터가 유실되었을때 손쉽게 백업된 데이터를 활용할 수 있습니다.

1. 버킷 버저닝 설정

이번 실습을 위해선 AWS S3에 1개의 Bucket이 필요합니다.

첫번째 방법은 S3의 내장 기능인 '버킷 버저닝(S3 Version Control)' 방법을 사용하는 것입니다. 이를 활용하면 손쉽게 파일들의 버전을 관리할 수 있으며, 삭제된 파일도 복구할 수 있습니다.

먼저 버킷 버저닝 기능을 활성화 하기 위해 버킷의 Properties 탭의 Versioning 블럭을 클릭해 줍니다.

image.png

다음으로, Enable Versioning을 선택후 저장하면 손쉽게 버킷 버저닝 기능이 활성화 됩니다.

image.png

자, 이제 기본적인 설정은 완료했습니다. 이제 다시 Overview 탭으로 돌아가보면, 아래와 같은 Version이라는 토글이 생성되어 있습니다.

image.png

이제 사용자는 해당 토글을 눌러 파일의 버전을 손쉽게 확인 할 수 있습니다.

2. 버킷 버저닝 파일 복구

이제 버전관리 기능을 활용해 삭제된 파일을 복구해보겠습니다.

먼저 테스트에 활용할 이미지 파일 하나를 버킷에 업로드 하고 Version 토글Show를 활성화 시키면, 아래와 같이 업로드한 파일의 Version ID를 확인 할 수 있습니다.

image.png

다음으로, 업로드한 파일을 콘솔창에서 한번 삭제해 보겠습니다.

이때 Version 토글이 반드시 Hide로 활성화되어 있어야 합니다. 만약 Show인 상태에서 파일을 선택해 삭제할 경우 버킷 버저닝에 관계없이 선택한 파일은 영구히 삭제됩니다.

Version 토글Hide로 선택 -> 마우스 우클릭 -> 삭제버튼으로 파일을 삭제합니다.

image.png
파일 삭제 후 다시 Version 토글Show로 선택하면,

버킷 버저닝이 활성화되어 있기 때문에 삭제된 파일 우측에는 (Delete Marker)가 표시되어 있습니다.

image.png

이렇게 삭제된 파일은 동일하게 선택 -> 마우스 우클릭 -> 삭제버튼으로 파일을 복구 할 수 있습니다. (Delete Marker가 붙어있는 파일을 선택 후 삭제)

삭제를 눌렀는데 왜 복구가 된다는거지? 라고 생각하실 수 있습니다.

위의 논리는 현재의 최신버전(삭제된 상태)의 Version을 지워 이전의 버전(삭제되기 이전의 상태)으로 되돌아간다고 이해하면 될 것 같습니다.

위의 방법을 사용한다면, 실제 서비스에서 사용하는 파일이 실수로 삭제되거나 변경되었을경우 손쉽게 해당 파일을 복구 할 수 있습니다.

3. 버킷 수명 주기 설정

S3는 버킷에 저장된 객체의 수명 주기를 관리할 수 있는 기능이 있습니다. 이 기능은 일정 시간이 지났을 때 사용되지 않는 파일들을 삭제하거나 다른 곳에 백업하여 S3 저장 공간을 절약 할 수 있습니다.

버킷의 수명 주기 규칙을 추가하기 위해 아래와 같이 Management 탭의 + Add lifecycle rule 버튼을 눌러줍니다.

image.png

다음으로, 수명 주기 규칙의 이름과 Prefix를 입력합니다. Prefix란 규칙을 적용할 객체를 의미합니다. version/라고 입력하면 version 폴더에 규칙이 적용됩니다.

image.png

다음으로, Transitions 규칙을 입력합니다. Transitions는 백업데이터를 어떤 스토리지로 보낼지 정의합니다.

Storage class transitionCurrent version으로 선택하고, +Add transition을 클릭해 Transition to Glacier after를 선택하고 days에는 S3에 파일이 업로드된 후 몇일 후에 백업 전용 스토리지로 해당 파일을 이동시킬 것인지 입력합니다.

image.png

다음으로, Expiration 규칙을 입력합니다. Expiration는 설정한 날짜에 데이터를 완전히 삭제합니다.

image.png

마지막으로 저장을 눌러주면, 아래와 같이 수명 주기 규칙이 생성됩니다.

image.png

위와 같은 '수명 주기 규칙'을 사용하면 간단하게 S3 데이터를 백업 및 관리할 수 있습니다.

주의점으로는 '수명 주기 규칙'을 추가하면 '버킷 버저닝'기능은 더이상 사용할 수 없게 됩니다. 버저닝 기능을 다시 사용하고 싶다면, 추가된 모든 '수명 주기 규칙'을 삭제해야합니다.

4. 결론

S3 데이터를 백업 및 관리하려면?
-> 버킷 버저닝 혹은 수명 주기 규칙을 사용하면된다. 단, 두개의 기능은 동시에 사용할 수 없으므로 사용자의 판단에 따라서 선택해 사용하면 된다.