반응형
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️⃣: 콘솔에서 설정
- GCP Cloud Storage 콘솔로 이동 → Cloud Storage
- 버킷 선택 → "Lifecycle" 탭 클릭
- "새로운 수명 주기 규칙 추가" 클릭
- "조건" 설정 → (예: "객체가 30일 이상되면 삭제")
- "삭제(Delete)" 액션 선택
- "저장" 클릭
📌 3. 특정 날짜에 전체 버킷 삭제하는 방법
GCP는 AWS S3처럼 버킷 자체를 Lifecycle Rule로 삭제하는 기능은 없음.
버킷을 자동 삭제하려면 Cloud Scheduler + Cloud Functions 조합을 사용해야 함.
✅ Cloud Scheduler + Cloud Functions로 버킷 자동 삭제
- Cloud Functions 생성
- Python 코드로 버킷 삭제 함수 작성
- 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을 적용하면, 객체 삭제를 자동화할 수 있습니다! 🔥
반응형