이 페이지에서는 삭제되거나 덮어쓴 객체와 버킷을 지정된 기간 동안 보존하는 소프트 삭제 기능을 설명합니다. 소프트 삭제는 삭제된 객체 또는 버킷을 소프트 삭제된 상태로 보존하여 우발적이거나 악의적인 삭제로부터 데이터를 보호하는 데 도움이 됩니다. 소프트 삭제된 상태에서는 객체 또는 버킷을 영구적으로 삭제할 수 없습니다. 소프트 삭제는 모든 버킷에서 기본적으로 사용 설정되어 있으며, 사용자와 조직에서 다른 정책을 선택하지 않는 한 보관 기간은 7일입니다.
개요
버킷에 소프트 삭제를 사용 설정하는 경우 버킷 또는 버킷 내 객체를 삭제하면 영구적으로 삭제되는 대신 리소스에서 소프트 삭제된 상태로 전환됩니다. 소프트 삭제된 객체와 버킷은 다음과 같이 작동합니다.
소프트 삭제된 객체는 읽거나 수정할 수 없습니다.
소프트 삭제된 버킷은 수정할 수 없습니다.
나열 작업에서는 기본적으로 소프트 삭제된 객체를 제외합니다.
소프트 삭제된 객체 및 버킷에서 지원되는 유일한 작업은 나열하거나 복원하는 것입니다.
자동 클래스, 객체 수명 주기 관리, 버킷 잠금, 객체 보관 잠금과 같은 기능은 소프트 삭제와 호환되지만 소프트 삭제된 객체에 영향을 미치지 않습니다.
버킷에 소프트 삭제를 사용 설정하려면 버킷과 버킷 내의 객체가 영구적으로 삭제되기 전에 보관되는 기간을 제어하는 보관 기간을 지정하는 소프트 삭제 정책을 만듭니다.
버킷에 소프트 삭제를 사용 설정 또는 중지하는 소프트 삭제 정책을 설정하고 관리하는 방법은 소프트 삭제 사용을 참조하세요.
소프트 삭제 정책
기본적으로 새로 생성된 모든 버킷에 소프트 삭제가 사용 설정되어 있습니다. 소프트 삭제 정책을 수정하여 버킷의 소프트 삭제를 사용 설정하거나 중지할 수 있습니다. 소프트 삭제 정책은 버킷 생성 또는 업데이트 요청 중에 설정, 삭제 또는 수정할 수 있습니다.
소프트 삭제 정책은 다음과 같이 작동합니다.
버킷의 소프트 삭제 정책을 업데이트하면 소프트 삭제 정책이 적용된 후에 삭제하는 객체에만 소프트 삭제 정책이 적용됩니다. 업데이트 전에 삭제한 객체는 삭제 시 적용되었던 기간 동안 보관됩니다.
예를 들어 버킷에서 기본 보관 기간이 7일인 소프트 삭제 정책을 사용 설정한 후
cat.png
객체를 삭제한다고 가정해 보겠습니다. 이 시나리오에서cat.png
는 다음 7일 동안 소프트 삭제된 객체로 보관된 후 영구 삭제됩니다. 나중에 버킷의 소프트 삭제 정책을 변경하거나 삭제해도 이와 같습니다.기존 버킷에 새 소프트 삭제 보관 기간을 추가해도 소프트 삭제 정책이 적용되기 전에 삭제된 객체나 버킷에는 적용되지 않습니다.
프로젝트를 삭제하면 소프트 삭제가 사용 설정되어 있더라도 소프트 삭제를 사용하여 버킷이나 객체를 복원할 수 없습니다. 악의적이거나 우발적으로 삭제 시 데이터가 손실되지 않도록 하려면 프로젝트에 선취권을 적용하거나 다른 프로젝트의 버킷에 비즈니스에 중요한 데이터를 백업하여 프로젝트 수준 삭제에 대한 액세스를 제한하는 것이 좋습니다.
버킷이 삭제되어도 버킷 내의 객체가 영구적으로 삭제되지 않지만 소프트 삭제된 버킷을 먼저 복원하지 않는 한 이를 나열하거나 복원할 수 없습니다. 소프트 삭제된 버킷을 복원하면 버킷이 포함된 라이브 객체 없이 복원됩니다. 객체 복원 작업을 수행하거나 새 객체를 추가해야 합니다. 소프트 삭제된 버킷 사용에 관한 자세한 내용은 소프트 삭제된 버킷 복원을 참조하세요.
소프트 삭제 보관 기간
소프트 삭제 정책의 보관 기간에는 삭제된 객체 또는 버킷을 복원할 수 있지만 기간이 종료되면 Cloud Storage에서 소프트 삭제된 리소스를 영구 삭제합니다.
버킷을 만들면 기본 보관 기간이 7일인 소프트 삭제 정책이 버킷에 추가됩니다. 정책의 보관 기간을 수정하거나 새 기본 보관 기간을 설정할 수 있습니다. 설정할 수 있는 최대 보관 기간은 90일이고 최소 보관 기간은 7일입니다. 보관 기간을 0
으로 설정하여 버킷에서 소프트 삭제를 사용 중지할 수도 있습니다.
소프트 삭제된 객체 복원
소프트 삭제된 객체를 복원하면 Cloud Storage에서 동일한 버킷에 소프트 삭제된 객체의 복사본을 만듭니다.
소프트 삭제된 객체의 복원 동작은 다음과 같이 설명할 수 있습니다.
소프트 삭제된 객체를 복원하면 Cloud Storage에서 동일한 버킷에 객체의 새로운 라이브 버전을 만듭니다. 객체의 소프트 삭제된 버전은 보관 기간이 만료될 때까지 버킷에 남아 있습니다.
경우에 따라 복원 시점에 소프트 삭제된 객체와 이름이 동일한 라이브 객체가 이미 있는 경우 복원된 객체가 라이브 객체를 대체하고 라이브 객체가 소프트 삭제됩니다. 이러한 시나리오에서는 버킷에 다음 객체가 포함됩니다.
보관처리되거나 소프트 삭제된 상태의 교체된 라이브 객체
이전에 소프트 삭제된 객체의 사본 2개(라이브 사본 한 개와 여전히 소프트 삭제된 사본 한 개)
소프트 삭제된 객체는 여러 메서드를 사용하여 복원할 수 있습니다. 소프트 삭제된 객체를 동기식으로 복원하거나 특정 기준을 충족하는 객체를 일괄 복원하는 장기 실행 작업을 만들 수 있습니다.
계층적 네임스페이스가 사용 설정된 버킷에서 소프트 삭제된 객체 복원
드물지만 이름과 생성 값이 동일한 중복된 소프트 삭제된 객체가 계층적 네임스페이스가 사용 설정된 버킷에 발생할 수 있습니다. 이 시나리오를 살펴보겠습니다.
- 객체
folderA/my-object.txt
가 소프트 삭제됩니다. - 그런 다음 상위 폴더인
folderA
가 삭제됩니다. folderB
를folderA
로 이름을 바꿔 다른 객체인folderB/my-object.txt
가 원래 경로로 이동합니다. 이제 이 객체는folderA/my-object.txt
가 됩니다.- 이 새로운
folderA/my-object.txt
객체도 소프트 삭제됩니다.
Cloud Storage의 각 객체 버전에는 고유한 세대 값이 있지만 원본 folderA/my-object.txt
및 folderB/my-object.txt
와 같이 독립적으로 생성된 객체는 우연히 동일한 세대 값을 공유할 수 있습니다. 이 시나리오와 결합하면 이름(folderA/my-object.txt
)과 생성 값이 동일한 두 개의 소프트 삭제된 객체가 생성될 수 있습니다.
올바른 객체를 복원, 나열 또는 가져오려면 요청에 restoreToken
파라미터를 포함하세요.
계층적 네임스페이스가 사용 설정된 버킷에서 소프트 삭제를 사용할 때는 다음 정보를 고려하세요.
restoreToken
파라미터를 사용하지 않고 중복 객체를 복원, 나열 또는 가져오려고 하면 객체 복원 또는 객체 목록 요청에서restoreToken
파라미터를 사용하라는 오류가 표시됩니다.객체 복원, 목록 또는 가져오기 요청의 일부로
restoreToken
,name
또는generation
파라미터에 잘못된 값을 사용하면 지정된 객체가 존재하지 않음을 나타내는 오류가 표시됩니다.
버킷 복원
소프트 삭제된 버킷을 복원하면 버킷이 라이브 상태로 돌아가고 삭제 시 버킷에 있던 객체도 소프트 삭제 보관 기간 내에 복구할 수 있게 됩니다.
소프트 삭제된 객체와 마찬가지로 Cloud Storage는 보관 기간 중에 소프트 삭제된 버킷이 복원되지 않은 경우 소프트 삭제 보관 기간이 종료되면 소프트 삭제된 버킷을 영구적으로 삭제합니다.
가격 책정
소프트 삭제된 객체에는 보관 기간이 지난 후 소프트 삭제된 객체가 영구 삭제될 때까지 스토리지 요금이 청구됩니다. 소프트 삭제된 객체와 관련된 비용에 대한 자세한 내용은 Cloud Storage 가격 책정을 참조하세요.
소프트 삭제 비용 최적화
데이터 보호를 유지하면서 수명이 짧은 임시 객체의 스토리지 비용을 절감하려면 다음을 권장합니다.
객체 이름 바꾸기: 객체를 복사하고 원본을 삭제하는 대신 객체: 이동 API를 사용하여 수명이 짧은 임시 객체의 이름을 바꿉니다.
임시 데이터 분리: 가능한 경우 소프트 삭제가 사용 중지된 별도의 버킷으로 임시 데이터를 분리합니다.
다른 제품 및 기능과의 상호작용
소프트 삭제를 사용 설정하면 다음과 같이 다른 제품 및 기능과 상호작용합니다.
-
객체 수명 주기 관리 규칙은 소프트 삭제된 객체에 영향을 미치지 않습니다. 객체 수명 주기 관리를 사용하여 소프트 삭제된 객체의 스토리지 클래스를 변경하거나 영구적으로 삭제할 수 없습니다.
객체 수명 주기 관리에서 삭제된 객체는 소프트 삭제됩니다. 버킷에 객체 버전 관리도 사용 설정한 경우 삭제된 라이브 객체가 이전 버전이 되고 삭제된 이전 버전은 소프트 삭제됩니다.
객체 버전 관리: 이전 객체를 삭제하면 객체가 소프트 삭제됩니다.
XML API 멀티파트 업로드: XML API 멀티파트 업로드 부분은 소프트 삭제로 보호되지 않습니다.
-
소프트 삭제된 객체에 대한 자동 클래스 관리 수수료는 평가되지 않습니다.
자동 클래스는 소프트 삭제된 객체의 스토리지 클래스를 변경하지 않습니다.
소프트 삭제된 객체를 복원하면 결과 객체가 Standard 스토리지 클래스로 설정됩니다.
버킷 잠금 및 객체 보관 잠금 기능: 이러한 기능을 사용하면 보관 정책을 충족할 때까지 객체를 삭제할 수 없습니다. 이후 소프트 삭제에서 삭제된 객체를 별도의 소프트 삭제 보관 기간 동안 보존하여 추가적으로 보호를 강화합니다.
Pub/Sub 알림: 소프트 삭제된 객체 버전을 복원하면 OBJECT_FINALIZE 이벤트가 트리거됩니다.
관리형 폴더: 소프트 삭제에서는 관리형 폴더에 대한 IAM 정책을 복원할 수 없습니다. 객체를 소프트 삭제하고 객체에 대한 IAM 정책을 부여하는 관리형 폴더를 삭제하는 경우 소프트 삭제된 객체를 복원하는 데 필요한 권한을 부여받기 전에 해당 IAM 정책을 다시 만들어야 할 수 있습니다.
태그: 소프트 삭제 설정을 직접 포함하지 않고 버킷을 만드는 경우 Cloud Storage 기본값은 소프트 삭제 보관 기간(7일)으로 버킷을 만드는 것입니다. 태그를 사용하여 이 기본값을 변경할 수 있습니다. 이 태그는 새 버킷의 기본 보관 기간을 7~90일 사이의 값으로 변경하거나 기본값을 새 버킷에서 소프트 삭제 중지로 변경할 수 있습니다. 기본적으로 태그를 사용하여 소프트 삭제를 중지할 수도 있습니다.
추천자: Recommender API를 사용 설정하여 Cloud Billing 비용 및 사용량을 기반으로 소프트 삭제 사용 설정 또는 중지에 관한 추천 및 인사이트를 받아볼 수 있습니다. 자세한 내용은 소프트 삭제 추천자를 참조하세요.
다음 단계
- 소프트 삭제를 사용하는 방법을 알아보세요.
- 소프트 삭제한 객체를 사용하는 방법을 알아보세요.
storage.softDeletePolicySeconds
정책 제약조건을 알아보세요.