Skip to main content
Altyapı

Terraform ile Infrastructure as Code Rehberi

Mart 15, 2026 3 dk okuma 12 views Raw
Terraform ile altyapı kodlama ve bulut yönetimi
İçindekiler

Infrastructure as Code Nedir?

Infrastructure as Code (IaC), altyapı kaynaklarının manuel yapılandırma yerine kod aracılığıyla tanımlanması ve yönetilmesi yaklaşımıdır. Bu metodoloji sayesinde sunucular, ağ yapılandırmaları, veritabanları ve diğer altyapı bileşenleri tekrarlanabilir, sürüm kontrolüne tabi ve otomatize edilebilir hale gelir. Terraform, bu alandaki en popüler ve güçlü araçlardan biridir.

Terraform Nedir?

HashiCorp tarafından geliştirilen Terraform, açık kaynaklı bir Infrastructure as Code aracıdır. HCL (HashiCorp Configuration Language) adlı deklaratif bir dil kullanarak altyapı kaynaklarını tanımlamanıza olanak tanır. Terraform, bulut sağlayıcılarından bağımsız çalışabilmesi ile öne çıkar.

Terraform'un Temel Özellikleri

  • Çoklu bulut desteği: AWS, Azure, Google Cloud ve daha fazlasıyla uyumlu
  • Deklaratif söz dizimi: İstenen durumu tanımlar, Terraform geri kalanını halleder
  • Durum yönetimi: Mevcut altyapının durumunu takip eder
  • Plan ve uygulama: Değişiklikleri uygulamadan önce önizleme imkanı
  • Modüler yapı: Tekrar kullanılabilir modüllerle kod organizasyonu

Terraform Nasıl Çalışır?

Terraform'un çalışma döngüsü üç temel adımdan oluşur:

  1. Write (Yaz): HCL dilinde altyapı kaynaklarınızı tanımlayın
  2. Plan (Planla): Terraform hangi değişikliklerin yapılacağını gösterir
  3. Apply (Uygula): Onayladığınız değişiklikler altyapıya uygulanır

Temel Terraform Kavramları

Providers (Sağlayıcılar)

Provider'lar, Terraform'un farklı platformlarla iletişim kurmasını sağlayan eklentilerdir. AWS, Azure, Google Cloud, Kubernetes ve yüzlerce farklı hizmet için provider mevcuttur. Her provider, ilgili platformun API'lerini kullanarak kaynakları oluşturur ve yönetir.

Resources (Kaynaklar)

Resource blokları, oluşturulmak istenen altyapı bileşenlerini tanımlar. Bir sanal makine, veritabanı, ağ kuralı veya DNS kaydı gibi her şey bir resource olarak ifade edilir.

Variables (Değişkenler)

Değişkenler, yapılandırmaları parametrik hale getirerek farklı ortamlar için aynı kodun kullanılmasını sağlar. Input variables, output values ve local values olmak üzere üç türde değişken bulunur.

State (Durum)

Terraform state dosyası, mevcut altyapının durumunu takip eden kritik bir bileşendir. Bu dosya sayesinde Terraform hangi kaynakların oluşturulduğunu, değiştirildiğini veya silinmesi gerektiğini belirler.

Terraform Best Practices

Modüler Yapı Kullanın

Altyapı kodunuzu modüllere ayırarak tekrar kullanılabilirliği artırın. Ağ, güvenlik, hesaplama ve depolama gibi katmanları ayrı modüller olarak tanımlayın.

Remote State Kullanın

Ekip çalışmasında state dosyasını uzak bir konumda (S3, Azure Blob, Google Cloud Storage) saklayarak çakışmaları önleyin. State locking mekanizmasını mutlaka aktifleştirin.

Ortam Yönetimi

Geliştirme, test ve üretim ortamlarını workspace'ler veya ayrı dizin yapıları ile yönetin. Her ortam için ayrı değişken dosyaları kullanın.

ÖzellikAçıklamaÖnemi
Versiyon kontrolüTüm .tf dosyalarını Git'te saklayınKritik
Code reviewAltyapı değişikliklerini PR ile inceleyinYüksek
Otomatik testTerratest ile altyapı testleri yazınYüksek
CI/CD entegrasyonuPlan ve apply adımlarını otomatize edinOrta

Terraform vs Diğer IaC Araçları

IaC dünyasında Terraform dışında da güçlü araçlar bulunur. AWS CloudFormation yalnızca AWS ile çalışırken, Ansible yapılandırma yönetimi odaklıdır. Pulumi ise geleneksel programlama dilleriyle IaC yapmayı mümkün kılar. Terraform'un en büyük avantajı çoklu bulut desteği ve geniş ekosistemidir.

Ekolsoft'ta bulut altyapı projelerinde Terraform'u aktif olarak kullanarak müşterilerimize tekrarlanabilir, güvenilir ve ölçeklenebilir altyapı çözümleri sunuyoruz.

Güvenlik ve Uyumluluk

Terraform ile altyapı yönetiminde güvenlik öncelikli olmalıdır. Hassas bilgileri state dosyasında şifreleyin, erişim anahtarlarını environment variable olarak tanımlayın ve Sentinel veya OPA gibi policy-as-code araçlarıyla uyumluluk kurallarını zorunlu kılın.

Sonuç

Terraform, modern altyapı yönetiminin vazgeçilmez araçlarından biridir. Deklaratif yaklaşımı, çoklu bulut desteği ve güçlü ekosistemi ile altyapı süreçlerinizi kodla yönetmenin en etkili yollarından birini sunar. IaC yaklaşımını benimsemek, ekibinizin verimliliğini artırırken hata oranını önemli ölçüde azaltacaktır.

Bu yazıyı paylaş