RNG Technology Edge Cloud’da Terraform ile multi-instance oluşturma

Süleyman Kütükoğlu
4 min readMay 8, 2022

--

RNG Technology Edge Cloud’dan bahsettiğim yazımda bu platformun AWS API’larını desteklediğinden bahsetmiştim.

Sizde RNG Technology’nin Türkiye sınırları içinde bulunan Edge Cloud servisleri hakkında bilgi almak, kayıt yapıp ve 15 dakikadan kısa bir süre içinde kurumsal sınıf bulut servislerinizi oluşturmak istiyorsanız buraya tıklayarak ilgili yazıma ulaşabilirsiniz.

Terraform’a neden ihtiyacımız var?

Örneğin bir e-ticaret sitemiz olsun ve 2 hafta sonra black friday etkinliği yapmayı planlıyor olalım. Mevcut müşteri trafiğimizde 100 adet web sunucusu yeterli olurken black friday günü oluşabilecek müşteri trafiği içinse 300 adet web sunucusuna ihtiyacımız olsun. Bu instance’ları tek tek oluşturmak, network, disk gibi konfigürasyonlarını, güvenlik politikalarını, load balancer ayarlarını manuel yapmak yerine tek bir Terraform kodu ile dakikalar içerisinde var olan ortama eklemeler yapabilir veya bir ortamı sıfırdan A’dan Z’ye oluşturabilirsiniz. Terraform’u başta oyun şirketleri, devlet kurumları ve finans kuruluşlarında oluşan dönemsel yoğunlukları yönetmek için kullanabiliriz

Bugün sizlerle Terraform ile Edge Cloud platformunda 3 adet sanal makine oluşturacağız.

Öncelikle aşağıdaki komutu çalıştırarak hazırlamış olduğum Terraform dosyasını indirin.

git clone https://github.com/suleyman-kutukoglu/terraform-edge-cloud-examples

Ardından aşağıdaki komut ile ilgili dizine gidelim.

cd deploy-multi-instance/

ls komutu ile dizini listelediğimiz zaman 5 adet dosya görüyoruz.

Kendi Edge Cloud hesabımızla Terraform arasındaki haberleşmeyi sağlayabilmek ve instace sayısı, instance tipi ve kullanılacak image bilgilerini değiştirmek için terraform.tfvars dosyasını düzenlememiz gerekiyor.

Öncelikle terraform.tfvars dosyasının içeriğini inceleyelim.

Instance type, instance number ve kullanılacak image gibi değerleri istediğiniz gibi düzenleyebilirsiniz. Ben burada 3 adet ubuntu server 20.04 instance’ı kuracağım.

Öncelikle kendi hesabımızla Terraform’u eşleştirmek için Access Key ve Secret Key’lerimizi oluşturalım.

Sol üstten Menu butonuna basalım My Account altında yer alan Access Keys’e tıklayalım.

Açılan ekranda Create butonuna tıklayarak Access Key ve Secret Key’imizi oluşturmuş olduk.

Oluşan Secret Key’i kaydetmezseniz yada Download butonuna basarak indirmezseniz bir daha erişemezsiniz. Bu konuda dikkatli olmakta fayda var.

Şimdi oluşturduğumuz key’leri kullanarak terraform.tfvars dosyasını düzenleyelim.

Eğer farklı bir image kullanmak isterseniz sol üstten Menu butonuna tıklayarak açılan ekrandan Machine Images altındaki Images butonuna tıklayın.

Kullanmak istediğiniz image’a tıklayın ve ami ile başlayan ID değerini kopyalayın.

Sonrasında kopyaladığınız bu ID’yi terraform.tfvars dosyasında ami_image ile değiştirebilirsiniz.

Terraform’u çalıştıralım!

Şimdi gerekli konfigürasyonu yaptığımıza göre artık instance’ları Terraform ile deploy edebiliriz.

Instance’larımız test-vpc (soldaki vpc) üzerinde oluşturalacaktır.

Instance’lar oluşmadan önceki halinin topolojisini aşağıda paylaşıyorum.

Terraform Öncesi

Bulunduğumuz dizinde aşağıdaki komutu çalıştıralım.

terraform init

Böylece gerekli eklentileri indirmiş olduk.

Şimdi aşağıdaki komutu çalıştırarak Terraform’un altyapımıza neleri değiştireceğini görelim.

terraform plan

Oluşacak değişilikleri de gördükten sonra aşağıdaki komut ile değişilikleri uygulayalım.

terraform apply

Değişiklikleri uygulayıp isteyip istemediğimiz sorusuna “yes” yanıtını veriyoruz.

Instance’lar oluşmaya başlıyor.

Instance’larımızı başarıyla oluşturduk.

Terraform Sonrası

Oluşturduğumuz instance’ları silmek istiyorsak aşağıdaki komutu kullanabiliriz.

terraform destroy

Burada da benzer şekilde altyapımızda yapacağı değişiklikleri gösteriyor.

“yes” yanıtını veriyoruz.

Oluşturduğumuz instance’ları başarıyla sildik.

Vakit ayırıp yazımı okuduğunuz için teşekkürler.

Konu hakkındaki geri dönüşlerinizi mail adresime iletebilirseniz çok memnun olurum.

📧: suleyman@suleyman.tech

--

--