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ı

  1. 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.
  2. 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:

  1. IRSA: Pod'unuza lambda:InvokeFunction yetkisi olan bir IAM rolü atayın.
  2. 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:

  1. VPC Config: Lambda'yı EKS ile aynı VPC ve Private Subnet'lere koyun.
  2. 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.