Takip et

Google Cloud Billing API ve BigQuery Export: Detaylı Rehber

Google Cloud Platform (GCP) üzerindeki maliyetlerinizi yönetmek, büyüyen altyapılar için karmaşık bir hal alabilir. Beklenmedik faturalar, kaynak israfı ve bütçe aşımı gibi sorunlarla mı karşılaşıyorsunuz? Google Cloud Billing API ve BigQuery Export’ları, bu zorlukların üstesinden gelmenizi sağlayacak güçlü araçlardır. Bu makalede, maliyet verilerinizi derinlemesine analiz etmek, optimizasyon fırsatlarını keşfetmek ve bulut harcamalarınızı tam kontrol altına almak için bu iki kritik teknolojiyi nasıl kullanacağınızı adım adım inceleyeceğiz. İşte bulut maliyetlerinizi şeffaf ve yönetilebilir hale getirmenin yolu!

Bulut bilişimin sunduğu esneklik ve ölçeklenebilirlik, modern işletmeler için vazgeçilmezdir. Ancak bu avantajlar, beraberinde maliyet yönetimiyle ilgili önemli zorlukları da getirir. Özellikle Google Cloud gibi kapsamlı bir platformda, onlarca farklı hizmet, yüzlerce SKU (Stok Birimi) ve karmaşık fiyatlandırma modelleri, şirketlerin faturalarını anlamasını ve optimize etmesini zorlaştırabilir. Projeler büyüdükçe, her bir kaynağın anlık maliyetini takip etmek, beklenmedik harcamaları tespit etmek ve bütçeye uygun hareket etmek giderek daha karmaşık bir hal alır.

Birçok kuruluş, başlangıçta GCP’nin sunduğu varsayılan faturalandırma raporlarına güvenir. Ancak bu raporlar genellikle genel bir bakış sunar ve detaylı, granüler veri analizi için yetersiz kalır. Örneğin, belirli bir projenin hangi servislerde ne kadar harcama yaptığını, hangi kullanıcıların veya etiketlerin maliyetleri artırdığını görmek zordur. Bu durum, “gölge IT” maliyetleri, kullanılmayan veya yanlış yapılandırılmış kaynaklar gibi gözden kaçan israf noktalarının ortaya çıkmasına neden olabilir. Maliyetlerin şeffaf olmaması, ekiplerin sorumluluk almasını ve maliyet bilinciyle hareket etmesini de engeller. Dolayısıyla, sadece genel toplamı bilmek yerine, maliyetlerin kaynağını ve nedenini anlamak, etkili bir maliyet optimizasyonu stratejisinin temelini oluşturur.

İşte tam bu noktada Google Cloud Billing API ve BigQuery Export’lar devreye girer. Bu araçlar sayesinde, faturalandırma verilerinize programatik olarak erişebilir, en ince ayrıntısına kadar inceleyebilir ve kendi özel analizlerinizi oluşturabilirsiniz. Bu sayede, maliyet yönetimini pasif bir görev olmaktan çıkarıp, proaktif bir stratejiye dönüştürebilirsiniz. Bu makalenin ilerleyen bölümlerinde, bu güçlü ikilinin nasıl kurulacağını, kullanılacağını ve gerçek dünya senaryolarında size nasıl değer katacağını detaylıca ele alacağız. Artık bulut maliyetleriniz sizi şaşırtmayacak!

Temel Kavramlar: Google Cloud Billing API ve BigQuery Export’ları Nedir?

Google Cloud maliyetlerinizi etkili bir şekilde yönetebilmek için, öncelikle temel araçlar olan Google Cloud Billing API ve BigQuery Export’larını iyi anlamak gerekir. Bu iki bileşen, bulut harcamalarınız üzerinde tam kontrol sağlamanız için birbirini tamamlayan bir yapı sunar. Gelin, her birinin ne anlama geldiğini ve neden bu kadar önemli olduğunu daha yakından inceleyelim.

Google Cloud Billing API Nedir ve Ne İşe Yarar?

Google Cloud Billing API, adından da anlaşılacağı gibi, Google Cloud faturalandırma hesaplarınızla programatik olarak etkileşim kurmanızı sağlayan bir arabirimdir. Bu API sayesinde, faturalandırma hesaplarınızın durumunu sorgulayabilir, projelerinizi belirli faturalandırma hesaplarına bağlayabilir, hesapları kapatabilir ve hatta fatura dönemi bazında genel maliyet özetleri alabilirsiniz. API, özellikle büyük ölçekli ve çoklu projeye sahip kuruluşlar için otomasyon imkanları sunar. Örneğin, yeni bir proje oluşturulduğunda otomatik olarak belirli bir faturalandırma hesabına bağlanmasını sağlayabilir veya faturalandırma ayarlarında yapılan değişiklikleri izleyebilirsiniz.

API’nin en büyük avantajlarından biri, manuel müdahaleyi azaltması ve insan hatası riskini en aza indirmesidir. Python, Java, Node.js gibi popüler programlama dilleriyle entegre edilebilir ve faturalandırma süreçlerinizi CI/CD (Sürekli Entegrasyon/Sürekli Dağıtım) boru hatlarınıza dahil etmenize olanak tanır. Ancak unutmamak gerekir ki, Billing API genellikle daha üst düzey faturalandırma hesabı yönetimi ve özet bilgiler için tasarlanmıştır. Gerçek, granüler maliyet analizi ve her bir kaynak bazındaki harcamaları görmek için asıl gücünü BigQuery Export’ları ile birleştiririz. API, size “Ne kadar ödüyorum?” sorusunun genel cevabını verirken, BigQuery Export’ları “Neye, ne zaman ve ne kadar ödüyorum?” sorusunun detaylı cevabını sunar.

BigQuery Export’ları Neden Kritik?

BigQuery Export’ları, Google Cloud faturalandırma verilerinizin en detaylı ve ham halini doğrudan bir BigQuery veri kümesine aktarmanızı sağlayan bir özelliktir. Bu, her bir hizmetin (Compute Engine, Cloud Storage, BigQuery vb.) her bir SKU’sunun, yani tam olarak ne için ücretlendirildiğinizin, ne zaman ve ne kadar kullanıldığının bilgilerini içerir. Geleneksel faturalandırma raporları, genellikle aylık bazda özetlenmiş veya belirli bir hizmete odaklanmış bilgiler sunarken, BigQuery Export’ları mikro seviyede bir analiz yapılmasına olanak tanır.

Bu detay seviyesi, maliyet optimizasyonu stratejileri için hayati öneme sahiptir. Örneğin, hangi sanal makinenin fazla kaynak tükettiğini, hangi Cloud Storage paketinin beklenenden daha pahalıya geldiğini, hatta belirli bir BigQuery sorgusunun ne kadar maliyet oluşturduğunu dahi bu verilerle tespit edebilirsiniz. BigQuery’nin analitik yetenekleriyle birleştiğinde, bu export’lar sayesinde:

  • Anomali Tespiti: Beklenmedik maliyet artışlarını hızla fark edebilirsiniz.
  • Kaynak Optimizasyonu: Kullanılmayan veya verimsiz kaynakları belirleyebilirsiniz.
  • Maliyet Dağılımı (Chargeback/Showback): Maliyetleri departmanlara, projelere veya ürünlere göre hassas bir şekilde dağıtabilirsiniz.
  • Özelleştirilmiş Raporlama: Kendi iş mantığınıza uygun, dinamik ve interaktif maliyet panoları oluşturabilirsiniz.
  • Bütçeleme ve Tahmin: Geçmiş verilere dayanarak gelecekteki harcamalarınızı daha doğru bir şekilde tahmin edebilirsiniz.

Kısacası, BigQuery Export’ları, GCP faturalandırma verilerinizi bir kara kutudan çıkarıp, üzerinde sınırsız analiz yapabileceğiniz şeffaf bir veri kaynağına dönüştürür. Billing API ise bu BigQuery verilerini daha geniş bir otomasyon ve yönetim çerçevesine entegre etmenize yardımcı olur. Bu iki aracın birleşimi, bulut maliyetleriniz üzerinde tam hakimiyet kurmanızın anahtarıdır.

Adım Adım Kurulum: Google Cloud Billing Export’larını BigQuery’ye Nasıl Aktarılır?

Google Cloud maliyetlerinizi derinlemesine analiz edebilmek için atmanız gereken ilk ve en kritik adım, faturalandırma verilerinizi BigQuery’ye aktarmaktır. Bu işlem, GCP konsolu üzerinden oldukça kolay bir şekilde yapılabilir ve genellikle bir kez yapılandırıldıktan sonra otomatik olarak çalışmaya devam eder. İşte adım adım bu süreci nasıl başlatacağınız:

1. Gerekli İzinleri Doğrulayın

Bu işlemi gerçekleştirebilmek için, GCP projenizde veya kuruluşunuzda yeterli yetkilere sahip olmanız gerekir. Genellikle, Billing Account User veya Billing Account Administrator rolüne sahip olmanız ve verileri export edeceğiniz BigQuery projesi üzerinde BigQuery Data Editor izinlerine sahip olmanız gereklidir. Bu izinlere sahip değilseniz, kuruluşunuzun GCP yöneticisinden talep etmelisiniz.

2. BigQuery İçin Yeni Bir Proje ve Veri Kümesi Oluşturun (Önerilen)

Maliyet verilerinizi ayrı bir GCP projesinde tutmak, güvenlik ve yönetim açısından en iyi uygulamadır. Eğer hali hazırda maliyet verilerini saklamak için bir projeniz yoksa, yeni bir proje oluşturun:

  1. GCP Konsolu’na gidin.
  2. Üst kısımdaki proje seçiciden “Yeni Proje” oluşturun. Örneğin: my-billing-data-project.
  3. Bu proje içinde bir BigQuery veri kümesi (dataset) oluşturun. Bu veri kümesi, faturalandırma verilerinizin depolanacağı yer olacaktır. BigQuery konsoluna gidin, projenizi seçin ve “DATASET OLUŞTUR” düğmesine tıklayın. Veri kümenize bir ad verin (örn: billing_export_dataset) ve coğrafi konumu seçin. Verilerinizi bölgesel olarak (örn: us-central1) veya çoklu bölgesel (örn: US) bir konumda saklayabilirsiniz.

3. Faturalandırma Verilerini BigQuery’ye Aktarımı Etkinleştirin

Bu adım, faturalandırma verilerinizin BigQuery’ye otomatik olarak gönderilmesini sağlar:

  1. GCP Konsolu’nda, sol menüden “Faturalandırma” (Billing) seçeneğine gidin.
  2. Birden fazla faturalandırma hesabınız varsa, verilerini dışa aktarmak istediğiniz hesabı seçin.
  3. Sol menüden “Maliyet Yönetimi” (Cost Management) altında “Maliyet Dışa Aktarımları” (Cost Exports) seçeneğine tıklayın.
  4. Burada iki farklı dışa aktarma seçeneği göreceksiniz:
    • Standart kullanım maliyeti verileri (Standard usage cost data): Bu, daha özetlenmiş, ancak yine de çoğu analiz için yeterli olan faturalandırma verilerini içerir.
    • Ayrıntılı kullanım maliyeti verileri (Detailed usage cost data): Bu, her bir hizmetin SKU düzeyinde kullanım detaylarını, etiketleri ve diğer hassas verileri içeren en kapsamlı veridir. Çoğu ileri düzey analiz için bu seçeneği tercih etmelisiniz.

    Her iki seçeneği de etkinleştirebilirsiniz, ancak ayrıntılı veriler daha fazla depolama alanı kaplayacaktır.

  5. Seçtiğiniz dışa aktarma tipinin yanındaki “Dışa Aktarımı Düzenle” veya “Dışa Aktarmayı Ayarla” düğmesine tıklayın.
  6. Açılan pencerede:
    • “Proje kimliği” (Project ID) alanına, BigQuery veri kümenizi oluşturduğunuz projenin kimliğini girin (örn: my-billing-data-project).
    • “Veri kümesi kimliği” (Dataset ID) alanına, daha önce oluşturduğunuz veri kümesinin adını girin (örn: billing_export_dataset).
  7. “KAYDET” düğmesine tıklayarak ayarları kaydedin.
Uzman İpucu: İlk dışa aktarma işlemi tamamlanana kadar BigQuery veri kümenizde faturalandırma tablosunu göremeyebilirsiniz. Verilerin tam olarak görünmesi birkaç saat sürebilir. İlk tablonun adı genellikle gcp_billing_export_v1_XXXXXX formatında olacaktır, burada XXXXXX faturalandırma hesabınızın benzersiz kimliğidir.

Bu adımları tamamladığınızda, Google Cloud artık faturalandırma verilerinizi otomatik olarak seçtiğiniz BigQuery veri kümesine aktarmaya başlayacaktır. Bu veriler, saatlik veya günlük bazda güncellenir ve size maliyetleriniz üzerinde anlık bir görünürlük sağlar. Artık bu ham veriler üzerinde güçlü SQL sorguları çalıştırabilir, panolar oluşturabilir ve bulut harcamalarınızı anlamak için gerekli temel altyapıyı kurmuş olursunuz. Bir sonraki bölümde, Billing API’yi kullanarak bu süreci nasıl daha da otomatikleştirebileceğimize bakacağız.

Google Cloud Billing API ile Programatik Erişim: Maliyet Verilerini Otomatikleştirin

BigQuery Export’ları, maliyet verilerinizi toplamak için harika bir temel sağlarken, Google Cloud Billing API bu verileri yönetmek ve daha geniş otomasyon süreçlerine dahil etmek için programatik bir köprü görevi görür. API, özellikle birden fazla faturalandırma hesabını yöneten, projeleri otomatik olarak faturalandırma hesaplarına bağlayan veya faturalandırma ayarlarında değişiklikleri izleyen kuruluşlar için paha biçilmezdir.

1. Billing API’yi Etkinleştirme

Herhangi bir Google Cloud API’sinde olduğu gibi, Billing API’yi kullanmaya başlamadan önce onu projenizde etkinleştirmeniz gerekir:

  1. GCP Konsolu’na gidin.
  2. API’yi etkinleştirmek istediğiniz projenizi seçin (genellikle otomasyon komut dosyalarınızı çalıştıracağınız bir yönetim projesi).
  3. Sol menüden “API’ler ve Hizmetler” (APIs & Services) -> “Kitaplık” (Library) seçeneğine gidin.
  4. Arama çubuğuna “Cloud Billing API” yazın ve Enter tuşuna basın.
  5. Listelenen “Cloud Billing API”yi seçin ve “Etkinleştir” (Enable) düğmesine tıklayın.

2. Kimlik Doğrulama ve Yetkilendirme

API’ye programatik olarak erişmek için kimlik doğrulama yapmanız gerekir. En yaygın yöntemler şunlardır:

  • Hizmet Hesapları (Service Accounts): Sunucu tarafı uygulamalar ve otomasyon komut dosyaları için önerilir. Bir hizmet hesabı oluşturur, ona gerekli izinleri (örn: Billing Account User veya özel bir rol) atar ve JSON anahtar dosyasını kullanarak kimlik doğrulaması yaparsınız.
  • OAuth 2.0 İstemci Kimlikleri: Kullanıcı etkileşimi gerektiren uygulamalar (örn: web uygulamaları) için uygundur. Kullanıcının kimlik bilgilerini kullanarak API’ye erişim sağlar.

Çoğu otomasyon senaryosu için Hizmet Hesapları tercih edilir. Aşağıdaki örnekte, bir hizmet hesabının kimlik bilgilerini kullanarak Billing API ile etkileşim kuracağız. Ortam değişkeni olarak GOOGLE_APPLICATION_CREDENTIALS‘ı ayarlayarak veya kod içinde açıkça belirterek kimlik doğrulaması yapabilirsiniz.

Örnek Kod: Billing API ile Hesap Bilgilerini Çekme

Aşağıdaki Python kodu örneği, Cloud Billing API’yi kullanarak kuruluşunuzdaki faturalandırma hesaplarının bir listesini nasıl alacağınızı gösterir. Bu, birden fazla faturalandırma hesabını yöneten veya belirli bir hesabın durumunu kontrol etmek isteyen yöneticiler için oldukça faydalıdır.


# Gerekli kütüphaneyi içe aktarın
from google.cloud import billing_v1
import os

# Kimlik doğrulama için Service Account anahtar dosyasını ayarlayın
# Bu dosyanın yolu ortam değişkeni olarak ayarlanabilir:
# export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
# veya doğrudan kod içinde belirtilebilir:
# os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/path/to/your/service-account-key.json"

def list_billing_accounts():
    """Google Cloud Billing API'yi kullanarak mevcut faturalandırma hesaplarını listeler."""
    try:
        # Billing API istemcisini oluştur
        client = billing_v1.CloudBillingClient()

        # Faturalandırma hesaplarını listeleme isteği
        # Parent parametresi boş bırakılırsa, varsayılan olarak projenin ait olduğu kuruluştaki
        # veya varsayılan kimlik bilgileriyle erişilebilen tüm hesapları listeler.
        # Belirli bir kuruluş için: request = billing_v1.ListBillingAccountsRequest(parent='organizations/YOUR_ORGANIZATION_ID')
        request = billing_v1.ListBillingAccountsRequest()
        
        # İsteği gönder ve yanıtı al
        response = client.list_billing_accounts(request=request)
        
        print("Mevcut Faturalandırma Hesapları:")
        if not response.billing_accounts:
            print("  Hiç faturalandırma hesabı bulunamadı veya erişim izniniz yok.")
            return

        for account in response.billing_accounts:
            # Hesap adından ID'yi çıkar
            account_id = account.name.split('/')[-1]
            print(f"  ID: {account_id}")
            print(f"  Açıklama: {account.display_name}")
            print(f"  Açık mı: {account.open}")
            print("-" * 30)

    except Exception as e:
        print(f"Bir hata oluştu: {e}")

# Bu fonksiyonu çalıştırmak için:
# if __name__ == "__main__":
#     list_billing_accounts()

    

Bu kodu çalıştırmadan önce google-cloud-billing kütüphanesini yüklemeniz gerekecektir:


pip install google-cloud-billing
    

Bu basit örnek, Billing API'nin programatik yönetim için ne kadar güçlü bir araç olduğunu göstermektedir. Bu tür bir otomasyonla, faturalandırma süreçlerinizi daha verimli hale getirebilir, olası hataları azaltabilir ve maliyet yönetimi stratejilerinizi daha proaktif bir şekilde uygulayabilirsiniz. Bir sonraki adımda, BigQuery'ye aktardığımız detaylı maliyet verilerini nasıl sorgulayacağımızı ve anlamlandıracağımızı inceleyeceğiz.

BigQuery Export Verilerini Anlamak ve Sorgulamak: Detaylı Maliyet Analizi Nasıl Yapılır?

BigQuery'ye aktardığımız detaylı faturalandırma verileri, maliyet optimizasyonu ve yönetimi için altın değerindedir. Ancak bu verilerden gerçek anlamda faydalanmak için, onları doğru şekilde sorgulamayı ve yorumlamayı bilmek gerekir. BigQuery, SQL tabanlı güçlü analitik yetenekleriyle bu verileri keşfetmek için ideal bir platformdur. Şimdi, bu verilerin yapısını anlayalım ve yaygın maliyet analizi senaryoları için örnek sorgular oluşturalım.

BigQuery Export Verilerinin Şema Yapısı

BigQuery'ye aktarılan faturalandırma verileri, genellikle karmaşık ama tutarlı bir şemaya sahiptir. En önemli alanlardan bazıları şunlardır:

  • invoice.month: Fatura dönemi.
  • usage_start_time / usage_end_time: Kaynağın kullanıldığı zaman aralığı.
  • project.id / project.name: İlgili Google Cloud projesinin kimliği ve adı.
  • service.id / service.description: Kullanılan Google Cloud hizmetinin kimliği ve açıklaması (örn: Compute Engine, Cloud Storage).
  • sku.id / sku.description: Kullanılan belirli SKU (Stok Birimi) kimliği ve açıklaması (örn: N1 Standard Instance Core, Standard Storage Egress). Bu, maliyetin en granüler seviyesidir.
  • cost: Bu satır öğesi için maliyet (para birimiyle).
  • currency: Maliyetin para birimi.
  • usage.amount / usage.unit: Kaynak kullanım miktarı ve birimi (örn: 100 GB-ay, 500 Saat).
  • labels: Projelerinizde veya kaynaklarınızda kullandığınız özel etiketler. Bu, maliyetleri departman, ekip, ortam vb. gibi kategorilere ayırmak için çok önemlidir.
  • _PARTITIONDATE: BigQuery'nin otomatik olarak oluşturduğu bölümleme sütunu. Sorgularınızı optimize etmek için kritik öneme sahiptir.

Bu şema bilgisiyle, istediğiniz her türlü maliyet analizini yapmaya başlayabilirsiniz. Unutmayın, sorgularınızda tablonuzun tam adını kullanmalısınız (örn: your-billing-project.your_billing_dataset.gcp_billing_export_v1_XXXXXX).

Örnek Sorgu: En Çok Harcayan Projeleri Bulma

Bir kuruluşta maliyetleri yönetirken, hangi projelerin en fazla harcama yaptığını bilmek kritik öneme sahiptir. Bu sorgu, belirli bir ay içinde en çok maliyet üreten ilk 10 projeyi listeler:


SELECT
  project.id AS project_id,
  SUM(cost) AS total_cost
FROM
  your-billing-project.your_billing_dataset.gcp_billing_export_v1_XXXXXX -- Tablo adınızı buraya yazın
WHERE
  _PARTITIONDATE >= '2023-01-01' AND _PARTITIONDATE <= '2023-01-31' -- Analiz etmek istediğiniz tarih aralığı
GROUP BY
  project_id
ORDER BY
  total_cost DESC
LIMIT 10;
    

Örnek Sorgu: Servis Bazında Aylık Maliyetler

Belirli bir servisin (örn: Compute Engine, Cloud Storage) aylık maliyet trendlerini görmek, bütçeleme ve kapasite planlaması için önemlidir. Bu sorgu, her bir hizmetin aylık bazda ne kadar maliyet oluşturduğunu gösterir:


SELECT
  service.description AS service_name,
  FORMAT_DATE('%Y-%m', usage_start_time) AS usage_month,
  SUM(cost) AS monthly_cost
FROM
  your-billing-project.your_billing_dataset.gcp_billing_export_v1_XXXXXX -- Tablo adınızı buraya yazın
WHERE
  _PARTITIONDATE >= '2023-01-01' -- Belirli bir tarihten itibaren
GROUP BY
  service_name, usage_month
ORDER BY
  usage_month, monthly_cost DESC;
    

Örnek Sorgu: Etiket Bazında Maliyet Analizi

GCP'deki kaynaklarınıza uyguladığınız etiketler (labels), maliyetleri daha da granüler bir şekilde sınıflandırmanıza olanak tanır. Örneğin, environment:production veya team:backend gibi etiketler kullanarak belirli bir ortamın veya ekibin harcamalarını takip edebilirsiniz:


SELECT
  LOWER(labels.key) AS label_key,
  LOWER(labels.value) AS label_value,
  SUM(cost) AS total_cost
FROM
  your-billing-project.your_billing_dataset.gcp_billing_export_v1_XXXXXX,
  UNNEST(labels) AS labels -- Etiketler array olduğu için UNNEST kullanılır
WHERE
  _PARTITIONDATE >= '2023-01-01' AND _PARTITIONDATE <= '2023-01-31'
  AND LOWER(labels.key) = 'environment' -- Belirli bir etikete odaklanmak için
GROUP BY
  label_key, label_value
ORDER BY
  total_cost DESC;
    

Uzman İpucu: Büyük veri kümelerinde sorgu performansını artırmak için _PARTITIONDATE filtresini her zaman kullanın. Bu, BigQuery'nin yalnızca ilgili bölümleri taramasını sağlayarak sorgu maliyetini ve süresini azaltır. Ayrıca, sık kullanılan alanlar üzerinde kümeler (clustering) oluşturmayı düşünebilirsiniz.

Bu örnek sorgular, BigQuery'deki faturalandırma verilerinizle neler yapabileceğinize dair sadece bir başlangıçtır. Kendi ihtiyaçlarınıza göre bu sorguları uyarlayabilir, birleştirebilir ve daha karmaşık analizler yapabilirsiniz. Bu verileri düzenli olarak sorgulayarak ve sonuçları görselleştirerek (örneğin Looker Studio ile), bulut harcamalarınız üzerinde tam bir görünürlük ve kontrol sağlayabilirsiniz. Bir sonraki bölümde, gerçek dünya senaryosunda bu araçların nasıl kullanılabileceğini inceleyeceğiz.

Gerçek Dünya Senaryosu: Büyük Bir Kurumda Maliyet Optimizasyonu

Şimdiye kadar BigQuery Export'larını nasıl kuracağımızı ve faturalandırma API'sini nasıl kullanacağımızı öğrendik. Peki, bu bilgileri gerçek bir senaryoda nasıl hayata geçirebiliriz? Büyük bir şirketin karmaşık bulut altyapısında maliyet optimizasyonu ve yönetimi için bu araçları nasıl kullandığını gösteren bir vaka analizine dalalım.

Vaka Analizi: Anomaly Tespitinden Maliyet Kurtarma Sürecine

X Şirketi, birden fazla ekip ve yüzlerce proje ile geniş bir Google Cloud Platform altyapısını yöneten büyük bir e-ticaret kuruluşuydu. Maliyetleri hızla artıyor ve faturalarındaki karmaşıklık nedeniyle harcamaların nereye gittiğini tam olarak anlamakta zorlanıyorlardı. Aylık toplam maliyeti biliyorlardı, ancak hangi projelerin veya servislerin bu artışa neden olduğunu, hatta belirli bir etiketle işaretlenmiş kaynakların maliyetini göremiyorlardı.

Sorun: Beklenmedik maliyet artışları ve şeffaflık eksikliği.

Çözüm: BigQuery Export'ları ve Looker Studio (eski adıyla Google Data Studio) ile otomatik bir maliyet izleme ve analiz sistemi kurdular.

  1. BigQuery Export Kurulumu: İlk olarak, X Şirketi tüm faturalandırma verilerini (ayrıntılı kullanım maliyeti verilerini) BigQuery'ye aktardı. Bu, her bir SKU seviyesinde, etiket bilgileriyle birlikte tüm ham maliyet verilerini tek bir merkezi veri kaynağında topladı.
  2. Otomatik Veri Dönüşümü: BigQuery'ye aktarılan ham veriler üzerinde, maliyetleri projelere, servis türlerine, coğrafi bölgelere ve en önemlisi environment (dev, test, prod) ve team (backend, frontend, data-science) gibi özel etiketlere göre gruplandıran ve özetleyen düzenli görünümler (views) oluşturdular. Örneğin, bir görünüm, her ay hangi ekibin hangi ortamda ne kadar harcadığını gösteriyordu.
  3. Looker Studio Panoları: Bu BigQuery görünümlerini kullanarak, ekipler ve yönetim için özel Looker Studio panoları oluşturdular. Bu panolar şunları içeriyordu:
    • Genel Maliyet Panosu: Toplam aylık harcama, önceki aya göre değişim, en çok harcayan ilk 5 proje ve servis.
    • Ekip Bazında Maliyet Panosu: Her bir ekibin kendi kaynaklarına harcadığı miktar. Böylece her ekip kendi maliyetinden sorumlu hale geldi (showback).
    • Ortam Bazında Maliyet Panosu: Geliştirme, test ve üretim ortamlarının maliyetlerini ayrı ayrı göstererek, geliştirme maliyetlerinin gereğinden fazla olup olmadığını anlamaya çalıştılar.
  4. Anomaly Tespiti ve Uyarı Sistemi: En kritik adım, maliyet anomalilerini tespit etmekti. BigQuery'de günlük olarak çalışan SQL sorguları oluşturdular. Bu sorgular, mevcut günün harcamalarını son 7 günün ortalamasıyla karşılaştırıyor ve belirli bir eşiğin (örn: %20 artış) üzerinde bir anormallik tespit edildiğinde, Cloud Functions tetikleyerek ilgili ekiplere (Slack veya email yoluyla) otomatik uyarı gönderiyordu. Bu uyarılar, anormalliğin hangi projeden, hangi servisten kaynaklandığını ve tahmini ek maliyeti içeriyordu.
  5. Maliyet Optimizasyon Süreci: Bir gün, anomali sistemi, bir test projesinde Compute Engine maliyetlerinde %300'lük ani bir artış tespit etti ve ilgili ekibi uyardı. Ekip, panolarını kontrol ettiğinde, bir geliştiricinin yanlışlıkla yüksek CPU'lu bir VM serisini otomatik ölçeklendirme grubuna dahil ettiğini ve bu VM'lerin gereksiz yere çalışır durumda kaldığını gördü. Hızla harekete geçerek bu hatayı düzelttiler ve ay sonuna kadar binlerce dolarlık potansiyel israfı engellediler.
Uzman İpucu: Otomatik maliyet uyarıları kurarken, yalnızca ani artışları değil, aynı zamanda belirli bir bütçenin aşıldığı durumları da izleyin. Google Cloud'un kendi bütçe uyarı mekanizmalarını kullanmak, ilk savunma hattı olarak oldukça etkilidir ve doğrudan faturalandırma hesabınıza bağlıdır.

Bu senaryo, BigQuery Export'ları ve ilgili araçların sadece maliyetleri izlemekle kalmayıp, aynı zamanda aktif olarak maliyet optimizasyonu ve yönetimi yapma potansiyelini göstermektedir. Şirketler, bu tür sistemler kurarak bulut harcamaları üzerinde tam şeffaflık, kontrol ve öngörü kazanabilir, böylece kaynaklarını daha verimli kullanabilirler. Bu, sadece para tasarrufu sağlamakla kalmaz, aynı zamanda ekipler arasında maliyet bilincini artırır ve daha sürdürülebilir bir bulut altyapısı oluşturulmasına yardımcı olur.

İleri Düzey Kullanım: Data Studio/Looker Studio ile Görselleştirme ve Otomatik Raporlama

BigQuery'deki detaylı faturalandırma verileri, ham haliyle bile çok değerli olsa da, bu verileri görselleştirmek ve anlaması kolay panolara dönüştürmek, karar alma süreçlerini hızlandırır ve maliyet bilincini yaygınlaştırır. Google'ın kendi araçlarından olan Data Studio (şimdiki adıyla Looker Studio), BigQuery ile sorunsuz entegrasyonu sayesinde bu görselleştirme ve otomatik raporlama ihtiyaçları için mükemmel bir çözümdür.

BigQuery Verilerini Looker Studio'ya Bağlama

BigQuery'deki faturalandırma veri kümelerinizi Looker Studio'ya bağlamak oldukça basittir:

  1. Looker Studio'ya gidin ve "Boş Rapor Oluştur" seçeneğini seçin.
  2. "Veri Kaynağı Ekle" seçeneğine tıklayın.
  3. Google bağlayıcıları listesinden "BigQuery"yi seçin.
  4. Proje seçicide faturalandırma veri kümenizin bulunduğu GCP projesini seçin.
  5. Veri kümenizi ve ardından faturalandırma tablonuzu (örn: gcp_billing_export_v1_XXXXXX) veya daha önce oluşturduğunuz bir görünümü seçin.
  6. "Ekle" düğmesine tıklayın. Artık BigQuery verileriniz Looker Studio raporunuz için bir veri kaynağıdır.

Özelleştirilmiş Panolar Oluşturma

Veriler bağlandıktan sonra, Looker Studio'nun sürükle ve bırak arayüzünü kullanarak çeşitli görselleştirmeler oluşturabilirsiniz:

  • Zaman Serisi Grafikleri: Aylık, haftalık veya günlük maliyet trendlerini göstermek için kullanın. Anormal maliyet artışlarını hemen fark edersiniz.
  • Pasta Grafikleri/Çubuk Grafikler: Maliyetlerin projelere, servislere veya etiketlere göre dağılımını görselleştirin. Hangi alanların bütçeyi en çok etkilediğini kolayca görün.
  • Tablolar: En çok harcayan projelerin, servislerin veya SKU'ların detaylı listelerini sunun. Koşullu biçimlendirme ile yüksek maliyetli öğeleri vurgulayabilirsiniz.
  • Kontroller ve Filtreler: Kullanıcıların belirli bir proje, servis, tarih aralığı veya etikete göre verileri filtrelemesine olanak tanıyın. Bu, panoları interaktif hale getirir.

Özellikle labels alanı, dinamik raporlama için çok güçlüdür. Etiket filtreleri ekleyerek, kullanıcıların farklı departmanların veya ortamların maliyetlerini kendi başlarına keşfetmelerini sağlayabilirsiniz. Örneğin, environment etiketini kullanarak "prod" ortamının maliyetini "dev" ortamının maliyetiyle karşılaştıran bir pano oluşturabilirsiniz.

Zamanlanmış Raporlar ve Paylaşım

Looker Studio, oluşturduğunuz panoları otomatik olarak belirli zaman aralıklarında (örn: haftalık, aylık) belirli e-posta adreslerine gönderme özelliğine sahiptir. Bu, ilgili paydaşların her zaman güncel maliyet bilgisine sahip olmasını sağlar. Ayrıca, panoları bir web sitesine gömebilir veya kuruluş içinde kolayca paylaşabilirsiniz. Bu sayede, maliyet bilgileri "kapalı kapılar ardında" kalmaktan çıkar ve ilgili herkese ulaşır.

Uzman İpucu: Looker Studio panolarınızda BigQuery maliyet verilerini kullanırken, performansı optimize etmek için önceden toplu veriler içeren BigQuery görünümleri (views) oluşturmak ve doğrudan ham tablo yerine bu görünümleri kullanmak akıllıca olacaktır. Bu, Looker Studio'nun her sorguda büyük miktarda veriyi işlemesini engeller.

Aşağıda, bir maliyet özet panosunun temel HTML yapısını ve mobil cihazlarda daha iyi görünmesini sağlayacak basit bir CSS medya sorgusu örneğini görebilirsiniz. Looker Studio doğrudan bu tür HTML/CSS çıktısı vermese de, bu yapı, web tabanlı raporlama araçlarının responsive tasarım için nasıl düşündüğünü gösterir.

Maliyet Özeti Panosu

Toplam Harcama (Son 30 Gün): $12,345.67
En Yüksek Harcama Yapan Servis: Compute Engine ($4,567.89)
Önceki Aya Göre Değişim: +%5.2 (Artış)

Yukarıdaki örnek, Looker Studio gibi araçlarla oluşturulabilecek bir raporun temel HTML yapısını ve mobil uyumluluğu sağlamak için @media sorgusunun nasıl kullanılabileceğini göstermektedir. CSS kuralları, raporunuzun farklı ekran boyutlarında (örneğin masaüstü ve mobil) daha iyi görünmesini ve okunmasını sağlar. Bu sayede, maliyet panolarınız her zaman erişilebilir ve etkili olur.

Sonuç: Google Cloud Maliyetlerinizi Yönetmede Bir Adım Önde Olun

Google Cloud platformundaki maliyetleri yönetmek, artık tahminlere dayalı, pasif bir görev olmak zorunda değil. Google Cloud Billing API ve BigQuery Export'larının gücünü birleştirerek, bulut harcamalarınız üzerinde benzeri görülmemiş bir şeffaflık, kontrol ve otomasyon elde edebilirsiniz. Bu makalede, temel kavramlardan başlayarak, BigQuery Export'larını nasıl kuracağınızı, Billing API ile programatik olarak nasıl etkileşim kuracağınızı, detaylı maliyet verilerini BigQuery'de nasıl sorgulayacağınızı ve hatta Looker Studio ile nasıl görselleştireceğinizi adım adım öğrendik.

Gerçek dünya vaka analizi, bu araçların sadece teorik olmadığını, aynı zamanda büyük ölçekli kurumlarda anomali tespiti, maliyet sorumluluğu ataması ve milyonlarca dolarlık tasarruf potansiyeli yaratma konusunda nasıl somut faydalar sağladığını gösterdi. Unutmayın, maliyet optimizasyonu sürekli bir yolculuktur. Bu araçları kullanarak elde edeceğiniz veriler ve içgörüler, ekiplerin daha bilinçli kararlar almasını sağlayacak, gereksiz kaynak israfını önleyecek ve bulut altyapınızın finansal sağlığını uzun vadede güvence altına alacaktır.

Artık bulut maliyetleriniz sizi şaşırtmayacak. Edindiğiniz bu bilgilerle, Google Cloud'daki varlığınızı hem teknik hem de finansal açıdan çok daha etkin bir şekilde yönetmeye hazırsınız!

Sıkça Sorulan Sorular

BigQuery Export verileri ne sıklıkla güncellenir?
BigQuery Export verileri genellikle saatlik aralıklarla güncellenir. Ancak, ilk verilerin BigQuery'ye akışı ve veri kümenizin tamamen doldurulması birkaç saati bulabilir. Detaylı kullanım verileri (Detailed Usage Cost Data) için bu süre biraz daha uzun olabilir.
Billing API ile hangi işlemleri yapabilirim?
Billing API ile faturalandırma hesaplarını listeleme, projeleri belirli faturalandırma hesaplarına bağlama veya mevcut bağlantıları doğrulama, faturalandırma hesaplarını kapatma ve aylık fatura dönemi bazında genel maliyet özetleri alma gibi yönetimsel ve özet bilgi sorgulama işlemleri yapabilirsiniz. Ancak granüler maliyet analizi için BigQuery Export verilerini kullanmak daha uygundur.
Maliyet analizi için BigQuery dışında başka araçlar kullanabilir miyim?
Evet, BigQuery verilerini diğer Business Intelligence (BI) araçlarıyla da entegre edebilirsiniz. Örneğin, Tableau, Power BI veya kendi özel uygulamalarınızdan BigQuery'ye bağlanarak maliyet verilerinizi görselleştirebilir ve analiz edebilirsiniz. Looker Studio, Google ekosistemindeki entegrasyonu nedeniyle popüler bir seçenektir.
Export edilen verilerde gecikme olabilir mi?
Evet, Google Cloud hizmetlerinin kullanımı ile BigQuery'ye yansıyan veriler arasında genellikle birkaç saatlik bir gecikme yaşanabilir. Bu gecikme, veri işleme boru hatlarından kaynaklanır ve anlık (real-time) bir görünüm yerine "near real-time" bir görünüm sunar. Bu nedenle, çok anlık maliyet takibi gerektiren durumlar için farklı izleme çözümleri düşünebilirsiniz.
Hangi seviyede detaylı maliyet bilgisi alabilirim?
BigQuery Export'ları ile en granüler seviyede, yani SKU (Stock Keeping Unit) bazında maliyet bilgisi alırsınız. Bu, her bir hizmetin (örn: Compute Engine) altındaki her bir bileşenin (örn: N1 Standard Instance Core, SSD Persistent Disk) kullanım miktarını, birim maliyetini ve toplam maliyetini gösterir. Ayrıca, projenizdeki etiketler (labels) de bu verilere dahil edildiği için maliyetleri istediğiniz kategorilere göre ayırabilirsiniz.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.