0Pricing
Cloud & IT Cert Prep · Ders

Eşzamanlılık, Kısıtlama ve Ayrılmış Eşzamanlılık

Lambda'nın eşzamanlı olarak nasıl ölçeklendiğini anlayacak, alt hizmetleri korumak için ayrılmış eşzamanlılığı ayarlayacak ve kısıtlama hatalarını ele alacaksınız.

Eşzamanlılık, Kısıtlama ve Ayrılmış Eşzamanlılık, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 2. 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, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

Lambda Eşzamanlı Olarak Nasıl Ölçeklenir

Lambda, işlevinizin birden çok eşzamanlı yürütmesini çalıştırarak ölçeklenir; her eşzamanlı olay için bir yürütme çalıştırılır. Aynı anda 100 istek geldiğinde Lambda, işlevinizin 100 paralel örneğini çalıştırır. AWS, temel altyapıyı otomatik olarak yönetir. hesap düzeyindeki eşzamanlılık sınırı, varsayılan olarak Bölge başına 1.000 eşzamanlı yürütmedir (artırılabilen bir esnek sınırdır ve hizmet kotası isteğiyle yükseltilebilir).

Eşzamanlılık Hesaplama

Eşzamanlılık şu şekilde hesaplanır: Eşzamanlılık = Saniyedeki İstek Sayısı × Saniye Cinsinden Ortalama Süre. İşleviniz saniyede 500 isteği işliyorsa ve her istek 0,2 saniye sürüyorsa 100 eşzamanlı yürütmeye ihtiyacınız vardır. Bu formülü anlamak, hesap sınırlarınızın yeterli olup olmadığını ve yoğun trafikli bir etkinlikten önce kota artışı istemeniz gerekip gerekmediğini öngörmenize yardımcı olur.

# Example concurrency calculation
# RPS = 500, avg_duration = 0.2s
# Concurrency = 500 * 0.2 = 100

# To check current concurrency limits:
aws lambda get-account-settings

Kısıtlama: Sınırlara Ulaşıldığında Ne Olur

Lambda, eşzamanlılık sınırının izin verdiğinden daha fazla istek aldığında fazlalıkları kısıtlar. eş zamanlı çağrılarda (ör. API Gateway) kısıtlanan istekler, çağıran tarafından ele alınması gereken 429 TooManyRequestsException hatasını hemen alır. eş zamansız çağrılarda (ör. S3 olayları) Lambda, olayları kuyruğa alır ve bunları ölü mektup kuyruğuna göndermeden önce 6 saate kadar yeniden dener.

Ayrılmış Eşzamanlılığın Açıklaması

Reserved Concurrency, belirli bir işlev için belirli sayıda eşzamanlı yürütmeyi garanti eder ve bu yürütmeleri hesap havuzundan ayırır. İki amaca hizmet eder: (1) kapasiteyi garanti eder; diğer işlevler hesap kotasını tüketiyor olsa bile işlevin her zaman bu sayıda kullanılabilir yürütmesi olur; (2) eşzamanlılığı sınırlar; işlev ayrılan miktarı hiçbir zaman aşamaz ve böylece alt hizmetlerin aşırı yüklenmesini önler.

# Reserve 100 concurrent executions for a critical function
aws lambda put-function-concurrency \
  --function-name 'CriticalProcessor' \
  --reserved-concurrent-executions 100

Ayrılmış Eşzamanlılıkla Alt Hizmetleri Koruma

Önemli bir sınav senaryosu: Bir Lambda işlevi, bağlantı sınırı 50 olan bir RDS veritabanına yazıyor. Eşzamanlılık denetimleri olmadan Lambda, yüzlerce eşzamanlı yürütmeye ölçeklenebilir ve tüm veritabanı bağlantılarını tüketerek her işlev için hatalara neden olabilir. Ayrılmış eşzamanlılığı 40 olarak ayarlamak, Lambda'nın hiçbir zaman 40 eşzamanlı veritabanı bağlantısını aşmamasını ve RDS örneğinin korunmasını sağlar. Bu, bağlantı sayısı sınırlı bir hizmeti çağıran her Lambda işlevi için kritik bir düzendir.

Soğuk Başlatmaları Ortadan Kaldırmak için Sağlanmış Eşzamanlılık

Provisioned Concurrency, belirli sayıda Lambda yürütme ortamını önceden başlatır; böylece bu ortamlar soğuk başlatma olmadan hemen yanıt vermeye hazır olur. Bu, 100 ms'lik bir soğuk başlatmanın bile kabul edilemez olduğu gecikmeye duyarlı API'ler için kritik öneme sahiptir. Bu ortamlar boşta olsa bile sağlanmış eşzamanlılık için saatlik ücret ödersiniz; bu nedenle sağlanmış düzeyleri öngörülen trafik düzenlerine göre ayarlamak için bunu Auto Scaling ile birlikte kullanın.

aws lambda put-provisioned-concurrency-config \
  --function-name 'LatencySensitiveAPI' \
  --qualifier 'prod' \
  --provisioned-concurrent-executions 50

Ayrılmış ve Sağlanmış Eşzamanlılık

Bunlar çoğu zaman karıştırılır; ancak farklı amaçlara hizmet eder. Reserved Concurrency, hesap havuzundaki kapasite tahsisini sınırlar ve garanti eder; soğuk başlatmaları ortadan kaldırmaz. Provisioned Concurrency, soğuk başlatmaları ortadan kaldırmak için yürütme ortamlarını önceden ısıtır; diğer işlevlerin aynı havuzu kullanmasını engellemez. İş hacmini sınırlamak için ayrılmış eşzamanlılığı, gecikmeyi iyileştirmek için sağlanmış eşzamanlılığı kullanın. Her ikisi de aynı işlevde birlikte kullanılabilir.

Ani Artış Sınırları ve İlk Ölçeklendirme

Lambda, tam eşzamanlılığa anında ölçeklenmez. Bölgeye göre değişen bir hesap düzeyi ani artış sınırı (başlangıç ölçeklendirme hızı) vardır; bu sınır genellikle ilk anda 3.000, ardından sınıra ulaşılana kadar dakikada 500 ek yürütmedir. Ani ve büyük artışlar bekleyen uygulamalarda (viral trafik, kısa süreli indirimler), başlangıçtaki artış sırasında ani artış sınırının kısıtlamaya neden olmaması için yeterli ortamı önceden ısıtmak üzere Provisioned Concurrency kullanın.

CloudWatch'ta Lambda Eşzamanlılık Ölçümleri

Lambda eşzamanlılığını şu temel CloudWatch ölçümleriyle izleyin:

  • ConcurrentExecutions: o anda çalışan örneklerin sayısı
  • Throttles: kısıtlanan çağrıların sayısı (sağlıklı bir sistemde sıfır olmalıdır)
  • UnreservedConcurrentExecutions: hesap düzeyindeki ayrılmamış havuz
  • ProvisionedConcurrencyUtilization: sağlanmış kapasitenin ne kadarının kullanıldığı

Kısıtlamanın son kullanıcıları etkilemesinden önce bildirim almak için Throttles üzerinde alarmlar ayarlayın.

aws cloudwatch put-metric-alarm \
  --alarm-name 'LambdaThrottlesAlert' \
  --metric-name Throttles \
  --namespace AWS/Lambda \
  --dimensions Name=FunctionName,Value=MyFunction \
  --statistic Sum \
  --period 60 \
  --threshold 1 \
  --comparison-operator GreaterThanOrEqualToThreshold \
  --evaluation-periods 1

Uygulama Kodunda Kısıtlamaları Ele Alma

Lambda'yı eş zamanlı olarak çağıran sistemleri tasarlarken (API Gateway, doğrudan SDK çağrıları), çağıran tarafta jitter içeren üstel geri çekilme uygulayın. AWS SDK'larında yerleşik yeniden deneme mantığı vardır; ancak API Gateway önündeki Lambda için 429 yanıtlarını istemci uygulamanızda ele almanız gerekir. SQS tarafından tetiklenen Lambda için yeniden denemeleri SQS hizmetinin kendisi yönetir; kaynak kuyruğunda Maksimum Alma Sayısı değerini uygun şekilde ayarlayın ve yeniden denemeler tükendiğinde kullanılmak üzere bir DLQ yapılandırın.

Eşzamanlılık ve Akış Tabanlı Tetikleyiciler

Kinesis Data Streams ve DynamoDB Streams için Lambda eşzamanlılığı, parçaların (Kinesis) veya bölümlerin (DynamoDB) sayısıyla sınırlıdır. Her parça/bölüm tam olarak bir eşzamanlı Lambda yürütmesi tarafından işlenir. 10 Kinesis parçanız varsa Lambda, bu tetikleyici için en fazla 10 eşzamanlı yürütme çalıştırır. Bu nedenle akış tabanlı tetikleyicilerdeki kısıtlama sorunları genellikle eşzamanlılık sınırlarını artırmak yerine parça sayısını artırarak çözülür.

Kısa Kontrol

Bu dersteki AWS Solutions Architect (SAA-C03) kavramlarını anlayıp anlamadığınızı sınayın.

Ders Özeti

Bu derste şunları öğrendiniz: Reserved Concurrency, alt hizmetleri korumak ve kullanılabilirliği güvence altına almak için bir işlevin eşzamanlı yürütmelerini hem garanti eder hem de sınırlar; Provisioned Concurrency, gecikmeye duyarlı iş yüklerinde soğuk başlatmaları ortadan kaldırmak için ortamları önceden başlatır; kısıtlama ise eş zamanlı çağrılarda 429 hataları, eş zamansız çağrılarda kuyruğa alınmış yeniden denemeler olarak ortaya çıkar ve Throttles CloudWatch ölçümüyle izlenir. Sırada büyük bağımlılıkları yönetmek için Lambda Katmanlarını ve dağıtım paketlerini inceleyeceğiz.

Sıkça Sorulan Sorular

“Eşzamanlılık, Kısıtlama ve Ayrılmış Eşzamanlılık” dersi ücretsiz mi?

Evet — “Eşzamanlılık, Kısıtlama ve Ayrılmış Eşzamanlılık” 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 Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

“Eşzamanlılık, Kısıtlama ve Ayrılmış Eşzamanlılık” dersinde ne öğreneceğim?

Lambda'nın eşzamanlı olarak nasıl ölçeklendiğini anlayacak, alt hizmetleri korumak için ayrılmış eşzamanlılığı ayarlayacak ve kısıtlama hatalarını ele alacaksınız. Cloud & IT Cert Prep 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.

Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, 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 2. dersidir.

“Eşzamanlılık, Kısıtlama ve Ayrılmış Eşzamanlılık” 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 Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cloud & IT Cert Prep 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

  1. Lambda İşlevleri: Çalışma Zamanları, Tetikleyiciler ve İşleyiciler
  2. Eşzamanlılık, Kısıtlama ve Ayrılmış Eşzamanlılık
  3. Lambda Katmanları ve Dağıtım Paketleri
  4. Lambda@Edge ve Olay Güdümlü Desenler
← Cloud & IT Cert Prep Sayfasına Dön