Açık kaynaklı bir altyapı kod olarak (IaC) aracı olan Terraform'u kullanarak Alibaba Cloud kaynaklarını bildirim temelli yapılandırma dosyaları aracılığıyla tanımlayın ve yönetin.
Terraform Nedir?
Terraform, HashiCorp tarafından geliştirilen açık kaynaklı, bildirim temelli bir IaC aracıdır. "Bildirim temelli" olması, kaynakların istenen durumunu yapılandırma dosyalarında tanımlamanız anlamına gelir; örneğin, "China East 1 bölgesinde 2 vCPU ve 4 GiB belleğe sahip bir ECS örneği". Terraform ise API çağrılarını, bağımlılıkları ve çalıştırma sırasını otomatik olarak yönetir.
Bu yaklaşım, konsol tabanlı işlemlerden temel olarak farklıdır:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Terraform, altyapı yönetimini manuel işlemlerden koda taşır. Çok sayıda kaynağı, birden fazla ortamı veya ekipler arası iş birliğini yönetirken en iyi sonucu verir. Tek seferlik görevler için konsol daha basit olabilir.
Terraform ve Alibaba Cloud
Terraform, bulut platformlarına sağlayıcılar (providers) aracılığıyla bağlanır. Her sağlayıcı, kaynak tanımlamalarını kendi platformunun API çağrılarına dönüştürür.
Alibaba Cloud, Terraform ile entegre olan Çin'deki ilk bulut sağlayıcısıydı. Resmi alicloud sağlayıcısı, aşağıdakiler dahil olmak üzere çoğu Alibaba Cloud kaynak türünü destekler:
Hesaplama ve konteynerler: Elastic Compute Service (ECS), ACK, Function Compute, Auto Scaling
Ağ: Virtual Private Cloud (VPC), Server Load Balancer (SLB), Application Load Balancer (ALB), Network Load Balancer (NLB), NAT Gateway, Cloud Enterprise Network (CEN)
Depolama ve veritabanları: Object Storage Service (OSS), NAS, ApsaraDB RDS (RDS), PolarDB, Redis, ApsaraDB for MongoDB
Güvenlik ve yönetim: Resource Access Management (RAM), Key Management Service, Web Application Firewall
Büyük veri ve yapay zeka: MaxCompute, PAI
Terraform Kaynakları Nasıl Yönetir?
Terraform, istenen durumu gerçek durumla karşılaştırır ve gerekli eylemleri otomatik olarak hesaplar.
İş akışı üç adımdan oluşur:
Yazma: Bulut kaynaklarını ve özelliklerini yapılandırma dosyalarında tanımlayın; örneğin, ECS örnek türü, görüntü ve VPC.
Önizleme: Terraform, yapılandırmanızı mevcut kaynak durumuyla karşılaştırır ve bir değişiklik planı oluşturur. Uygulamadan önce bu planı gözden geçirin.
Çalıştırma: Planı onayladıktan sonra Terraform, Alibaba Cloud OpenAPI'yi kullanarak tüm işlemleri gerçekleştirir ve en son kaynak durumunu kaydeder.
Her çalıştırmada Terraform yalnızca farkları işler; gerektiğinde kaynakları oluşturur, günceller veya yok eder. Değişmeyen kaynaklar olduğu gibi kalır.
Terraform Kullanmanın Avantajları
Çalıştırmadan önce önizleme: Her çalıştırmadan önce Terraform, oluşturulacak, değiştirilecek veya silinecek kaynakları listeleyen bir değişiklik planı oluşturarak istenmeyen değişiklikleri önler.
Artımlı güncellemeler: Terraform yalnızca yaptığınız değişiklikleri uygular. Değişmemiş kaynakları yeniden oluşturmaz.
Birleşik çoklu bulut yönetimi: Terraform, birden fazla bulut platformu için sağlayıcıları destekler. Alibaba Cloud, AWS ve diğer kaynakları aynı iş akışında yönetin.
Modüler yeniden kullanım: VPC, alt ağlar ve güvenlik grupları gibi yaygın kaynak kombinasyonlarını modüller halinde paketleyin. Bunları projeler ve ortamlar arasında yeniden kullanın.
Sürekli durum takibi: Terraform, her kaynağı buluttaki karşılığıyla eşleyen bir durum dosyası tutarak tutarlı yönetimi sağlar.
SSS
Terraform ücretsiz mi?
Evet. Terraform ücretsiz ve açık kaynaklıdır. Terraform aracılığıyla oluşturulan kaynaklar standart Alibaba Cloud faturalandırmasına tabidir.
Terraform kullanmak için programlama deneyimine ihtiyacım var mı?
Hayır. Terraform, kaynak özelliklerini tanımlamak için kullanılan bildirim temelli bir dil olan HashiCorp Configuration Language (HCL) kullanır. Kod yazmadan bir seçenek arıyorsanız, grafiksel bir arayüz aracılığıyla yapılandırmaları oluşturup çalıştırmak için Explorer kullanın.
Terraform işlemleri mevcut bulut kaynaklarını nasıl etkiler?
Terraform yalnızca yapılandırma dosyalarınızda tanımlanan kaynakları yönetir ve diğerlerini etkilemez. İşlemler doğrudan canlı bulut kaynakları üzerinde gerçekleşir; bu nedenle çalıştırmadan önce her zaman değişiklik planını gözden geçirin.
Konsolda oluşturulan mevcut kaynakları Terraform'a aktarabilir miyim?
Evet. Mevcut kaynakları Terraform yönetimi altına almak için import komutunu kullanın, ardından bunları ileride yönetmek için eşleşen yapılandırma dosyaları yazın.
Terraform tarafından yönetilen kaynakları hala konsolda yönetebilir miyim?
Yönetebilirsiniz ancak önerilmez. Manuel konsol değişiklikleri durum dosyası uyumsuzluklarına neden olur ve Terraform bir sonraki çalıştırmada bu değişikliklerin üzerine yazabilir. Terraform tarafından kontrol edilen kaynakları yalnızca Terraform aracılığıyla yönetin.
Terraform ile ROS arasındaki fark nedir?
Her ikisi de bildirim temelli IaC araçlarıdır. Terraform, çoklu bulut yönetimini destekleyen açık kaynaklı, üçüncü taraf bir araçtır. ROS (Resource Orchestration Service), konsolla derin entegrasyona sahip yerel bir Alibaba Cloud hizmetidir. Çoklu bulut desteğine ihtiyacınız varsa veya Terraform'u başka yerlerde zaten kullanıyorsanız Terraform'u seçin. Çoğunlukla Alibaba Cloud kaynaklarını yönetiyorsanız ve yerel bir aracı tercih ediyorsanız ROS'u seçin. Resource Orchestration Service Nedir?