2025-01-10Hünkar Döner
EKS ile Serverless Entegrasyonu (Lambda + EKS)
ServerlessLambdaEKSEventBridgeIntegration
E
EKS ile Serverless Entegrasyonu (Lambda + EKS)
Konteynerler ve Serverless fonksiyonlar rakip değil, tamamlayıcıdır. Birçok modern mimaride, uzun süreli servisler Amazon EKS üzerinde çalışırken, olay tabanlı (event-driven) kısa işler AWS Lambda üzerinde çalışır.
Kullanım Senaryoları
- Dosya İşleme: EKS üzerindeki uygulamanıza bir dosya yüklendiğinde, S3'e kaydedilir. S3 olayı Lambda'yı tetikler, Lambda resmi boyutlandırır ve sonucu EKS'e bildirir.
- Webhook İşleme: Dış dünyadan gelen webhook'ları API Gateway + Lambda ile karşılayıp, işledikten sonra sonucu SQS kuyruğuna atarak EKS'in tüketmesini sağlayabilirsiniz.
EKS'ten Lambda Çağırmak
EKS podunuzun içinden Lambda çağırmak için:
- IRSA: Pod'unuza
lambda:InvokeFunctionyetkisi olan bir IAM rolü atayın. - AWS SDK: Uygulamanızın içinde AWS SDK kullanarak fonksiyonu çağırın.
import boto3
client = boto3.client('lambda')
response = client.invoke(FunctionName='my-function', Payload='...')
Lambda'dan EKS'e Erişmek
Lambda fonksiyonunuzun EKS içindeki bir servise (örn: Redis veya özel bir API) erişmesi gerekiyorsa:
- VPC Config: Lambda'yı EKS ile aynı VPC ve Private Subnet'lere koyun.
- Security Group: Lambda'nın güvenlik grubuna, EKS güvenlik grubundan erişim izni verin.
Bu hibrit yapı, AWS Danışmanlığı projelerinde maliyet ve performans optimizasyonu için sıkça kullandığımız bir desendir.