Amazon Ücretsiz Sunucuları ( Bölüm 1: Sunucu Kiralama)


Amazon firması e-ticaret alanında ilklerden olduğu gibi pek bilinmese de bulut bilişim ve sanal sunucu alanında da ilklerdendir ve de halen pazarın tartışmasız lideridir1 Amazon uzun bir süredir de sunucu hizmetlerini tanıtma ve yaygınlaştırma amacıyla ücretsiz deneme imkanı sağlıyor. Her email hesabı için bir yıl ücretsiz olarak tüm servislerinin en alt özelliklerini kullanabiliyorsunuz. Bu ücretsiz kullanım sadece sunucu kiralama ile de sınırlı değil. http://aws.amazon.com/free/ adresinde kapsam dahilindeki tüm hizmetleri görebilirsiniz. Yukarıdaki bağlantıda iki önemli hususu vurgulamakta yarar var:

1) Size toplam 750 saat * sunucu kullanma izni veriliyor ücretsiz. Bir ay 31 gün diye hesaplasak bile 744 saat ediyor ve limitler içerisinde kalıyorsunuz. Yalnız bir yerine iki sunucuyu sürekli açık tutarsak bu sefer bu limit aşılıyor hemen. Eğer birden fazla sunucu kullanacaksanız bunların çalışma saatlerinin toplamını almayı unutmayın. Kullanmadığınız sunucuları kapatın.
2) Statik dış ip (Elastic Ip) gibi bazı hizmetler ayrı ücrete tabidir ve her şey ücretsiz deyip her gördüğünüzü kullanmadan önce bağlantıdaki şartları iyice okuyun. Elastic ip sunucuyu kapatıp açtığınızda ip'nin değişmemesini sağlar. Pek sık kapatıp açmazsınız belki yıllarca :)

Bunları akılda tutarak biz EC2 sunucu hizmetini kullacağız. Tek sunucu sürekli açık olsa bile ücretsiz limitler dahilinde olacaktır.

Son çalıştığım proje için bir kod repository ihtiyacı oldu ve bunun için Amazon'un EC2 sunucularının ücretsiz deneme sürümünü kullanmaya karar verdim. Ücretsiz olarak kullandırılan sunucunun özellikleri şu şekilde:

t1.micro:
1-2 Intel Xeon (2007 yılı) işlemci
600MB Ram (Windows için ve 64 bit Linux için 1GB)
8GB disk alanı
İşletim sistemi seçenekleri (Windows, Linux)

Bu değerleri gören yeni nesil gençler bunda mayın tarlası bile oynanmaz diyebilirler ki haklılar bir yere kadar ama zaten sunucular mayın tarlası oynamak gibi grafiksel işlemler için kullanılmaz. Bir sunucuyu fare ile yönetmezsiniz ama konsoldan komutlar vererek işlerinizi yürütürsünüz. Bir sunucunun grafik arayüzünün hiç olmaması idealidir çünkü grafik arayüz hem çok bellek tüketir hem buglar yüzünden sunucunun işleyişini tehlikeye atar hem de uzak masaüstü gibi fazladan ve şifrelenmemiş portlar açarak güvenliği tehlikeye atar. Bu yüzden yapılan işin ciddiyeti arttıkça ve son kullanıcıdan uzaklaştıkça Windows gibi grafik arayüzü bütünleşik işletim sistemleri yerine Linux gibi alternatifler tercih edilir. Masaüstü ve laptoplarda Windows kullanımı %90 gibiyken sunucularda bunun %30'a süper bilgisayarlarda ise %0.5'e düşmesi bize bunu anlatır.

Sunucunun alınması:

Öncelikle bir amazon AWS hesabınız olması gerekli elbette:

https://console.aws.amazon.com/ adresinden kayıt olduktan sonra gelen konsol sayfasında
 sol tarafta Instances a tıkladıktan sonra Launch Instance a basıp aşağıdaki ekrana ulaşıyoruz:

1) Önce sağ üstte buluna datacenter yeri seçimini yapmamız önemli çünkü sunucumuz artık oradan bize hizmet verecek. Türkiye'ye yakınlığı yüzünden Frankfurt'u seçiyoruz. Sunucu ne kadar yakın olursa ping süresi o kadar kısa indirme hızı da o kadar yüksek olacaktır. Burada sadece ücretsiz olanlarla ilgileniyoruz o yüzden sol tarafta Free tier only' yi işaretliyoruz.


(1) Ücretsiz sunucular
 2) Sonra sunucumuzda hangi işletim sistemi kullanmak istediğimizi belirtiyoruz. Windows sunucuları da seçebiliriz ama 1GB RAM ile Windows'un ne kadar yavaş çalışacağını düşünerek bundan vazgeçiyoruz :) Benim tercihim Ubuntu Linux 14.04.1 LTS oldu. Ubuntu ve türevi Linux Mint piyasada en çok kullanılan Linux dağıtımı olduğundan internette kaynak bulmak çok kolay oluyor. Ayrıca LTS sürümü daha 5 yıl daha güncelleme alacak. 1GB belleğimiz olacağından 64 bit seçeneği daha mantıklı geliyor.

(2) Sunucu Tipi Seçimi
3) Sunucumuzun özelliklerine son bir defa göz atıyoruz
(3) Sunucunun özellikleri
 4) Sunucumuz yaratılırken ona SSL ile bağlanmak için kullanacağımız private key yani gizli anahtarımızı oluşturuyoruz. Bu adımda create a new key pair diyerek yeni bir anahtar oluşturuyoruz ve bu sunucuyu belirten bir de isim veriyoruz. Daha sonra Download Key Pair diyerek anahtarı içeren pem formatındaki dosyayı bilgisayarımıza indiriyoruz. Public-Private Key Şifreleme internette çok kullanılan https bağlantısının arkasındaki mantığı oluşturur. Temel olarak bir uçta kilit diğer uçta da anahtar dan oluşur ve anahtar çoğaltılmaz ama kilit çoğaltılır. Ben birilerinden gizli belgeler almak istiyorsam o kişilere birer boş kutu ile birbirinin aynı kilitler veririm ve o kişiler o gizli belgeleri kendi kutularına koyduktan sonra kilidi kapatırlar ve artık kendileri dahil kimse o kutuyu açamaz. Anahtar da bende olduğundan sadece ben açabilirim. Anahtarı (private key) ele geçiren birisi bütün kilitleri açabileceği için ve anahtarı kaybedersem de hiçbir kilidi hiç kimse açamayacağı için bu pem formatındaki dosyayı iyi saklamamız çok önemli. Bu dosya kaybolursa artık sunucuya malesef bağlanamaz hale geliriz ve geri dönüşü de yoktur.

(4) SSL bağlantısı için prive key oluşturma
 5) Bir sonraki ekranda Instance State olarak running i görüyorsak hayırlı olsun artık bizim de çalışan bir sunucumuz var. Sıra geldi bağlanmaya
(5) Sunucumuz açıldı

 6) Linux ta bağlanmak için hiçbir şey kurmaya gerek olmadan örnekteki komutu konsolumuzda çalıştırmamız yeterli iken Windows için Putty kurup ayarlarını yapmamız gerekiyor.
(6) Bağlantı bilgileri
 7) Security Group o sunucunun güvenlik duvarı özelliklerini değiştirmemize yarıyor. Kırmızı ile işaretlediğim bağlantıya tıkladığımızda o ekrana gidiyoruz.


8) Varsayılan olarak 22 portunun açık olduğunu görüyoruz ki bu SSH ile bağlanmak için gereklidir.
(8) Güvenlik Duvarı Kuralları
 9) Eğer web sunucu gibi bir programa erişmemiz gerekiyorsa onunla ilgili portları da yine bu kısımdan ekleyebiliyoruz. Bir sonraki bölümde anlatılacak olan SVN sunucu kurma prosedürü için gerekecek olan 443 https portunu hazır elimiz değmişken açıyoruz.
(9) Https için güvenlik duvarında izin

10) Save e basıp kaydettikten sonra artık sunucumuzun kurulum kısmına geçebiliriz:

Kaydettiğiniz pem dosyasının korunaklı olmasını ister ssh istemcisi ve unprotected hatası alabilirsiniz diğer türlü. O yüzden örneğin Linux üzerinde:

$ chmod 400 [privateKeyDosyasi].pem diyerek dosyanın sadece sahibi tarafından ve o da okunabilir olmasını sağlıyoruz.

a) Linux ile bağlantı: ssh -i [privateKeyDosyasi].pem ubuntu@sunucumuzunAdresi

b) Windows ile bağlantı: Windows'ta ssh bağlantıları için en çok tercih edilen uygulama olan Putty üzerinden anlatacağım:
Windows'un komut satırı desteği zayıf olduğu için ve Linux'te ilk kurulumda gelen openssl gibi eklentilerden yoksun olduğu için bu çok temel ihtiyacı karşılamak üzere bazı programlar kurmamız gerekecek.

Bunlardan ilki olan Putty komut sunucumuzun komut satırını bize yönlendirecek:
1) İndirmek için http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html bağlantısından en güncel (Bu yazı hazırlanırken 0.63) Windows installer dosyasını indirip varsayılan ayarlarla kurabilirsiniz. Bu aşamada  aşağıdaki ekranda sunucu adresini ve kullanıcı adı ve şifresini biliyorsanız sunucuya ssh ile bağlanabilirsiniz:


Ama bize şifre yerine private key verildiği için başka bir yöntem kullanmak zorundayız:

Şimdi ise sadece ppk uzantılı dosyaları kullanabildiğimiz göreceğiz. O yüzden bir şekilde önce bize verilen pem uzantılı dosyaları ppk uzantısına çevirmemiz gerekecek. Bunun için de yine Putty kurulumu sırasında gelen PuttyGen uygulamasını kullanacağız
Pem uzantılı private key dosyasını import ettiğimizde artık açık olan dosyayı başka bir biçime de dönüştürebiliyoruz. "Save Private Key" düğmesine tıkladığımızda ppk dosyasını çıkartmadan önce eğer "Key Passphrase" ve "Confirm Passphrase" alanlarına yeni anahtarın şifresini girmemişsek bizi şifresiz kaydetmek üzere olduğumuza dair uyarır. Ama tabi evet diyerek bu uyarıyı geçiyorum. Son olarak da bir isim vererek ppk dosyamızı kaydediyorum.

1) Ppk biçiminde elde ettiğimiz dosyayı artık Putty nin Private Key file for authentication alanına girip bağlantıyı sağlayabiliriz demektir:

 
2) Session alanına gelip bağlantı bilgilerini giriyoruz
3) sunucu adının önüne ubuntu@ eklersek her seferinde kullanıcı adını sormayacaktır. (Yoksa her seferinde ubuntu diye belirtmek gerekecektir.

Burada dikkat edilmesi gereken bir kısım da ubuntu kullanıcı adının ubuntu işletim sistemi kurmamızdan kaynaklı olması. Ubuntu yerine Amazon Linux seçerseniz bunun yerine ec2-user yazmanız gerekli. Tam listeye şuradan ulaşabilirsiniz:

https://alestic.com/2014/01/ec2-ssh-username/
 
4) Her bağlantıda bu bilgileri girmemek için bir isim verip sonrasında Save e basıyoruz.
5) Bundan sonra amazon irlanda adıyla kaydettiğimiz bağlantıya tıkladıktan sonra Load'a basıp hızlıca bağlanabileceğiz.

Load' a bastığımızda önümüze bir konsol gelecek ve sunucuya bağlantımız tamamlanmış olacak.

Sunucuya Dosya Gönderme

Linux KDE:
Dolphin uygulamasını kullanarak sftp üzerinden dosya sistemlerine erişmek de mümkün. Bunun için adres çubuğuna sftp://kullanici@sunucu yazmak yeterli. Şifre ile erişim durumunda bize şifre sorması gerektiği halde bizim durumumuzda şifre olmadığı için küçük bir tweak gerekecek o da söyle:

~/.ssh dizini altında yoksa config adında bir dosya ekliyoruz ve içine şunları ekliyoruz

host [sunucuadi]
IdentityFile ~/amazon/irelandMicroKeyPair.pem

ve kaydedip çıktığımızda artık şifresiz şekilde yukarıdaki komut ile bir dizin erişimi sağlamış oluyoruz.

Windows:
WinScp'yi tavsiye edeceğim. http://winscp.net/eng/download.php bağlantısından programı indirip çalıştırdığınızda şöyle bir ekranla karşılaşacaksınız

Putty için yaptığımıza benzer bir şekilde  Host name alanına sunucu adını ve user name alanına ubuntu yazdıktan sonra Advanced e tıklayıp



Sonra da ppk dosyamızı gösterdikten sonra sunucumuzun klasör yapısına erişip dosya gönderebilir hale geliyoruz.

FileZilla gibi programları da bu şekilde kullanabilirsiniz sanıyorum ama Winscp yi tavsiye etmemin bir nedeni de Putty ile entegre çalışması:


Tools -> Prefences -> Integration -> Applications altında Putty uygulamasını otomatik tanıyacaktır Winscp. İsterseniz parolaları hatırlatabilirsiniz. 5 nolu değişikliği yaparsanız da artık Winscp den Putty penceresi açabilir hale gelirsiniz. Bunu yapmak için Winscp ile sunucuya bağlandıktan sonra Ctrl+P ye basmanız ya da ilgili düğmeye tıklamanız yeterli.





1 IaaS Pazar Payı

Yorumlar

  1. Merhaba,
    Bazı değşien sürümlerle birlikte Windows altından Putty bağlantı kısmına kadar geldim. Generate PEM to PPK yı da tamamladıktan sonra connection ı sağlayıp username ister noktasına kadar getirdim. Ancak username kısmına ve ardından pass olarak ne yazacağım bilemedim. AWS account bilgilerim mi username olacak yoksa instance dashboard da bu bilgiler yazıyor mu ?

    2. sorum ise username'e ne girersem gireyim şu hata geliyor: https://snag.gy/YA82S9.jpg rica etsem kontrol eder misiniz ? Putty içinde de SSH --> Auth kısmından PPK seçmeme rağmen her açtığımda bunu seçmek zorunda mıyım ? Boşaltıyor çünkü. Session Save yapmış olsam bile.

    Amazon Linux 2 AMI (HVM), SSD Volume Type kurdum.

    YanıtlaSil
  2. Selam

    SSH ile bağlanmanın bir yolu kullanıcı adı ve şifre iken bu yöntemi sunucuda SSH ayarlarında aktifleştirmek gerekir. Çünkü genelde bu yöntem yerine kullanıcı adı ve private key yöntemi kullanılır. Bu gönderide de bu yöntem anlatılmıştı.

    Özetle kullanıcı adınızı doğrulayacak bir anahtar sağlıyorsunuz. O da putty için ppk dosyasına karşılık geliyor.

    Kullanıcı adınız ilgili Linux işletim sisteminde tanımlı herhangi bir kullanıcıdır ama bahsi geçen AMI bir ubuntu makinası olduğu için ve Amazon bizim için önceden ubuntu adında bir kullanıcı tanımladığı ve onun için bir private key oluşturduğu için bizim örneğimizde bu kullanıcı adı ubuntu olacak.

    Ben kendim Ubuntu'yu indirip bilgisayarıma kursaydım örneğin kurulum sırasında benden bir kullanıcı girmemi isteyecekti ve oraya atıyorum ugur girecektim ve ugur adında bir kullanıcı oluşturulacaktı login olabileceğim ve istediğimde sudo ile root yetkisine sahip olabileceğim. Aynı şeyi Amazon bizim için yapmış bu makinayı hazırlarken ve adına ubuntu demiş. Şifre oluşturmamış ama bir private key oluşturmuş bağlanabilmemiz için ve ubuntu kullanıcısının sudo yetkisi bulunuyor. Ubuntu genelde root kullanıcı ile bağlanmaya izin vermez güvenlik sebebiyle. Başka bir kullanıcı ile bağlanıp sudo yaptıktan sonra root yetkilerini kullanırız.

    Farklı işletim sistemleri için Amazon'un farklı kullanıcı adlarına şuradan ulaşabilirsiniz:

    https://alestic.com/2014/01/ec2-ssh-username/

    Özetle sizin örneğinizde ubuntu yerine ec2-user olmalı bu kullanıcı.

    Bu kullanıcı adını Putty Configuration görselinde 3 numara ile işaretlemiştim. Yani kullanıcı adını bir kere sunucu adı ile birlikte kaydederseniz daha sonra girmenize gerek kalmaz. PPK'yı da doğru tanımlarsanız bağlantı kurulacaktır.

    Saygılar

    YanıtlaSil

Yorum Gönder

Popüler Yayınlar