객체 삭제를 방지하기 위한 Cloud Storage 기능 살펴보기
안녕하세요, 클루커스 구글 클라우드 컨설턴트 오지수 입니다.
Cloud Storage는 Google Cloud의 객체 스토리지로써 많이 활용되는 서비스인데요.
활용 방법이 다양한 만큼 객체 관리에 관심이 있으신 분들에게 도움이 되고자 글을 작성하였습니다.
객체 보관을 안전하게 할 수 있기 위한 Cloud Storage의 유용한 기능을 소개하려고 합니다.
Soft Delete 기능의 정의
Soft Delete 기능은 삭제 명령으로 삭제되거나 덮어쓰기로 인해 삭제된 객체를 유지하여 버킷 객체가 캡처되고 보존되도록 하는 기능입니다.
이를 통해 사용자는 객체가 실수로 또는 악의적으로 삭제되는 것을 방지할 수 있습니다.
Soft Delete 기능을 활성화한 후 삭제된 객체는 Soft Delete 상태로 전환되는데요.
쉽게 설명드리면 객체가 바로 영구 삭제되지 않고 설정한 보존 기간이 경과한 후 영구적으로 삭제되게 됩니다.
사용자의 입장에서는 객체가 삭제 되더라도 일정기간 동안 복구가 가능한 유예기간을 얻게 된다고 생각해주시면 좋을 것 같습니다.
이후엔 Soft Delete 기능을 설정하는 방법과 고려해야할 점들을 알아보고, Cloocus에서 드리는
팁까지 소개해 보겠습니다.
Soft Delete 기능 설정
Soft Delete기능은 Cloud Storage의 버킷을 생성할 때 설정할 수 있는 옵션 중 하나인데요.
활성화하게 되면 기본적으로 보존기간이 7일로 설정되고, 커스텀 보존 기간 설정 옵션을 택하여 최대 90일까지도 설정할 수 있습니다.
또한, 버킷을 생성 한 후에도 Soft Delete 기능을 비활성화하거나 보존기간의 업데이트가 가능합니다.
- 클루인’s REVIEW
– Soft Delete 보존 기간은 Soft Delete 정책이 적용된 후에 삭제하는 개체에만 적용되므로, 중요한 파일을 삭제하게 될 시 꼭 해당 기능이 활성화 되어 있는지 검토하는 것이 좋습니다.
– 버킷의 Soft Delete 정책을 업데이트해도 기존의 Soft Delete된 객체에는 영향을 미치지 않습니다. 기존의 Soft Delete된 객체는 삭제될 당시에 설정된 보존 기간 동안 보관됩니다.
조직 정책에서 Soft Delete 보존 기간 정의 하기
지금까지 기업에서 Soft Delete 기능을 왜 활용해야하고, 어떻게 설정하는지에 대해서 알아보았습니다.
다만, 다량의 버킷을 관리해야하는 상황일 경우엔 개별적으로 설정하거나 관리하기가 부담스러우실 수 있을 텐데요.
이럴 때 고려할 수 있는게 조직정책 입니다.
조직 정책으로 Soft Delete 보존 기간을 일괄적으로 정의하고, 특수한 목적을 가진 프로젝트 또는 개별 버킷의 경우 예외처리를 하시면 더욱 효율적인 운영이 가능합니다.
예를들어 조직차원에서는 30일의 보존기간을 설정하였지만, 태그등을 활용하여 보존기간이 필요하지 않은 프로젝트나 버킷의 경우 0일로 정책을 할당할 수 있습니다.
이때 유의하실 점은 이미 운영중인 환경의 경우 조직정책을 업데이트 하더라도 기존에 생성된 리소스엔 소급 적용이 되지 않으므로, 수동으로 위반사항들을 해결해 주셔야합니다.
- 클루인’s REVIEW
– 조직정책적으로 Soft Delete 기능을 적용하게 될 시, 신규생성 및 업데이트시 조직정책 상 정의한 보존기간만 선택 가능합니다.
– 별도의 보존기간이 필요할 시, 정책을 조건부로 생성하시어 관련 태그를 할당함으로써 예외 처리가 가능합니다.
삭제한 객체 복구하기
마지막으로, Soft Delete 기능을 설정하는 본 목적인 삭제한 객체를 복구하는 방법에 대해서 알아볼텐데요.
객체를 복구할 때는 크게 삭제한 객체만 복구하는 케이스와 버킷을 삭제한 경우로 나눠지게 됩니다.
먼저, 삭제한 객체를 복구하기 위해선 해당 버킷에 들어간 후 정렬 기준을 [Soft Delete Only]로 설정하면 삭제된 객체를 확인할 수 있습니다.
이미지 자료를 보시면, 객체가 업데이트된 내역도 버전 히스토리상으로 남아있는것을 확인하실 수 있는데요.
Soft Delete 정책이 활성화 되면 삭제된 객체는 물론 객체의 변경사항도 모두 캡쳐되기 때문입니다.
(*예시에서는 파일의 이름을 재정의하였습니다.)
삭제 된 객체들중 하나를 선택 후 Detail 페이지에서 버전 히스토리 탭으로 이동하면 restore 버튼을 확인 할 수 있는데요. 간단히 클릭을 통해 복구가 가능합니다.
다만, 대량으로 객체를 삭제한 경우에는 이와 같이 개별적으로 작업하기엔 시간과 노력이 많이 필요할텐데요. 이땐 버킷 수준에서 Restore Job을 구성할 수 있습니다.
Restore Job을 구성할 때는 특정 시점을 지정하여 다량의 객체를 복구할 수도 있고, glob 패턴으로 필터링을 입력하여 glob 패턴 기준을 충족하는 객체만 복원할 수도 있습니다.
즉, 많은 수의 객체를 복원하거나 복원하려는 특정 객체를 모르는 경우 유용합니다.
다음은, 버킷 자체를 삭제했을 경우인데요. Soft Delete 기능을 활성화 한 체로 버킷을 삭제했다면 Google Cloud의 Support Case를 통해 버킷의 복구를 우선적으로 요청해야합니다.
Google 내부 프로세스에 따라 버킷이 복구 된 후엔, 앞서 설명 드린 것처럼 객체 복구 또는 버킷 수준에서 Restore Job을 구성할 수 있습니다.
- 클루인’s REVIEW
– 기본적으로 설정한 Soft Delete 보존 기간 이내에 복구작업을 수행해야합니다. Soft Delete 보존기간이 지난 이후엔 영구 삭제되므로 복구가 불가능합니다.
– 버킷 복구 요청시에도 일정 시간이 소요 되므로, 충분한 유예기간을 두고 복구 작업을 진행할 것을 권장드립니다.
– 프로젝트를 삭제하면 Cloud Storage에서 해당 프로젝트 내의 모든 버킷과 객체를 영구 삭제합니다. 해당 케이스에서는 Soft Delete 기능을 사용하여 객체와 버킷을 복원할 수 없습니다.
결론
지금까지 Cloud Storage의 객체를 안전하게 보존하기 위한 유용한 기능에 대해 알아보았습니다.
Soft Delete 기능을 활성화 하면 악의적인 의도 또는 실수로 파일을 삭제했을 경우에도 객체 복구가 가능합니다.
그러므로, 버킷에 보관 된 객체의 중요도가 높다면 Soft Delete 보존 정책을 장기로 설정하여 객체의 영구삭제를 방지할 것을 권장드립니다.
클루커스와 함께 Cloud Storage의 중요 객체들을 보호하고, 객체 보존 정책을 효과적으로 적용하여 기업의 비즈니스 상황에 더욱 알맞은 의사결정을 진행해보세요!
Reference
[1] 소프트 삭제
[2] 조직정책의 상속 예시