AWS’de (Neredeyse) Ücretsiz Sunucusuz Hız Sınırlayıcı Nasıl Oluşturulur?
Merhaba! Bugün, AWS’de sunucusuz bir hız sınırlayıcı nasıl oluşturulacağını adım adım ele alacağız. Bu hız sınırlayıcı, uygulamalarınıza gelen istek sayısını sınırlayarak, sisteminizi aşırı yüklenmeden koruyabilir. Ayrıca, ücretsiz katman kullanımıyla, geliştirme ve küçük ölçekli uygulamalar için düşük maliyetli bir çözüm sunar.
Sunucusuz Hız Sınırlayıcının Avantajları
Sunucusuz hız sınırlayıcılar, geleneksel hız sınırlayıcılarına göre bir dizi avantaj sunar:
- **Ölçeklenebilirlik:** İhtiyaç duyduğunuz kadar ölçeklenebilirler, istek patlamalarıyla başa çıkmak için otomatik olarak ölçeklenirler.
- **Maliyet Etkinliği:** Sadece kaynak kullandığınız zaman ücret ödersiniz, uygulama kullanılmadığında hiçbir masraf olmaz.
- **Yönetim Kolaylığı:** Sunucusuz hizmetler, karmaşık altyapı yönetimi gereksinimlerini ortadan kaldırır.
AWS’de Sunucusuz Hız Sınırlayıcı Oluşturma
Şimdi, bir AWS sunucusuz hız sınırlayıcısı oluşturma adımlarını inceleyelim:
1. AWS Lambda Fonksiyonu Oluşturma
İlk adım, istekleri işleyen bir AWS Lambda fonksiyonu oluşturmaktır. Bu fonksiyon, isteklerin hız sınırlayıcı kurallarını denetler ve gerekirse istekleri reddeder. Lambda fonksiyonu, Python, Node.js veya Java gibi çeşitli dillerde yazılabilir.
Örnek bir Python Lambda fonksiyonu:
“`python
import json
def lambda_handler(event, context):
# İstek sınırlamasını uygulayın
# Örneğin, bir istek sayacı kullanabilir ve eşik değerini aşarsa isteği reddedebilirsiniz.
# İsteği başarıyla işleyin
response = {
“statusCode”: 200,
“body”: json.dumps({“message”: “İstek başarılı!”})
}
return response
“`
2. Amazon API Gateway’i Kullanarak İstekleri Yönlendirme
Lambda fonksiyonunuza istekleri yönlendirmek için Amazon API Gateway’i kullanın. API Gateway, istekleri kabul eden, fonksiyonunuzu çalıştıran ve yanıtları döndüren bir ön uç olarak hizmet verir.
API Gateway’de bir REST API oluşturun ve Lambda fonksiyonunuzu çağırmak için bir end point belirleyin. Ayrıca, API Gateway’in hız sınırlayıcı özelliklerini kullanarak isteğe bağlı hız sınırları ekleyebilirsiniz.
3. Amazon DynamoDB’de Hız Sınırlayıcı Verilerini Depolama
Hız sınırlayıcı verilerini depolamak için Amazon DynamoDB gibi bir veritabanı kullanın. DynamoDB, yüksek hacimli veri için tasarlanmış ve Lambda fonksiyonları tarafından hızlı ve etkili bir şekilde erişilebilir. Bu verilerde, her istemcinin belirli bir zaman dilimi içinde yaptığı istek sayısı gibi bilgiler bulunabilir.
4. Hız Sınırlayıcı Kurallarını Uygulama
Lambda fonksiyonunuz, DynamoDB’deki hız sınırlayıcı verilerini kullanarak istekleri denetler. Eğer bir istemci belirli bir zaman dilimi içinde belirlenen eşik değeri aşarsa, istek reddedilir. Hız sınırlayıcı kurallarını, istek başına, dakika başına veya saat başına gibi zaman dilimlerine göre yapılandırabilirsiniz.
Örnek Python kodu:
“`python
import json
import boto3
dynamodb = boto3.client(‘dynamodb’)
def lambda_handler(event, context):
# İstemci kimliğini alın (örneğin, IP adresi veya API anahtarı)
client_id = event[‘requestContext’][‘identity’][‘sourceIp’]
# İstemci için istek sayısını DynamoDB’den alın
response = dynamodb.get_item(
TableName=’rate_limiter’,
Key={‘clientId’: {‘S’: client_id}}
)
request_count = int(response[‘Item’][‘requestCount’][‘N’])
# Eşik değerini kontrol edin
if request_count > 10:
# İsteği reddedin
return {
“statusCode”: 429,
“body”: json.dumps({“message”: “Çok fazla istek!”})
}
# İstek sayısını artırın
dynamodb.update_item(
TableName=’rate_limiter’,
Key={‘clientId’: {‘S’: client_id}},
UpdateExpression=’set requestCount = requestCount + :inc’,
ExpressionAttributeValues={‘:inc’: {‘N’: ‘1’}}
)
# İsteği başarıyla işleyin
response = {
“statusCode”: 200,
“body”: json.dumps({“message”: “İstek başarılı!”})
}
return response
“`
5. Uygulamayı Test Etme
Hız sınırlayıcınızı test etmek için API Gateway’i kullanarak istekler gönderin. Belirlenen eşik değerine ulaştığınızda, isteklerin reddedildiğini doğrulayın. Hız sınırlayıcı kurallarını gerektiği gibi ayarlayın ve performansı inceleyin.
Ücretsiz Katman Kullanımı
AWS, Lambda ve DynamoDB için ücretsiz katman kullanımı sunmaktadır. Bu, küçük ölçekli uygulamalar için aylık belirli bir sayıda istek ve depolama kapasitesi için ücretsiz olarak hizmeti kullanmanıza olanak tanır. Hız sınırlayıcınızı geliştirme ve test etme amacıyla ücretsiz katman kullanabilirsiniz.
Özet
Bu makalede, AWS’de sunucusuz bir hız sınırlayıcı oluşturma adımlarını ele aldık. Bu hız sınırlayıcı, uygulamalarınızı aşırı yüklenmeden koruyarak, istek sayısını sınırlayabilir. Ayrıca, ücretsiz katman kullanımıyla, geliştirme ve küçük ölçekli uygulamalar için düşük maliyetli bir çözüm sunar.
Faydalı Bağlantılar
Umarım bu makale, AWS’de sunucusuz hız sınırlayıcı oluşturmak için size yardımcı olur. Başka sorularınız varsa, lütfen yorum bölümünden bana ulaşın.
#Etiketler
AWS, Sunucusuz, Hız Sınırlayıcı, Lambda, API Gateway, DynamoDB, Ücretsiz Katman, Geliştirme, Uygulama, İstek Sınırlama, Ölçeklenebilirlik, Maliyet Etkinliği, Yönetim Kolaylığı