카테고리 없음

GCP 버킷 삭제가 오래 걸릴 때 해결 방법 (AWS LifeCycle과 비교)

idea9329 2025. 2. 5. 16:10
반응형

GCP에서도 AWS S3 Lifecycle Rule처럼 객체 수명 주기 정책(Lifecycle Rules)을 설정하여 자동 삭제를 할 수 있습니다.

하지만, GCP 버킷 자체를 삭제하는 기능은 없으며, 버킷 내 객체(파일)만 자동 삭제할 수 있습니다.


📌 GCP 버킷에서 객체 삭제를 자동화하는 방법

✅ 1. GCP Storage Lifecycle Rule 설정

GCP에서는 "Lifecycle Rule"을 통해 특정 조건(일자, 버전, 태그 등)이 충족되면 객체를 자동으로 삭제할 수 있습니다.

🔹 설정 가능한 조건

조건설명

Age 객체가 생성된 후 X일이 지나면 삭제
CreatedBefore 특정 날짜 이전에 생성된 객체 삭제
NumNewerVersions 특정 개수 이상의 객체 버전이 남으면 이전 버전 삭제
MatchesStorageClass 특정 Storage Class (Standard, Nearline, Coldline)에서만 삭제

📌 2. GCP 버킷에 Lifecycle Rule 적용하기

방법 1️⃣: gcloud CLI 사용

gcloud storage buckets update BUCKET_NAME --lifecycle-file=lifecycle.json

📌 lifecycle.json 파일을 만들어 자동 삭제 정책을 설정:

{
  "rule": [
    {
      "action": {
        "type": "Delete"
      },
      "condition": {
        "age": 30  # 30일 이상된 객체 자동 삭제
      }
    }
  ]
}

 이렇게 설정하면 30일이 지난 객체는 자동으로 삭제됩니다.
🚀 AWS S3의 Lifecycle Rule과 유사하게 동작!


방법 2️⃣: 콘솔에서 설정

  1. GCP Cloud Storage 콘솔로 이동 → Cloud Storage
  2. 버킷 선택 → "Lifecycle" 탭 클릭
  3. "새로운 수명 주기 규칙 추가" 클릭
  4. "조건" 설정 → (예: "객체가 30일 이상되면 삭제")
  5. "삭제(Delete)" 액션 선택
  6. "저장" 클릭

📌 3. 특정 날짜에 전체 버킷 삭제하는 방법

GCP는 AWS S3처럼 버킷 자체를 Lifecycle Rule로 삭제하는 기능은 없음.
버킷을 자동 삭제하려면 Cloud Scheduler + Cloud Functions 조합을 사용해야 함.

✅ Cloud Scheduler + Cloud Functions로 버킷 자동 삭제

  1. Cloud Functions 생성
    • Python 코드로 버킷 삭제 함수 작성
  2. Cloud Scheduler로 매일 실행되도록 설정
    • 예: 30일 후 자동 삭제 실행

📌 4. GCP 버킷 삭제가 느릴 때 해결 방법

✅ 원인 1: 버킷 내 객체가 너무 많음

  • 수백만 개의 객체가 있을 경우, 삭제 API가 느림
  • 해결법: gsutil -m rm -r gs://BUCKET_NAME 사용하여 병렬 삭제
gsutil -m rm -r gs://your-bucket-name

✅ 원인 2: 버킷이 버전 관리를 사용 중

  • 버전 관리가 활성화된 버킷은 오래된 객체 버전까지 삭제해야 해서 느림
  • 해결법: Noncurrent Time 조건 추가하여 이전 버전 삭제
{
  "rule": [
    {
      "action": {
        "type": "Delete"
      },
      "condition": {
        "isLive": false,
        "age": 7  # 7일 이상된 이전 버전 객체 삭제
      }
    }
  ]
}

✅ 원인 3: 다른 프로세스가 버킷을 사용 중

  • 특정 프로세스가 버킷을 점유하고 있으면 삭제 속도가 느려질 수 있음
  • 해결법: IAM 권한을 확인하고 점유 프로세스 종료 후 삭제

📌 결론

 GCP도 AWS S3처럼 Lifecycle Rule을 설정하여 객체 자동 삭제 가능
 버킷 자체를 자동 삭제하는 기능은 없으며, Cloud Scheduler + Cloud Functions을 사용해야 함
 버킷 삭제 속도가 느릴 경우 gsutil -m rm -r로 병렬 삭제
 버전 관리 중이면 isLive=false 조건을 추가하여 이전 버전 삭제

🚀 GCP에서도 S3처럼 Lifecycle Rule을 적용하면, 객체 삭제를 자동화할 수 있습니다! 🔥

반응형