소프트 삭제

설정 사용량

이 페이지에서는 삭제되거나 덮어쓰인 객체와 이를 포함하는 버킷을 지정된 기간 동안 보존하는 소프트 삭제 기능을 설명합니다. 소프트 삭제는 삭제된 객체를 소프트 삭제된 상태로 보존하여 데이터를 실수로 인한 또는 악의적인 삭제로부터 보호합니다. 이 상태에서는 객체를 영구적으로 삭제할 수 없습니다. 소프트 삭제는 모든 버킷에서 기본적으로 사용 설정되며, 사용자 또는 조직에서 다른 정책을 선택하지 않는 한 보관 기간은 7일입니다.

개요

버킷에서 소프트 삭제를 사용 설정하면 버킷에서 삭제된 객체가 영구적으로 삭제되는 대신 소프트 삭제된 상태로 전환됩니다. 소프트 삭제된 객체는 다음과 같은 방식으로 작동합니다.

버킷에서 소프트 삭제를 사용 설정하려면 소프트 삭제된 객체가 영구적으로 삭제되기 전에 보관되는 기간을 제어하는 보관 기간을 지정하는 소프트 삭제 정책을 만듭니다.

버킷에서 소프트 삭제를 사용 설정 또는 중지하는 소프트 삭제 정책을 만들고 관리하는 방법을 알아보려면 소프트 삭제 사용을 참고하세요.

소프트 삭제 정책

소프트 삭제 정책은 버킷 생성 또는 업데이트 중에 생성, 삭제 또는 수정할 수 있습니다. 소프트 삭제 정책을 만들면 이를 사용하여 버킷의 소프트 삭제를 사용 설정하거나 중지할 수 있습니다.

소프트 삭제 정책은 다음과 같은 방식으로 작동합니다.

  • 버킷의 소프트 삭제 정책을 업데이트하면 소프트 삭제 정책이 적용된 후에 삭제하는 객체에만 적용됩니다. 업데이트 전에 삭제한 객체는 삭제 시 적용되었던 기간 동안 보관됩니다.

    예를 들어 기본 보관 기간이 7일인 버킷에서 소프트 삭제 정책을 사용 설정한 후 cat.png 객체를 삭제한다고 가정해 보겠습니다. 이 시나리오에서 cat.png는 다음 7일 동안 소프트 삭제된 객체로 보관된 후 완전히 삭제됩니다. 나중에 버킷의 소프트 삭제 정책을 변경하거나 삭제해도 이 문제가 발생합니다.

  • 기존 버킷에 새 소프트 삭제 보관 기간을 추가해도 소프트 삭제 정책이 적용되기 전에 삭제된 객체에는 적용되지 않습니다.

  • 프로젝트를 삭제하면 소프트 삭제가 사용 설정되어 있더라도 소프트 삭제를 사용하여 버킷이나 객체를 복원할 수 없습니다. 악의적이거나 실수로 인한 삭제 시 데이터가 손실되지 않도록 하려면 프로젝트에 선취권을 적용하거나 다른 프로젝트의 버킷에 비즈니스에 중요한 데이터를 백업하여 프로젝트 수준 삭제에 대한 액세스를 제한하는 것이 좋습니다.

  • 버킷이 삭제되면 버킷 내의 객체는 영구적으로 삭제되지 않지만 소프트 삭제된 버킷을 먼저 복원하지 않으면 나열하거나 복원할 수 없습니다. 소프트 삭제된 버킷을 복원하면 버킷에 라이브 객체가 포함되지 않은 상태로 복원됩니다. 객체 복원 작업을 실행하거나 새 객체를 추가해야 합니다. 소프트 삭제된 버킷 사용에 관한 자세한 내용은 소프트 삭제된 버킷 복원을 참고하세요.

소프트 삭제 보관 기간

버킷을 만들면 기본 소프트 삭제 정책이 버킷에 추가되며, 이 정책의 보관 기간은 소프트 삭제 정책의 최소 보관 기간인 7일입니다. 보호를 강화하기 위해 최대 90일까지 원하는 보관 기간을 선택할 수 있습니다. 또는 보관 기간을 0일로 설정하여 버킷의 소프트 삭제를 사용 중지할 수 있습니다.

소프트 삭제 정책의 보관 기간 내에 삭제된 객체를 복원할 수 있지만 기간이 종료되면 Cloud Storage에서 객체를 영구 삭제합니다. 소프트 삭제 보관 기간은 초 단위로 측정됩니다. 하지만 Google Cloud 콘솔Google Cloud CLI와 같은 일부 도구를 사용하면 편의를 위해 다른 시간 단위를 사용하여 보관 기간을 설정 및 확인할 수 있습니다.

  • 하루는 86,400초로 간주됩니다.

  • 한 달은 31일이며 2,678,400초로 간주됩니다.

gcloud CLI의 경우 보관 기간을 지정할 때 정수와 단위를 지정해야 합니다. 단위는 각각 초, 일 또는 월을 나타내는 s, d 또는 m일 수 있습니다. 예를 들어 7d43200s는 보관 기간을 7일 43,200초(7.5일)로 설정합니다.

최대 보관 기간을 7,776,000초(90일)로 설정하거나 최소 보관 기간을 604,800초(7일)로 설정할 수 있습니다. REST API를 사용할 때 보관 기간을 0으로 설정하여 조용히 삭제 정책을 사용 중지할 수도 있습니다.

동작 복원

소프트 삭제된 객체를 복원하면 Cloud Storage에서 객체가 삭제된 버킷과 동일한 버킷에 소프트 삭제된 객체의 사본을 만듭니다. 복원된 객체의 메타데이터는 삭제된 객체의 메타데이터와 동일합니다. 소프트 삭제 보관 기간이 종료되면 Cloud Storage에서 소프트 삭제된 객체를 영구 삭제합니다.

소프트 삭제 보관 기간이 종료되기 전에 소프트 삭제된 객체를 복원할 수 있습니다.

소프트 삭제의 복원 동작은 다음과 같이 설명할 수 있습니다.

프로젝트를 삭제하면 Cloud Storage에서 해당 프로젝트 내의 모든 버킷과 객체를 영구 삭제합니다. 이러한 시나리오에서는 소프트 삭제 기능을 사용하여 객체와 버킷을 복원할 수 없습니다. 따라서 프로젝트에 선취권을 적용하거나 다른 프로젝트의 버킷에 비즈니스에 중요한 데이터를 백업하는 등 프로젝트 수준 삭제에 대한 액세스를 제한하는 단계를 수행하는 것이 중요합니다.

  • 복원된 객체는 항상 서비스 중인 버전을 대체합니다. 객체의 서비스 중인 버전이 이미 있는 경우 소프트 삭제된 버전이 서비스 중인 버전을 대체하고 기존 서비스 중인 버전이 소프트 삭제됩니다. 이러한 시나리오에서는 버킷에 다음 객체가 포함됩니다.

    • 소프트 삭제된 상태의 교체된 라이브 객체

    • 이전에 소프트 삭제된 객체의 사본 2개(실시간 사본 한 개와 여전히 소프트 삭제된 사본 한 개)

  • 객체 복사본은 영구 삭제될 때까지 요금이 청구됨: 객체 복사본에는 보관 기간이 지난 후 소프트 삭제된 객체가 영구 삭제될 때까지 스토리지 요금이 청구됩니다. 조용히 삭제된 객체와 관련된 비용에 대한 자세한 내용은 Cloud Storage 가격 책정을 참고하세요.

  • 소프트 삭제된 객체는 여러 메서드를 사용하여 복원할 수 있습니다. 객체 목록을 지정하여 소프트 삭제된 객체를 동기식으로 복원하거나 두 타임스탬프 사이에 삭제된 객체를 일괄 복원하는 장기 실행 작업을 만들 수 있습니다.

  • 2024년 8월 6일 전에 소프트 삭제된 버킷을 복원하려고 하면 The specified bucket does not exist 오류가 발생하며 복원을 수행하려면 Cloud Customer Care에 문의해야 합니다.

계층적 네임스페이스가 사용 설정된 버킷의 객체 메타데이터 복원 및 검색

계층적 네임스페이스가 사용 설정된 Cloud Storage 버킷에서는 소프트 삭제된 중복 객체가 발생할 수 있습니다. 중복 객체는 동일한 namegeneration 값을 공유하므로 복원 중에 모호성이 발생할 수 있습니다.

중복 객체가 발생하는 방식

동일한 namegeneration 값을 가진 중복 객체가 어떻게 발생할 수 있는지 알아보려면 folderA/my-object.txtfolderB/my-object.txt 객체 두 개를 고려하고 객체에 다음 작업 시퀀스를 실행합니다.

  1. 객체 folderA/my-object.txt를 소프트 삭제합니다.
  2. 객체 folderA/my-object.txt 상위 폴더 folderA를 삭제합니다.
  3. folderB의 이름을 folderA로 바꾸면 객체 folderB/my-object.txtfolderA/my-object.txt이 됩니다.
  4. 이전에 삭제된 객체와 동일한 name를 가진 객체 folderA/my-object.txt를 소프트 삭제합니다.

Cloud Storage의 각 객체 버전에는 고유한 generation 값이 있습니다. 그러나 객체 folderA/my-object.txtfolderB/my-object.txt가 독립적으로 생성되고 서로 관련이 없는 경우 우연히 동일한 generation 값을 가질 수 있습니다.

따라서 name (folderA/my-object.txt) 및 generation 값이 동일한 삭제 취소된 객체가 두 개 있을 수 있습니다.

이제 namegeneration 값이 동일한 객체가 두 개 있으므로 원하는 my-object.txt 객체의 메타데이터를 복원하거나 검색하려면 고유 식별자를 제공해야 합니다.

restoreToken를 사용한 고유 객체 식별

restoreToken는 복원하거나 검색하려는 올바른 객체를 고유하게 식별합니다. restoreToken의 값을 가져오려면 버킷에서 소프트 삭제된 객체를 나열하면 됩니다. 자세한 내용은 소프트 삭제된 객체 나열을 참고하세요.

고려사항 및 오류

계층적 네임스페이스가 사용 설정된 버킷에서 중복된 조용히 삭제된 객체를 사용할 때 발생할 수 있는 다음 정보와 오류를 고려하세요.

  • 관련 없는 두 객체가 동일한 generation 값을 갖는 경우는 매우 드물며, 동일한 name 값으로 끝나기 위해 필요한 특정 작업 시퀀스 때문에 이러한 상황은 더욱 드뭅니다.

  • 발생 빈도가 낮기 때문에 대부분의 사용 사례에서는 restoreToken 매개변수가 필요하지 않을 수 있습니다. 그러나 동일한 namegeneration 값을 가진 중복된 조용히 삭제된 객체가 발생하는 경우 정확한 객체 검색을 위해 restoreToken를 사용할 수 있습니다.

  • restoreToken를 지정하지 않고 조용히 삭제된 객체의 메타데이터를 복원하거나 검색하려고 하는데 지정된 namegeneration 값과 일치하는 객체가 여러 개 있는 경우 restoretoken를 지정해야 한다는 오류가 발생합니다.

  • 잘못된 restoreToken, name 또는 generation 값을 제공하여 조용히 삭제된 객체의 메타데이터를 복원하거나 검색하려고 하면 지정된 키가 존재하지 않는다는 오류가 발생합니다.

다른 기능의 고려사항

소프트 삭제가 사용 설정되면 다음과 같이 다른 Cloud Storage 기능과 상호작용합니다.

  • 객체 수명 주기 관리

    • 객체 수명 주기 관리 규칙은 소프트 삭제된 객체에 영향을 미치지 않습니다. 객체 수명 주기 관리를 사용하여 소프트 삭제된 객체의 스토리지 클래스를 변경하거나 영구 삭제할 수는 없습니다.

    • 객체 수명 주기 관리에서 삭제된 객체는 소프트 삭제됩니다. 버킷에 객체 버전 관리도 사용 설정된 경우 삭제된 라이브 객체는 현재 외 버전이 되고 삭제된 현재 외 버전은 소프트 삭제됩니다.

  • 객체 버전 관리

    비현재 객체를 삭제하면 객체는 소프트 삭제된 객체가 됩니다.

  • XML API 멀티파트 업로드

    XML API 멀티파트 업로드 부분은 소프트 삭제로 보호되지 않습니다.

  • 자동 클래스

    • 소프트 삭제된 객체에는 자동 클래스 관리 수수료가 부과되지 않습니다.

    • 자동 클래스는 소프트 삭제된 객체의 스토리지 클래스를 변경하지 않습니다.

    • 소프트 삭제된 객체를 복원하면 결과 객체가 Standard Storage 클래스로 설정됩니다.

  • 버킷 잠금객체 보관 잠금 기능

    이러한 기능을 사용하면 보관 정책을 충족할 때까지 객체를 삭제할 수 없습니다. 그러면 소프트 삭제가 별도의 소프트 삭제 보관 기간 동안 삭제된 객체를 보존하여 추가 보호 계층을 제공합니다.

  • Pub/Sub 알림

    소프트 삭제된 객체 버전을 복원하면 OBJECT_FINALIZE 이벤트가 트리거됩니다.

  • 관리형 폴더: 소프트 삭제에서는 관리형 폴더에 대한 IAM 정책을 복원할 수 없습니다. 객체를 소프트 삭제하고 객체에 대한 IAM 정책을 부여하는 관리형 폴더를 삭제하는 경우 소프트 삭제된 객체를 복원하는 데 필요한 권한을 부여받기 전에 해당 IAM 정책을 다시 만들어야 할 수 있습니다.

  • 태그: 소프트 삭제 설정을 직접 포함하지 않고 버킷을 만들면 Cloud Storage 기본값은 소프트 삭제 보관 기간이 7일인 버킷을 만드는 것입니다. 태그를 사용하여 이 기본값을 변경할 수 있습니다. 이 태그를 사용하면 새 버킷의 기본 보관 기간을 7~90일 사이의 값으로 변경하거나 새 버킷에서 소프트 삭제를 사용 중지하도록 기본값을 변경할 수 있습니다. 태그를 사용하여 기본적으로 소프트 삭제를 사용 중지할 수도 있습니다.

  • Recommender: Recommender API를 사용 설정하여 Cloud Billing 비용 및 사용량을 기반으로 조용히 삭제 사용 설정 또는 중지에 관한 제안 및 통계를 받을 수 있습니다. 자세한 내용은 소프트 삭제 추천자를 참고하세요.

다음 단계