Virtual Machine (VM), bildiğimiz gerçek bilgisayardan çok farklı değil. Belirli bir CPU ve RAM'i bulunan, verilerinizi kaydetmenize olanak sağlayan bir disk alanı olan ve hatta gerektiğinde internete bağlanabileceğimiz bir sanal makine.
Kısaca kullanım alanlarından söz etmek gerekirse:
Virtual Machine hakkında ufak bir ön bilgiye sahip olduğumuza göre adım adım Google Cloud üzerinden VM kurulumuna geçebiliriz.
Öncelikle bir Google Cloud hesabı oluşturmalıyız. Bağlantıya tıklayarak yeni bir hesap oluşturabilir veya mevcut bir hesabınız varsa giriş yapabilirsiniz.
Giriş yaptıktan sonra bizi aşağıdaki ekran karşılıyor ve Google bize 300$’lık hediye kredi tanımlıyor.
Bu krediler kullanılan servislere göre faturalandırılıyor ve kredi limitinizden eksiliyor. Kredinizin bitmesi durumunda ise endişelenmenize gerek yok, Google otomatik olarak bir ücret kesilmeyeceğinin sözünü veriyor.
Sayfada Activate butonuna basarak gerekli bilgileri girmeniz gerekiyor. Burada sizden kullanım amacınız, adres ve kredi kartı bilgileriniz isteniyor. Yukarıda da bahsettiğim gibi deneme sonrası sizden bir istek gelmediği sürece herhangi bir ücretlendirme yapılmıyor. Robot olup olmadığınızı anlayabilmek adına istenen bir bilgi. Yine de bu adımda bakiyesi bulunmayan bir sanal kartınızın bilgilerini girmenizi tavsiye ederim.
Google’daki çoğu servisten faydalanabilmek için öncelikle bir proje açmanız gerekiyor. Aşağıdaki şekilde yeni bir proje başlatabilirsiniz.
Projemizi açtıktan sonra aşağıdaki şekilde bir bildirim çıkıyor. ENABLE diyerek devam ediyoruz.
SSH (Secure Shell), ağ üzerinde bulunan bir sunucuya bağlanmaya ve bağlanılan sunucu üzerinde komut çalıştırma, dosya transferi gibi işlemleri gerçekleştirmeye olanak sağlayan bir uzak sunucu bağlantı protokolüdür ve private key ile public key olmak üzere iki anahtar üzerinden çalışmaktadır.
Bu anahtarlardan public key, verileri şifreleyecek ve güvenli erişim talebinizi doğrulayacak şekilde, uzaktan erişim sağlamak istediğimiz sunucuya yerleştirilir. Private key ise şifrelenmiş verileri çözmek için istemci tarafında bulundurulan ve gizliliğine son derece dikkat edilmesi gereken anahtardır.
Özetle yapacağımız işlem sanal bilgisayarımıza bağlanırken beraberinde bir asma kilit göndermek ve karşıdakinin bu kilidi açmasını beklemek.
Linux & macOS sistemlerde SSH key oluşturmak için öncelikle terminale gidiyoruz. Terminali açıyor ve bulunduğumuz dizinde aşağıdaki kodları kendimizce düzenleyip yazıyoruz.
>> ssh-keygen -t rsa -f ~/.ssh/key_FILENAME -C USER -b 2048
Windows sistemde ise Linux komutları çalıştırabilmek için Gitbash kurmalısınız. Powershell veya Gitbash'i açarak aşağıdaki kodu yazabilirsiniz.
Dikkat: Burada WINDOWS_USER, key_FILENAME ve VM_USER alanlarını siz doldurmalısınız.
>> ssh-keygen -t rsa -f C:\Users\WINDOWS_USER\.ssh\key_FILENAME -C VM_USER -b 2048
Dikkat: USER, VM içerisinden yetkilerini ayarlamadığınız sürece root yetkisine sahip olmaz.
Örnek:
>> ssh-keygen -t rsa -f C:\Users\miuul\.ssh\miuul-data -C oguz -b 2048
oguz adına açılan bir bir public key aşağıdakine benzer olacaktır:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF... oguz
Bu işlemden sonra bir şifre girmeniz ve ardından doğrulamanız istenecek. Dilerseniz entera basıp boş da bırakabilirsiniz.
Dikkat: Terminalde yazı yazdığınız zaman cursor tepki vermeyecektir, bu aşamada terminalden şifre giremiyorum diye düşünmeyin.
Sonrasında oluşturduğumuz SSH key içeriğini kopyalayıp bunu Google Cloud Platform (GCP) üzerinde tanımlamanız gerekmekte. Bu aşamada verdiğiniz public key filenameini girmeniz de gerekiyor. Ben miuul-data olarak oluşturduğum için bu şekilde yazacağım. Bu işlem için sırasıyla terminal üzerinde:
>> cd ~/.ssh
>> cat miuul-data.pub
>> cd C:\Users\WINDOWS_USER\.ssh\
>> cat miuul-data.pub
komutlarını yazmalı. Bu aşamadan sonra aşağıdakine benzer bir çıktı oluştuğunu gözlemleyebilirsiniz.
Windows üzerinde ilgili dizine gidip not defteri ile de bu dosyayı açabilirsiniz.
Şimdi de oluşturduğumuz bu SSH keyi GCP üzerinde tanımlayalım. Sırasıyla Compute Engine → Settings → Metadata → SSH key → Add adımlarını izleyip ssh-keyden kopyaladıklarımızı yapıştırıp ardından save diyoruz ve VM kurulumu adımlarımıza devam ediyoruz.
Projemizi ayarladıktan sonra: Instances ve Create instance diyoruz.
CREATE ENGINE diyerek devam ediyoruz.
Name ile instance adını giriyorum.
Region ise makinenin olduğu lokasyon bilgisi. Türkiye'ye yakın bir lokasyon olduğu için Frankurt'u seçtim.
Google bize burada kullanım amaçlarına göre çeşitli kategoriler sunuyor. İş ihtiyacına göre çeşitli makineler seçilebilir.
Örnek olarak Frankurt lokasyonlu 4 vCPU 16 GB Ram özelliklerinde bir VM seçiyorum. Sıra geldi işletim sistemimizi ve depolama alanımızı seçmeye. Boot disk type için SSD seçmekte fayda var, işletim sistemi için benim tercihim Ubuntu 20.04 LTS. Başlangıç için 30 gb alan yeterli olacaktır.
CREATE diyerek Instance kurulumunu tamamlıyoruz. External IP ile oluşturduğumuz VM’in IP bilgisini öğrenebiliriz.
Terminali açıp aşağıdaki şekilde bağlantımızı gerçekleştirebiliriz.
>> ssh -i ~/.ssh/miuul-data [email protected]
Hiçbir kod yazmadan pratik bir şekilde VSCode üzerinden VM’e SSH bağlantısı yapmak da mümkün. Nasıl olacağına birlikte bakalım.
Öncelikle ssh keylerimi oluşturduğum dosyada config isimli bir dosya oluşturuyorum, herhangi bir uzantı girmiyorum.
Daha sonra VSCode içerisinde Remote-SSH isimli eklentiyi yüklüyoruz.
İlgili eklentiyi yükledikten sonra CTRL + Shift + P yaparak Remote-SSH: Connect to Host seçeneğine tıklıyorum.
İsimlendirdiğimiz SSH bağlantısı çıkacaktır.
Açılan yeni pencereden terminal aracılığıyla artık VM üzerinde komut yazabiliriz.
Kaynaklar