Appearance
01 - Terraform'a Giriş
Terraform, altyapınızı (sunucular, veritabanları, ağlar) kod olarak tanımlamanızı sağlayan (Infrastructure as Code - IaC) açık kaynaklı bir araçtır.
Neden Terraform?
- Declarative (Bildirimsel): "Nasıl" yapılacağını değil, "Ne" istediğinizi yazarsınız.
- Cloud Agnostic: AWS, Azure, Google Cloud, Kubernetes, GitHub, Cloudflare ve binlerce diğer servisi tek bir dille yönetebilirsiniz.
- State (Durum) Yönetimi: Mevcut altyapının durumunu takip eder, sadece değişen kısımları günceller.
Temel Kavramlar
1. Provider (Sağlayıcı)
Terraform'un dış servislerle konuşmasını sağlayan eklentilerdir.
hcl
provider "aws" {
region = "us-east-1"
}2. Resource (Kaynak)
Oluşturmak istediğiniz altyapı parçasıdır (EC2, S3 Bucket, GitHub Repo vb.).
hcl
resource "aws_instance" "web" {
ami = "ami-12345678"
instance_type = "t2.micro"
}Format: resource "TÜR" "İSİM"
3. Data Source (Veri Kaynağı)
Mevcut bir kaynağın bilgisini okumak için kullanılır (Read-Only).
hcl
data "aws_ami" "ubuntu" {
most_recent = true
owners = ["099720109477"]
}Nasıl Çalışır?
- Write:
.tfdosyalarına kodunuzu yazarsınız. - Init:
terraform initile gerekli provider'ları indirirsiniz. - Plan:
terraform planile ne yapılacağını görürsünüz (Dry Run). - Apply:
terraform applyile değişiklikleri uygularsınız.