Google Cloud Managed Instance Groups
Google Cloud ortamında Instance Group sayesinde birden fazla sanal makineyi tek bir varlık olarak yönetebilmekteyiz. Bu yedeklilik sayesinde kurduğumuz sistemlerde HA ve Scalability sağlayabilmekteyiz.
GCP’de iki farklı tür Instance Group bulunmaktadır.
1. Managed (Yönetilen) Instance Group (MIG)
Birden fazla birbiri ile aynı sanal makinelerden oluşan gruptur. Sanal makinelerin birbiri ile aynı olması sayesinde auto-healing ve auto-scaling özelliklerini verimli olarak kullanabilmekteyiz.
Auto-Healing: Bir VM instance’ınız kullanılamaz duruma geldiğinde yenisini oluşturabildiğimiz sistemdir. Instance’ın sağlık durumunu kontrol etmek için health check kullanırız.
Auto-Scaling: Sisteme gelen yüke göre otomatik olarak yeni instance oluşturup silmemizi sağlayan sistemdir.
Websitelerimizin ön yüzü gibi değişkenlik göstermeyen sunucularda MIG kullanabiliriz. Ayrıca sunucularımızı konumlandırdığımız Zone’da oluşan bir problemden etkilenmemek için de farklı Zone’lara dağıtarak yedeklilik sağlayabiliriz.
Load balancer konfigurasyonları sayesinle iş yüklerimizi Instance’lar arasında bölebilmekteyiz.
2. Unmanaged Instance Group (MIG)
Ayrı ayrı yönettiğimiz fakat gruplamak istediğimiz instance’lar için Unmanaged Instance Group kullanabiliriz. Her bir instance birbirinden bağımsız konfigure edilir ve yönetilir bu sebeple auto-scaling, auto-healing ve instance template gibi servisler kullanılamamaktadır. Fakat load balancer kullanarak grup içerisindeki instance’lara işyükü dağıtılabilir.
Kritik olmayan manuel müdahale ile kolaylıkla takip edip ölçeklendirebileceğimiz her bir instance’ın ayrı yapılandırma gerektirdiği sistemlerde kullanabiliriz. 2000 Instance’a kadar bir grup oluşturabilmekteyiz.
Instance Group LAB
Managed instance group oluşturmak için öncelikle instance template oluşturuyoruz.
Oluşturduğumuz instance template’in action kısmından “Create Instance Group” seçeneği ile gr
Burada karşımız stateless ve stateful kavramları çıkıyor. Stateless instance’larda VM’ler bağımsız ve durumsuz çalışmaktadır yani bir vm instance crash olduğunda veya restart olduğunda herhangi bir veri kaybı olmadan uygulama çalışabilmekte sorunlu instance redeploy edilebilmektedir.
Stateful‘da ise instance’larda durum bilgisi tutulmaktadır yani tasarladığınız uygulama kullanıcı oturum bilgileri ve kullanıcı verileri gibi durumları saklaması gerekiyorsa stateful managed instance group oluşturmanız önerilmektedir. Stateless’da olduğu gibi bir instance çökmesi veya restart olması durumunda uygulamanız kaldığı yerden devam eder ve yaptığınız konfigurasyona göre otomatik yeni instance’lar ekleyebilirsiniz veya bozulan instance’ı redeploy ettirebilirsiniz.
Autoscaling ayarlarımızı aşağıdaki gibi minimum 2 instance ve maximum 5 olacak şekilde ayarlıyoruz. CPU kullanımı %60′ ulaştığında yeni bir instance otomatik oluşturduğumuz template’den deploy edilecektir.
Health Check opsiyonu sayesinde uygulamamızı api requestler ile servis durumunu kontrol edebilmekteyiz. Servisten beklenen response belirlediğimiz sürelerde gelmezse ilgili instance crash olmuş sayılacak ve instance otomatik olarak silinip tekrar oluşturulacaktır.
Bütün ayarlarımızı yaptıktan sonra managed instance group’unuzu oluşturup istediğiniz gibi yük testi veya crash senaryoları deneyebilirsiniz.
Unmanaged instance group oluşturma işleminde ise VM instance’lar template ile değil manuel olarak tek tek oluşturulmaktadır. Ardından ilk ekran alıntısında group oluştururken “New unmanaged instance group” seçeneği ile devam ediyoruz ve oluşturduğumuz vm instance’ları grubumuza ekliyoruz.
Özetle GCP’de Instance group birçok senaryoda kullanabileceğiniz sanal makinelerin yönetimini kolaylaştıran ve sağlıklı çalışmasını sağlayan güçlü yöntemdir.