# Terraform

Adres: https://softwaredictionary.org/tr/terimler/terraform
Kategori: DevOps ve Bulut
Son güncelleme: 2026-10-03
Okunuşu: teraform

Kısaca: Terraform, kod olarak altyapı aracıdır; bulut kaynaklarını yapılandırma dosyalarında tarif edersiniz, tek komut onları buna göre oluşturur ya da günceller.

## Terraform nedir?

Terraform, HashiCorp tarafından 2014'te yayımlandı. Bir bulut konsolunda tıklayıp durmak yerine ne istediğinizi, örneğin iki sanal makine, bir veritabanı ve bir yük dengeleyiciyi, HashiCorp Configuration Language (HCL) ile dosyalara yazarsınız. Terraform bu dosyaları okur ve gerçeği onlara uydurmak için bulutun API'siyle konuşur. Dosyalar Git'te durduğu için altyapı da tıpkı kod gibi incelenir, geçmişi tutulur ve geri alınabilir.

İş akışının iki temel adımı vardır. `terraform plan`, yapılandırmayı mevcut durumla karşılaştırır ve tam olarak neyin oluşturulacağını, değişeceğini ya da silineceğini gösterir. `terraform apply` ise bu planı uygular. Terraform yönettiği şeyleri bir state dosyasında hatırlar; bu dosya genellikle uzakta saklanır, böylece bir ekip altyapının tek bir görünümünü paylaşır.

Terraform, provider adı verilen eklentiler sayesinde neredeyse her platformla çalışır: AWS, Azure, Google Cloud, Kubernetes, Cloudflare, GitHub, veritabanları ve yüzlercesi için. Yeniden kullanılabilir modüller, standart bir ağ gibi yaygın kurulumları paketler; ekipler de bunları her seferinde baştan kurmaz. Yapılandırma bildirimseldir (declarative): son durumu tarif edersiniz, adımların sırasını Terraform kendisi çıkarır.

Sık yapılan bir yanlış, sunucuların içinde çalışanları Terraform'un yapılandırdığı düşüncesidir. Terraform esas olarak kaynakların kendisini oluşturur ve birbirine bağlar; makinelere paket kurmak ve dosya düzenlemek Ansible gibi yapılandırma araçlarının ya da konteyner imajlarının işidir. HashiCorp 2023'te Terraform'u kaynağı görülebilir (source-available) bir lisansa taşıdı; topluluk da son açık kaynak sürümü OpenTofu adıyla çatalladı, o da büyük ölçüde aynı şekilde çalışır.

## Önemli noktalar

- Terraform bulut altyapısını HCL dosyalarında kod olarak tarif eder.
- terraform plan değişiklikleri önizler; terraform apply onları uygular.
- State dosyası, Terraform'un hangi gerçek kaynakları yönettiğini kaydeder.
- Provider'lar onu AWS, Azure, Google Cloud, Kubernetes ve daha fazlasına bağlar.
- OpenTofu, büyük ölçüde aynı şekilde çalışan açık kaynaklı bir çatallamadır.

## Örnek: AWS'de bir depolama bucket'ı tanımlamak

```hcl
provider "aws" {
  region = "eu-central-1"
}

resource "aws_s3_bucket" "assets" {
  bucket = "example-site-assets"

  tags = {
    Environment = "production"
  }
}

# terraform plan   -> shows: 1 to add
# terraform apply  -> creates the bucket
```

## Sık sorulan sorular

**Terraform ücretsiz mi?**

Terraform komut satırı aracı ücretsiz kullanılabilir; ama 2023'ten bu yana onu rakip bir ürün olarak sunmayı kısıtlayan Business Source License ile yayımlanıyor. OpenTofu ise tamamen açık kaynaklı bir çatallamadır. HashiCorp ayrıca yönetilen bir servis olan HCP Terraform'u da satar.

**Terraform ile Ansible arasındaki fark nedir?**

Terraform esas olarak ağlar, makineler ve veritabanları gibi altyapıyı bildirilen bir son durumdan oluşturur ve yönetir. Ansible ise esas olarak makineleri yapılandırır; SSH üzerinden yazılım kurar ve ayarları değiştirir. Birçok ekip ikisini birlikte kullanır.

**Terraform state dosyası nedir?**

Terraform'un yönettiği gerçek kaynakları ve ayarlarını kaydettiği dosyadır. Neyin değiştiğini çıkarmasını sağlar; ekipler onu genellikle iki kişi aynı anda değişiklik uygulamasın diye kilitlemeli bir uzak depoda tutar.

## Kaynaklar

- [Terraform documentation: What is Terraform?](https://developer.hashicorp.com/terraform/intro)

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
