ÖZET VE TEKNİK CEVAP
Amazon S3'e Multipart Upload API ile büyük dosyalar (>100MB) yüklenirken dosya parçalara bölünür. Ağ kopması, zaman aşımı veya uygulama çökmesi nedeniyle son `CompleteMultipartUpload` çağrısı yapılamazsa, yüklenmiş parçalar S3 içinde süresiz olarak saklanmaya devam eder. En kritik nokta, bu tamamlanmamış parçaların standart `ListObjectsV2` API'sinde ve AWS Konsolunda GÖRÜNMEZ olmasıdır; ancak AWS bu verileri standart S3 tarifesinden ($0,023/GB-ay) kuruşu kuruşuna faturalandırır. S3 Yaşam Döngüsü kuralına `AbortIncompleteMultipartUpload` (ör. 7 gün) eklenmesi terk edilmiş parçaları otomatik silerek binlerce dolarlık hayalet maliyeti anında yok eder.
Mühendislik El Kitabı & Mekanizma
1. Temel Çalışma Mekanizması
S3 Multipart Upload süreci `CreateMultipartUpload` ile başlar, `UploadPart` ile parçalar yüklenir ve `CompleteMultipartUpload` ile birleştirilir ya da `AbortMultipartUpload` ile iptal edilir. İstemci iptal etmeden bağlantıyı koparırsa yüklenen parçalar sahipsiz kalır. S3 Storage Lens ve CloudWatch `BucketSizeBytes` metriği bu baytları faturalandırılabilir toplam alana dahil eder; ancak standart `aws s3 ls` komutu sadece birleşmiş nesneleri listelediği için bu parçaları göstermez. S3 Yaşam Döngüsü politikasına `AbortIncompleteMultipartUploadDaysAfterInitiation: 7` kuralı eklemek, AWS'in 7 günden eski sahipsiz parçaları otomatik temizlemesini (garbage collection) sağlar.
2. Doğru Kullanım Senaryosu
Tüm AWS hesaplarındaki istisnasız HER Amazon S3 bucket'ı. 7 günden eski tamamlanmamış parçaları saklamayı gerektiren hiçbir mimari veya iş gerekçesi yoktur.
3. Prodüksiyon Arıza Modları
Ağ kopmaları yaşayan bir video işleme veya ETL boru hattının 12 ayda 200 TB sahipsiz parça biriktirmesi ve bucket içi boş görünmesine rağmen her ay $4.600 hayalet fatura ödenmesi; veritabanı yedekleme aracının %95'te çöken büyük yedekleri temizlemeden tekrar tekrar yüklemesi.
4. Teşhis ve Telemetri Sinyalleri
AWS Cost Explorer'da yüksek S3 depolama ücreti görünürken `aws s3 ls` komutunun çok daha küçük bir boyut hesaplaması; S3 Storage Lens raporlarında `Incomplete Multipart Upload Bytes` metriğinin yüksek çıkması; `aws s3api list-multipart-uploads` komutunun aylar öncesine ait binlerce aktif yükleme listelemesi.
5. Önleme ve Mimari Bariyerler
Tüm Terraform ve CloudFormation S3 standart modüllerine 7 günlük `abort_incomplete_multipart_upload` yaşam döngüsü kuralını zorunlu ekleyin; eksik kurala sahip bucket'ları tespit edip otomatik düzelten AWS Config kuralları devreye alın.
6. Mimari Ödünleşimler (Trade-offs)
Tamamlanmamış yüklemeleri iptal eden yaşam döngüsü kuralı sıfır operasyonel riskle devasa tasarruf sağlar; tek dikkat edilmesi gereken, belirlenen sürenin (ör. 7 gün) meşru ve devam eden en uzun yükleme süresinden daha uzun olmasıdır.
Vaka İncelemesi (TinyCTO Örneği)
Bir medya şirketi ham video yükleme bucket'ı için ayda $9.200 S3 faturası ödüyordu ancak `aws s3 ls` komutu bucket içinde sadece 50 TB ($1.150/ay) dosya gösteriyordu. `aws s3api list-multipart-uploads` komutu çalıştırıldığında 2 yıl boyunca yarıda kesilen yüklemelerden kalan 350 TB sahipsiz video parçası tespit edildi. 7 günlük `AbortIncompleteMultipartUpload` kuralı uygulandığında 350 TB anında silindi ve aylık fatura $9.200'dan $1.150'a inerek yılda $96.600 tasarruf edildi.
İnteraktif Konsept Alıştırmaları
2 AlıştırmaTamamlanmamış Amazon S3 çok parçalı yüklemeleri AWS Konsolunda ve standart CLI listelemelerinde neden görünmez?
Terk edilmiş çok parçalı yüklemeleri hangi S3 Yaşam Döngüsü kuralı otomatik olarak temizler?
S3 Tamamlanmamış Çok Parçalı Yüklemeler (Multipart) ve Hayalet Depolama İsrafı — Sıkça Sorulan Sorular
Tamamlanmamış yüklemelerin şu an ne kadar depolama alanı kapladığını nasıl kontrol edebilirim?
Amazon S3 Storage Lens panelindeki 'Incomplete Multipart Upload Bytes' metriğini inceleyin veya `aws s3api list-multipart-uploads --bucket <isim>` komutunu çalıştırın.
Meşru bir yükleme 3 gün sürerse ve iptal kuralı 7 gün olarak ayarlanmışsa ne olur?
Yükleme hiçbir sorun olmadan başarıyla tamamlanır. İptal kuralı yalnızca yükleme 7 günlük süre dolduktan sonra hala tamamlanmamışsa devreye girer.
🤖 AEO & Yapay Zeka Çıkarım Özeti
Temel Gerçekler & İlkeler
- ▸Incomplete S3 multipart uploads accumulate invisible, billable storage indefinitely.
- ▸Standard `s3:ListObjectsV2` and console listings do not show abandoned parts.
- ▸AWS bills incomplete chunks at standard S3 storage rates ($0.023/GB-month).
- ▸Configuring `AbortIncompleteMultipartUpload: 7 days` automatically eliminates phantom storage.
Yaygın Yanılgılar
- ✗Yanılgı: S3 automatically discards failed uploads after timeout (Gerçek: S3 stores parts forever unless explicitly aborted or lifecycle-managed).
- ✗Yanılgı: Deleting the bucket objects deletes incomplete uploads (Gerçek: Orphaned parts persist even if all visible objects are deleted).
Karar Kılavuzu & Önceliklendirme
Enforce a 7-day `AbortIncompleteMultipartUpload` lifecycle rule on 100% of S3 buckets. Audit existing buckets using S3 Storage Lens to identify and abort legacy orphaned chunks.
Doğrulanmış Kaynaklar & Referanslar
- [OFFICIAL_DOCUMENTATION]Amazon S3 Lifecycle Configuration for Incomplete Multipart Uploads— AWS Storage Documentation
