Kısıtlama, Önbelleğe Alma ve Kullanım Planları
Ani artış ve sabit durum kısıtlama sınırlarıyla arka uçları koruyacak, yanıt önbelleğe almayı etkinleştirecek ve iş ortakları için API anahtarlarıyla kullanım planları oluşturacaksınız.
Kısıtlama, Önbelleğe Alma ve Kullanım Planları, 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.
Hız Sınırlamanın Önemi
Hız sınırlama olmadan, hatalı davranan tek bir istemci veya trafik artışı arka uç hizmetlerinizi (Lambda eşzamanlılığı, RDS bağlantıları veya alt akış API'leri) aşırı yükleyebilir. API Gateway'deki hız sınırlama, saniyedeki istek sayısını sınırlar ve sabit durum hızının üzerinde kısa süreli ani artışlara izin verir. Hız sınırlanan istekler, arka ucunuza ulaşmadan hemen 429 Too Many Requests yanıtı alır; böylece alt akış kaynakları aşırı yüklenmeye karşı korunur.
Hesap ve Aşama Düzeyinde Hız Sınırlama
Hız sınırlama birden fazla düzeyde çalışır. Hesap düzeyi sınırı, 5.000 istek ani artış kapasitesiyle saniyede 10.000 istektir (yumuşak sınır, artırılabilir). Aşama düzeyinde, aşamadaki tüm yöntemlere uygulanan varsayılan bir hız (RPS) ve ani artış sınırı belirleyebilirsiniz. Yöntem düzeyinde ise belirli uç noktalar için aşama varsayılanlarını geçersiz kılabilirsiniz; örneğin, okuma ağırlıklı bir GET uç noktasına yazma ağırlıklı bir POST uç noktasından daha yüksek bir hız sınırı verebilirsiniz.
aws apigateway update-stage \
--rest-api-id 'abc123' \
--stage-name 'prod' \
--patch-operations \
'op=replace,path=/*/*/throttling/rateLimit,value=1000' \
'op=replace,path=/*/*/throttling/burstLimit,value=2000'Belirteç Kovası Algoritması
API Gateway hız sınırlamada belirteç kovası algoritmasını kullanır. Belirteçler, ani artış sınırına (en yüksek anlık kapasite) kadar kovada birikir. Her istek bir belirteç tüketir. Belirteçler hız sınırında (sabit durum RPS değeri) yenilenir. Kova boşsa istekler hızla sınırlanır. Örnek: burst=5000, rate=1000 RPS. Başlangıçta aynı anda 5000 isteği işleyebilirsiniz; kova saniyede 1000 belirteçle dolar. Bu, uzun vadeli hız sınırlarını uygularken kısa süreli trafik artışlarını karşılamayı sağlar.
API Gateway Yanıt Önbelleğe Alma
Yanıt önbelleğe alma (REST API aşamalarında kullanılabilir), arka uç yanıtlarını API Gateway tarafından yönetilen bir önbellekte depolar; böylece aynı istekler arka uca ulaşmadan önbellekten sunulur. Bu, arka uç yükünü ve gecikmeyi azaltır; okuma ağırlıklı API'lerde Lambda çağrısı maliyetlerini önemli ölçüde düşürebilir. Önbellek, yapılandırmaya göre istek (yöntem, yol, sorgu dizeleri, üst bilgiler) temel alınarak anahtarlanır. Önbellek TTL'si 0 ile 3600 saniye arasında yapılandırılabilir (varsayılan 300 saniye).
aws apigateway update-stage \
--rest-api-id 'abc123' \
--stage-name 'prod' \
--patch-operations \
'op=replace,path=/cacheClusterEnabled,value=true' \
'op=replace,path=/cacheClusterSize,value=0.5' \
'op=replace,path=/*/*/caching/ttlInSeconds,value=300'Önbellek Anahtarını Özelleştirme
Varsayılan olarak önbellek anahtarı, isteğin tam URL'sidir. Önbellek anahtarına hangi öğelerin katkıda bulunacağını özelleştirebilirsiniz: belirli sorgu dizesi parametrelerini (ör. pageSize, filter) dahil ederken alakasız olanları (ör. zaman damgası) hariç tutabilirsiniz. Belirli üstbilgileri de önbellek anahtarına dahil edebilirsiniz. Özel verilerin paylaşılan önbellek girdilerini kirletmesini önlemek için hassas üstbilgileri önbellek anahtarından hariç tutun. Farklı mantıksal isteklerin farklı önbelleğe alınmış yanıtlar almasını sağlarken önbellek isabet oranlarını en üst düzeye çıkarmak için önbellek anahtarını ayarlayın.
Önbelleği Geçersiz Kılma
İstemciler, Cache-Control: max-age=0 üstbilgisini ekleyerek belirli bir isteğin önbelleğini geçersiz kılabilir. Tüm aşama önbelleğini konsoldan veya API üzerinden de temizleyebilirsiniz. İstemcilerin önbelleği geçersiz kılmasına izin verilip verilmeyeceğini yapılandırın—istemcilerin önbelleğe almayı kasıtlı olarak atlamasını önlemek için üretim ortamında bu izni kısıtlayın. Temizleme izinlerini seçerek vermek için bir kaynak ilkesi ekleyin veya çağıranın temizleme iznine sahip olup olmadığını denetleyen bir Lambda yetkilendiricisi kullanın.
# Flush entire stage cache
aws apigateway flush-stage-cache \
--rest-api-id 'abc123' \
--stage-name 'prod'Kullanım Planları: İstemci Başına İstek Hızı Sınırları
Kullanım Planı, bir API istemci grubuna yönelik hız sınırlamalarını ve kota sınırlarını tanımlar. Bir API aşamasını kullanım planıyla ilişkilendirin, ardından API anahtarlarını planla ilişkilendirin. Her API anahtarı, planın sınırlarını bağımsız olarak uygular. Kullanım planları, kademeli erişim sunmanıza olanak tanır: 100 RPM/10.000 istek/gün sunan Ücretsiz plan ve 1.000 RPM/100.000 istek/gün sunan Pro plan gibi. Bu model, farklı istemcilerin farklı istek hızı sınırlarına ihtiyaç duyduğu ücretli API'ler ve iş ortağı tümleştirmeleri için kullanılır.
# Create a usage plan
aws apigateway create-usage-plan \
--name 'ProTier' \
--throttle 'rateLimit=1000,burstLimit=2000' \
--quota 'limit=100000,period=DAY' \
--api-stages 'apiId=abc123,stage=prod'API Anahtarları ve İstemci Tanımlama
API anahtarları, istemcilerin x-api-key istek üstbilgisinde gönderdiği, anlamı dışarıdan anlaşılmayan dize belirteçleridir. API Ağ Geçidi anahtarı doğrular ve isteği ilgili kullanım planıyla ilişkilendirir. API anahtarları bir güvenlik mekanizması DEĞİLDİR—yalnızca hız sınırlama ve kota amaçlarıyla istemcileri tanımlar. Güvenlik için API anahtarlarını her zaman uygun yetkilendirmeyle (IAM, Lambda yetkilendiricisi veya Cognito) birlikte kullanın. Bir kullanım planıyla ilişkilendirilmemiş API anahtarlarına hız sınırlamaları uygulanmaz.
# Create an API key and associate with usage plan
aws apigateway create-api-key \
--name 'PartnerABC-Key' \
--enabled
aws apigateway create-usage-plan-key \
--usage-plan-id 'uvw321' \
--key-id 'xyz789' \
--key-type API_KEYKullanım Planlarında Kota Sınırları
Saniye başına hız sınırlamalarına ek olarak kullanım planları kota sınırlarını da destekler: belirli bir zaman aralığındaki (DAY, WEEK veya MONTH) en fazla istek sayısını. İstemci kotasını tükettiğinde sonraki istekler, kota sıfırlanana kadar 429 döndürür. Kota sınırları, ücretsiz katman uygulaması, API kötüye kullanımının önlenmesi ve API tüketiminin faturalandırmayla uyumlu hâle getirilmesi için kullanışlıdır. Kota sayaçları nihai olarak tutarlı olduğundan istemci engellenmeden önce kotasını biraz aşabilir.
Hız Sınırlama ve Önbelleğe Alma için CloudWatch Ölçümleri
API Ağ Geçidi durumunu aşağıdaki CloudWatch ölçümleriyle izleyin:
- Count: toplam API çağrısı
- 4XXError: 429 hız sınırlamaları dâhil istemci hataları
- 5XXError: arka uç hataları
- Latency: uçtan uca istek süresi
- IntegrationLatency: arka uç için beklenen süre
- CacheHitCount / CacheMissCount: önbellek etkinliği
Kullanıcıları etkilemeden önce hız sınırlama sorunlarını tespit etmek için 4XXError artışlarında ve önbellek yapılandırması sorunlarını belirlemek için CacheMissCount değerinde alarmlar ayarlayın.
Önbelleğe Alma ile Hız Sınırlama Ne Zaman Etkinleştirilmelidir
Yanıtların seyrek değiştiği ve okuma işlemlerinin ağırlıklı olduğu API'lerde (ürün kataloğu aramaları, başvuru verileri, statik yapılandırmalar) önbelleğe almayı kullanın. Kullanıcıya özel veya son derece dinamik verilerde önbelleğe alma ters etki yapar. Arka uç hizmetlerini aşırı yüklenmeye karşı korumak için hız sınırlamayı her zaman kullanın—dahili API'lerde bile. Her ikisini birleştirin: arka uç yükünü azaltmak için yaygın verileri önbelleğe alın ve tek bir istemcinin API'yi tekeline almasını önlemek için sıkı hız sınırlaması uygulayın. SAA-C03 sınavı için önbelleğe alma maliyeti ve gecikmeyi azaltır; hız sınırlama ise kullanılabilirliği güvence altına alır.
Hızlı Kontrol
Bu derste ele alınan AWS Solutions Architect (SAA-C03) kavramlarını anlayıp anlamadığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: hesap, aşama ve yöntem düzeylerindeki hız sınırlama, yapılandırılabilir hız ve ani artış sınırlarına sahip belirteç paketi algoritmasını kullanarak arka uçları korur; Yanıt Önbelleğe Alma, arka uç yükünü ve okuma ağırlıklı uç noktalar için gecikmeyi azaltmak üzere arka uç yanıtlarını yapılandırılabilir TTL süreleri boyunca depolar; API Anahtarlarına Sahip Kullanım Planları ise istemci başına hız sınırlarını ve kotaları uygulayarak iş ortağı ve herkese açık API'ler için kademeli erişim denetimi sağlar. Sırada kapsayıcılı iş yükleri için ECS kümelerini, görev tanımlarını ve hizmetlerini inceleyeceğiz.
Sıkça Sorulan Sorular
“Kısıtlama, Önbelleğe Alma ve Kullanım Planları” dersi ücretsiz mi?
Evet — “Kısıtlama, Önbelleğe Alma ve Kullanım Planları” 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.
“Kısıtlama, Önbelleğe Alma ve Kullanım Planları” dersinde ne öğreneceğim?
Ani artış ve sabit durum kısıtlama sınırlarıyla arka uçları koruyacak, yanıt önbelleğe almayı etkinleştirecek ve iş ortakları için API anahtarlarıyla kullanım planları oluşturacaksınız. 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.
“Kısıtlama, Önbelleğe Alma ve Kullanım Planları” 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
- REST API ve HTTP API ve WebSocket API
- Entegrasyonlar: Lambda, HTTP ve Taklit
- Yetkilendirme: IAM, Lambda Yetkilendiricileri ve Cognito
- Kısıtlama, Önbelleğe Alma ve Kullanım Planları