AWS FinOps: Gerçek Zamanlı Maliyet İzleme ve Optimizasyon
AWS üzerinde kaynak yönetimi yaparken karşılaşılan en büyük zorluklardan biri, maliyetlerin ne zaman oluştuğunu ve ne zaman raporlandığını anlamaktır. Genellikle AWS Cost Explorer üzerinden maliyetleri takip ederiz, ancak bu verilerde 24 saate varan gecikmeler yaşanabilir.
Bu yazıda, bu gecikmeyi aşarak maliyetlerinizi gerçek zamanlı (real-time) izleyebileceğiniz bir olay tabanlı (event-driven) mimariyi inceleyeceğiz.
Neden Gerçek Zamanlı İzleme?
AWS Cost Explorer harika bir araçtır ancak "reaktif" bir yaklaşım sunar. Yani, bir kaynak oluşturulduğunda maliyetini ertesi gün görürsünüz. Eğer yanlışlıkla çok pahalı bir EC2 instance (örneğin p3.16xlarge) açıldıysa, bunu fark ettiğinizde binlerce dolar harcamış olabilirsiniz.
Gerçek zamanlı izleme (proaktif yaklaşım) ile kaynak oluşturulduğu anda haberdar olabilir, bütçe aşımını daha gerçekleşmeden önleyebilirsiniz.
Çözüm Mimarisi
Bu çözümde 5 temel AWS servisi kullanacağız:
- CloudTrail: API çağrılarını (örneğin
RunInstances) yakalar. - EventBridge: CloudTrail'den gelen olayları filtreler ve ilgili olanları yönlendirir.
- Lambda: Olayı analiz eder, AWS Pricing API ile maliyeti hesaplar ve eşik değerini aşarsa uyarı üretir.
- SNS (Simple Notification Service): Uyarıları e-posta veya SMS olarak size iletir.
- IAM: Servislerin birbirleriyle güvenli konuşmasını sağlar.
Bu mimari sayesinde, örneğin birisi pahalı bir sunucu açtığında saniyeler içinde uyarı alırsınız.
Adım Adım Kurulum Rehberi
Aşağıda bu sistemi kurmak için gerekli adımları bulabilirsiniz.
Adım 1: CloudTrail'i Etkinleştirin
İlk olarak, AWS hesabınızda yapılan tüm API çağrılarını kaydeden bir CloudTrail izi (trail) oluşturmalısınız. Bu iz, RunInstances gibi kritik olayları yakalayarak EventBridge'e iletecektir.
Adım 2: EventBridge Kuralı Oluşturma
EventBridge, CloudTrail'den gelen binlerce olay arasından sadece ilgilendiklerimizi seçmemizi sağlar. Örneğin, sadece EC2 sunucu başlatma olaylarını yakalamak için aşağıdaki JSON desenini kullanabilirsiniz:
{
"source": ["aws.ec2"],
"detail-type": ["AWS API Call via CloudTrail"],
"detail": {
"eventSource": ["ec2.amazonaws.com"],
"eventName": ["RunInstances"]
}
}
Bu kural, sadece RunInstances çağrısı yapıldığında tetiklenir ve gereksiz Lambda maliyetlerinden kaçınmanızı sağlar.
Adım 3: Lambda ve Fiyatlandırma Kontrolü
EventBridge kuralı tetiklendiğinde bir Lambda fonksiyonunu çalıştırırız. Bu fonksiyon, oluşturulan kaynağın özelliklerini (örneğin t3.micro veya m5.large) alır ve AWS Pricing API'yi sorgulayarak saatlik maliyetini öğrenir.
Örnek bir fiyat sorgusu (CLI ile):
aws pricing get-products --service-code AmazonEC2 --filters "Type=TERM_MATCH,Field=instanceType,Value=t3.micro" --region us-east-1
Lambda fonksiyonunuz bu sorguyu SDK ile yaparak, eğer maliyet belirlediğiniz bir eşiği (örneğin saatlik $1) aşıyorsa bir uyarı oluşturur.
Adım 4: SNS ile Bildirim Alma
Son olarak, Lambda fonksiyonunuzun oluşturduğu uyarıyı size ulaştırmak için bir SNS Topic oluşturun ve e-posta adresinizi abone yapın. Lambda, "Dikkat: Pahalı bir kaynak (m5.large) oluşturuldu!" gibi bir mesajı bu SNS konusuna gönderir.
Sıkça Sorulan Sorular (SSS)
1. Bu sistemin maliyeti nedir?
Bu mimari tamamen Serverless (sunucusuz) olduğu için sadece olay gerçekleştiğinde (bir kaynak oluşturulduğunda) ücret ödersiniz. Boşta beklerken maliyet oluşturmaz.
2. Sadece EC2 için mi geçerli?
Hayır. CloudTrail ve EventBridge üzerinden RDS, Lambda, DynamoDB gibi diğer servislerin oluşturulma olaylarını da (örneğin CreateDBInstance) izleyebilirsiniz.
3. Cost Explorer yerine bunu mu kullanmalıyım?
Hayır, Cost Explorer genel trendleri ve geçmiş analizleri görmek için gereklidir. Bu sistem ise anlık müdahale ve olağandışı durum tespiti için tamamlayıcı bir çözümdür.
Sonuç
Maliyet yönetimi (FinOps), sadece fatura ödemek değil, kaynakları verimli kullanmaktır. Bu rehberdeki olay tabanlı mimari ile AWS harcamalarınız üzerinde tam kontrol sağlayabilir, sürpriz faturalardan kurtulabilirsiniz.
Daha fazla bilgi için AWS Danışmanlığı ve Kubernetes Danışmanlığı hizmetlerimize göz atabilirsiniz. Ayrıca genel teknoloji blogumuz için Ana Sayfa'yı ziyaret edebilirsiniz.
Görsel Önerileri:
- Architecture Diagram: CloudTrail -> EventBridge -> Lambda -> SNS akışını gösteren bir diyagram. (Alt text: AWS Event-Driven Cost Monitoring Architecture)
- EventBridge Rule: EventBridge konsolunda kural oluşturma ekran görüntüsü. (Alt text: EventBridge Rule Configuration for EC2 Events)
Önerilen Dış Bağlantılar:
Kaynak / Source: https://awsfundamentals.com/blog/aws-finops-realtime-monitoring