S3 ve Veri Aktarımı Maliyet Optimizasyonu
Depolama ve veri aktarımı maliyetlerini önemli ölçüde azaltmak için S3 Intelligent-Tiering'i, yaşam döngüsü kurallarını, S3 Select'i ve CloudFront'u uygulayın.
S3 ve Veri Aktarımı Maliyet Optimizasyonu, CoddyKit'te ücretsiz bir AWS Solutions Architect dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AWS Solutions Architect öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AWS Solutions Architect kursu toplamda 4 dersten oluşur.
S3 Depolama Maliyetlerinin Temelleri
Amazon S3 depolama maliyetleri, depolama sınıfına ve erişim düzenine göre önemli ölçüde değişir. S3 Standard, ayda GB başına yaklaşık 0,023 ABD doları ücretlendirir; petabayt ölçeğinde bu tutar önemli hale gelir. İyi haber şu ki S3, farklı erişim sıklıkları için optimize edilmiş yedi depolama sınıfı sunar ve fiyatlar 0,023 ABD doları/GB (Standard) ile 0,00099 ABD doları/GB (Glacier Deep Archive) arasında değişir. S3 maliyetlerini optimize etmenin temel yolu, verilerinizi doğru depolama sınıfıyla eşleştirmek ve lifecycle policies kullanarak geçişleri otomatikleştirmektir.
# S3 storage class costs (us-east-1 approximate):
# S3 Standard: $0.023/GB/month
# S3 Intelligent-Tiering: $0.023/GB (frequent) + $0.0125 (infrequent)
# S3 Standard-IA: $0.0125/GB/month + retrieval fee
# S3 One Zone-IA: $0.01/GB/month (single AZ)
# S3 Glacier Instant: $0.004/GB/month + retrieval fee
# S3 Glacier Flexible: $0.0036/GB/month + retrieval time
# S3 Glacier Deep Archive: $0.00099/GB/month + retrieval timeS3 Intelligent-Tiering
S3 Intelligent-Tiering, nesneleri gerçek erişim düzenlerine göre erişim katmanları arasında otomatik olarak taşır; alma ücreti yoktur ve sık erişilen katman için minimum süre şartı bulunmaz. Nesne erişimini nesne düzeyinde izler: 30 gün boyunca erişilmeyen nesneler seyrek erişim katmanına (%40 daha ucuz), 90 gün sonra ise anında arşiv katmanına (%68 daha ucuz) taşınır. Küçük bir aylık izleme ücreti vardır (1.000 nesne başına 0,0025 ABD doları). Erişim düzenlerini öngöremediğinizde veya aynı bucket içinde sık ve seyrek erişilen verileri birlikte tuttuğunuzda Intelligent-Tiering kullanın.
# Enable Intelligent-Tiering on objects
aws s3api put-object \
--bucket my-bucket \
--key data/report.parquet \
--body report.parquet \
--storage-class INTELLIGENT_TIERING
# Or set as default for entire bucket
aws s3api put-bucket-intelligent-tiering-configuration \
--bucket my-bucket \
--id whole-bucket-tiering \
--intelligent-tiering-configuration '{
"Id": "whole-bucket-tiering",
"Status": "Enabled",
"Tierings": [
{"AccessTier": "ARCHIVE_ACCESS", "Days": 90},
{"AccessTier": "DEEP_ARCHIVE_ACCESS", "Days": 180}
]
}'Otomatik Katmanlama için S3 Lifecycle Kuralları
S3 Lifecycle rules, nesnelerin yaşına göre geçişlerini ve süre sonu işlemlerini otomatikleştirir. Kuralları prefix veya etiket kullanarak tanımlar, ardından belirli gün eşiklerinde yapılacak geçişleri belirtirsiniz. Tipik bir arşivleme lifecycle akışı şöyledir: Standard → Standard-IA (30 gün) → Glacier Instant Retrieval (90 gün) → Deep Archive (365 gün) → Delete (2555 gün). Bu akış, depolama maliyetlerini zaman içinde GB başına 0,023 ABD dolarından 0,00099 ABD dolarına düşürebilir; arşiv verileri için bu, %95 oranında azalma anlamına gelir. Lifecycle geçişlerinde IA ve Glacier için minimum nesne boyutu 128 KB'dir; daha küçük nesnelerin taşınması maliyet açısından verimli değildir.
# Lifecycle rule: transition logs to archive
aws s3api put-bucket-lifecycle-configuration \
--bucket app-logs-bucket \
--lifecycle-configuration '{
"Rules": [{
"ID": "log-archive",
"Filter": {"Prefix": "logs/"},
"Status": "Enabled",
"Transitions": [
{"Days": 30, "StorageClass": "STANDARD_IA"},
{"Days": 90, "StorageClass": "GLACIER_IR"},
{"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
],
"Expiration": {"Days": 2555}
}]
}'S3 Select ve Glacier Select
S3 Select, nesnenin tamamını indirmek yerine SQL ifadelerini kullanarak bir S3 nesnesinden yalnızca ihtiyaç duyduğunuz verileri almanızı sağlar. Yalnızca 100 satırına ihtiyaç duyduğunuz 10 GB boyutunda bir CSV file için S3 Select yalnızca bu satırları alabilir; böylece veri aktarımı maliyetleri ve uygulama işleme süresi büyük ölçüde azalır. Glacier Select de Glacier içindeki nesneler için aynı işlemi yapar. S3 Select, CSV, JSON ve Parquet biçimlerini destekler. Bu özellik, birçok sorgunun her data file'ın yalnızca bir alt kümesine eriştiği veri analizi pipeline'larında özellikle değerlidir.
# S3 Select: query a CSV object using SQL expression
aws s3api select-object-content \
--bucket analytics-data \
--key sales/2026-06.csv \
--expression-type SQL \
--expression "SELECT * FROM S3Object WHERE region = 'us-east'" \
--input-serialization 'CSV={FileHeaderInfo=USE}' \
--output-serialization 'CSV={}' \
output.csv
# Only the matching rows are returned
# Saves data transfer cost vs downloading entire fileS3 Multipart Upload ve Transfer Acceleration
Büyük nesneleri yüklerken S3 Multipart Upload, nesneleri parçalara böler (parça başına minimum 5 MB); bu parçalar paralel olarak yüklenerek aktarım hızını artırır ve yüklemelerin kaldığı yerden sürdürülmesini sağlar. Başarısız parçalar, tüm yüklemeyi yeniden başlatmadan tekrar denenebilir. Tamamlanmamış parçalar için ücret ödememek amacıyla lifecycle rules kullanarak tamamlanmamış multipart yüklemelerini temizleyin. S3 Transfer Acceleration, uzak konumlardan yapılan yüklemeleri hızlandırmak için yüklemeleri AWS CloudFront edge locations üzerinden yönlendirir; bu, dünya genelinde büyük files yükleyen kullanıcılar için yararlıdır, ancak ek maliyet getirir (GB başına 0,04-0,08 ABD doları). Yalnızca hızlandırma ölçülebilir bir iyileşme sağladığında kullanın.
# Multipart upload example
aws s3api create-multipart-upload \
--bucket my-bucket --key large-file.zip
# Abort incomplete multipart uploads via lifecycle
aws s3api put-bucket-lifecycle-configuration \
--bucket my-bucket \
--lifecycle-configuration '{
"Rules": [{
"ID": "cleanup-incomplete-uploads",
"Status": "Enabled",
"AbortIncompleteMultipartUpload": {"DaysAfterInitiation": 7}
}]
}'Veri Aktarımı Maliyetlerini Anlamak
Veri aktarımı maliyetleri, en şaşırtıcı AWS faturalarının kaynaklarından biridir. Temel kurallar şunlardır: Inbound data transfer (AWS'ye gelen) ücretsizdir. İnternete yapılan Outbound data transfer için ücret, ilk 10 TB/ay kapsamında yaklaşık 0,09 ABD doları/GB'dir. Cross-region data transfer yaklaşık 0,02 ABD doları/GB tutarındadır. Aynı bölge içindeki Cross-AZ data transfer her yön için 0,01 ABD doları/GB'dir. Within the same AZ ücretsizdir. Mimariyi bölgeler arası ve internete yönelen veri aktarımını en aza indirecek şekilde tasarlayın; bölgesel dağıtımlar ve CloudFront, içerik sunumunu uygun maliyetli hale getirmek için bu nedenle kritik öneme sahiptir.
# Data transfer cost examples (us-east-1):
# Internet (outbound): $0.09/GB (first 10 TB)
# CloudFront -> internet: $0.0085/GB (much cheaper!)
# Cross-region: $0.02/GB
# Cross-AZ (same region): $0.01/GB each direction
# Same AZ: $0.00/GB (free)
# S3 -> CloudFront: $0.00/GB (free!)
# Cost reduction tip:
# S3 -> CloudFront -> users
# vs
# EC2 -> internet -> users
# CloudFront is 10x cheaper for data egressVeri Aktarımı Maliyetlerini Azaltmak için CloudFront
İçeriği Amazon CloudFront üzerinden sunmak, veri aktarımı maliyetlerini iki şekilde büyük ölçüde azaltır. İlk olarak CloudFront, EC2 veya S3'ün doğrudan internet erişimine kıyasla daha düşük çıkış ücretleri uygular (yaklaşık 0,0085 ABD doları/GB yerine 0,09 ABD doları/GB). İkinci olarak CloudFront, içeriği edge locations üzerinde önbelleğe alır ve verilerin origin'inizden sunulma sayısını azaltır; böylece aynı içerik, origin'den yalnızca bir kez alınarak önbellekten milyonlarca kez sunulabilir. S3 ile CloudFront arasındaki veri aktarımı da ücretsizdir. Bu nedenle CloudFront yalnızca bir performans aracı değil, aynı zamanda bir maliyet optimizasyonu aracıdır.
# Cost comparison for 100 TB/month of outbound traffic:
# Direct from EC2/S3 to internet:
# 100,000 GB x $0.09/GB = $9,000/month
# Via CloudFront (assuming 80% cache hit rate):
# 20,000 GB origin pull: free (S3->CF) or $0.02 (EC2->CF)
# 100,000 GB CF->internet: 100,000 x $0.0085 = $850
# Total: ~$1,250 vs $9,000 = 86% savings
# Create CloudFront distribution with S3 origin
aws cloudfront create-distribution \
--distribution-config file://cf-config.jsonNAT Gateway Maliyetlerinden Kaçınmak için VPC Endpoints
NAT Gateway veri işleme ücretleri (0,045 ABD doları/GB), Private subnet'lerdeki EC2 örnekleri sık sık S3 veya DynamoDB'ye eriştiğinde önemli bir maliyete dönüşebilir. Bunun yerine S3 ve DynamoDB için VPC Gateway Endpoints kullanın; bunlar trafiği zero cost ile AWS ağ omurgası üzerinden yönlendirir ve bu hizmetler için NAT Gateway gerektirmez. Ayrıca diğer AWS hizmetleri için VPC Interface Endpoints (PrivateLink) kullanmak, ilgili hizmet trafiğinde NAT Gateway işleme ücretlerini ortadan kaldırır; ancak Interface Endpoints'ın kendisi küçük bir saatlik ücrete tabidir.
# Create VPC Gateway Endpoint for S3 (free!)
aws ec2 create-vpc-endpoint \
--vpc-id vpc-12345 \
--service-name com.amazonaws.us-east-1.s3 \
--vpc-endpoint-type Gateway \
--route-table-ids rtb-private-AZ1 rtb-private-AZ2
# Traffic from EC2 in private subnet to S3:
# WITHOUT endpoint: EC2 -> NAT GW ($0.045/GB) -> S3
# WITH endpoint: EC2 -> S3 via VPC endpoint ($0.00/GB)
# For DynamoDB:
aws ec2 create-vpc-endpoint \
--service-name com.amazonaws.us-east-1.dynamodb \
--vpc-endpoint-type GatewayS3 Request Maliyetlerini Optimize Etme
S3, depolanan her GB için olduğu gibi her API isteği için de ücret alır. PUT, COPY, POST, LIST isteklerinin 1.000 tanesi 0,005 ABD dolarıdır; GET, SELECT isteklerinin 1.000 tanesi ise 0,0004 ABD dolarıdır. Milyonlarca istek yapan uygulamalarda bu maliyetler birikir. Şu yöntemlerle optimizasyon yapın: küçük nesneleri daha büyük nesneler halinde gruplamak (daha az istek), önbelleğe alınmış yanıtları sunmak için CloudFront kullanmak (origin'e yapılan GET isteklerini azaltır), mümkün olduğunca list işlemlerinden kaçınmak (LIST pahalıdır) ve milyonlarca ayrı API çağrısı yerine toplu işlemler için S3 Batch Operations kullanmak.
# S3 Batch Operations: process millions of objects at once
aws s3control create-job \
--account-id 123456789012 \
--manifest '{
"Spec":{"Format":"S3BatchOperations_CSV_20180820","Fields":["Bucket","Key"]},
"Location":{"ObjectArn":"arn:aws:s3:::manifest-bucket/manifest.csv","ETag":"abc123"}
}' \
--operation '{
"S3CopyObject": {
"TargetResource": "arn:aws:s3:::destination-bucket",
"StorageClass": "GLACIER"
}
}' \
--report '{"Bucket":"arn:aws:s3:::report-bucket","Enabled":true}'Veri Aktarımı için AWS DataSync
Yerel ortam ile AWS arasında veya AWS hizmetleri arasında büyük ölçekli veri aktarımları için AWS DataSync, özel aktarım kodu yazmaktan daha uygun maliyetlidir. DataSync, açık kaynaklı araçların aktarım hızının 10 katına kadar ulaşan, bu amaç için tasarlanmış bir protokol kullanır ve yerleşik veri doğrulama, zamanlama ve izleme özellikleri sunar. DataSync üzerinden S3, EFS veya FSx'e aktarılan veriler standart AWS veri aktarımı ücretleri üzerinden ücretlendirilir; ancak DataSync'in verimliliği, aktarımları daha hızlı tamamlamanızı sağlar ve büyük geçişler için gereken EC2 işlem süresini (ve maliyetini) azaltır.
# Create DataSync task to copy S3 bucket to another region
aws datasync create-task \
--source-location-arn arn:aws:datasync:us-east-1:123:location/loc-source \
--destination-location-arn arn:aws:datasync:us-west-2:123:location/loc-dest \
--name 'DR-replication' \
--options '{
"VerifyMode": "ONLY_FILES_TRANSFERRED",
"OverwriteMode": "ALWAYS",
"TransferMode": "CHANGED"
}'
# DataSync pricing: $0.0125/GB transferredS3 Görünürlüğü için Storage Lens
Amazon S3 Storage Lens, hesaplar ve bölgeler genelinde S3 depolama kullanımı ile etkinlik ölçümleri hakkında kuruluş çapında görünürlük sağlar. Lifecycle rules bulunmayan bucket'ları, tamamlanmamış multipart yüklemeleri veya depolama sınıfı dağılımını belirlemek gibi maliyet optimizasyonu fırsatlarını ortaya çıkarır. S3 Storage Lens varsayılan dashboard'u ücretsizdir; gelişmiş ölçümler dashboard'u (1 milyon nesne başına 0,20 ABD doları) prefix bazında ayrıntılı inceleme ve veri yaşı ölçümleri ekler. En yüksek etkiye sahip bucket'ları belirlemek için Storage Lens'i tüm S3 maliyet optimizasyonu çalışmalarınızın başlangıç noktası olarak kullanın.
# Enable S3 Storage Lens dashboard
aws s3control put-storage-lens-configuration \
--account-id 123456789012 \
--config-id default \
--storage-lens-configuration '{
"Id": "default",
"IsEnabled": true,
"DataExport": {
"S3BucketDestination": {
"AccountId": "123456789012",
"Arn": "arn:aws:s3:::my-storage-lens-export",
"Format": "CSV",
"OutputSchemaVersion": "V_1"
}
}
}'Hızlı Kontrol
Bu dersteki AWS Solutions Architect (SAA-C03) kavramlarını anlayıp anlamadığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: S3 Intelligent-Tiering ve lifecycle rules, verileri otomatik olarak daha ucuz depolama sınıflarına taşıyarak depolama maliyetlerini azaltır, CloudFront, doğrudan S3 veya EC2 üzerinden sunmaya kıyasla veri aktarımı maliyetlerini büyük ölçüde azaltır ve VPC Gateway Endpoints, S3 ve DynamoDB trafiği için NAT Gateway ücretlerini ortadan kaldırır. S3 Storage Lens, optimizasyon fırsatları hakkında görünürlük sağlar. Sırada KMS, ACM ve şifreleme modellerini inceleyeceğiz.
Sıkça Sorulan Sorular
“S3 ve Veri Aktarımı Maliyet Optimizasyonu” dersi ücretsiz mi?
Evet — “S3 ve Veri Aktarımı Maliyet Optimizasyonu” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AWS Solutions Architect kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AWS Solutions Architect kursu toplamda 4 dersten oluşur.
“S3 ve Veri Aktarımı Maliyet Optimizasyonu” dersinde ne öğreneceğim?
Depolama ve veri aktarımı maliyetlerini önemli ölçüde azaltmak için S3 Intelligent-Tiering'i, yaşam döngüsü kurallarını, S3 Select'i ve CloudFront'u uygulayın. AWS Solutions Architect ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AWS Solutions Architect öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AWS Solutions Architect, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“S3 ve Veri Aktarımı Maliyet Optimizasyonu” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AWS Solutions Architect dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AWS Solutions Architect dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Doğru Boyutlandırma ve Compute Optimizer
- Rezerve Edilmiş Bulut Sunucuları, Savings Plans ve Spot
- Cost Explorer, Bütçeler ve Maliyet Dağıtımı Etiketleri
- S3 ve Veri Aktarımı Maliyet Optimizasyonu