Cloud Computing

Amazon EC2 -Elastic Compute Cloud Servisi Bölüm 2

UYGULAMA1

Bu uygulamamızda yapacaklarımız;

  • Amazon EC2 yönetim konsoluna göz atacağız
  • EC2 suncusu kuracağız ve kurulum sırasında AIM, Sunucu tipi seçimi, Security seçenekleri adım adım anlatacağız
  • Kurduğumzu EC2 sunucumuza nasıl bağlanacağımızı göreceğiz
  • EC2 sunucumuz üzerine bir Nginx kuracağız ve S3 üzerinde statik olarak host ettiğimiz sitemizi kurduğumuz sunucu üzerinde host edeceğiz.

Amazon EC2 Yönetim Konsolu;

EC2 yönetim konsoluna erişmek için Services-Compute-EC2 seçiyoruz. Sol tarafta EC2 ile ilgili tüm seçenekleri görebiliyouz.

  • Resources; Çalışan sunucularımız, Snapshotlar, Disk Volumeleri, Security Grupları kısaca kullandığımzı tüm EC2 kaynaklarını gördüğümüz alandır.
  • Launch instance; EC2 instance oluşturmak için bizi işlem sihirbazına yönlendirir
  • Service health; EC2 servisini çalıştırdığınız Region hakkında durum bilgisi verir. Biz İrlanda Region’ında çalışıyoruz ve hizmetlerin normal çalıştığını görüyoruz. Bir sorun olsaydı burada uyarı alacaktık.
  • Availability Zone Status; Çalıştığımız Region’da bulunan tüm erşilebilirlik alanları hakkında durum bilgisi verir. İrlanda Region’ında tüm erişilebilirlik alanları normal görüyor.
  • Scheduled events; Region’da planlı bir çalışma yapılacağı zaman bu alanda duyrulur. Görüdüğünüz gibi bir planlı çalışma şuan yok.
  • Sol taraftaki menüden Instances seçiyoruz ve burada Launch Instance diyerek EC2 sunucumuzu kurmaya başlıyoruz.
  • Step 1: Choose an Amazon Machine Image (AMI); Bu seçenekte EC2 instancena kuracağımız sistemi seçiyoruz. AIM konusunda bahsettiğimiz gibi burada üç seçenceğimiz var.
  • My AMIs; Kendi hazırladığımız imaj dosyaları burada bulunur. Örneğin ileride kuracağımız ilk EC2 sunucumuzun tüm kurulumlarını tamamladıktan sonra alacağımız Snapshotını AIM dönüştürerek kullanabileceğiz.
  • AWS Marketplace; Teknoloji alanında faaliyet geliştirici fimaların oluşturdukları ve ücretli olan imajların bulunduğu alandır. Örneğin Cisco firmasının bir imajını ücreti karşılığında alıp kurabilirsiniz.
  • Community AMIs; İşletim sistemi geliştiricilerinin herkesin kullanımına ücretisiz olarak sunduğu imajlardır. Community AMIs’de Ubuntu Server 20.04 LTS’e Select diyerek kuruluma devam edeceğiz.
  • Step 2: Choose an Instance Type; Amacımıza uygun instance type bulup seçiyoruz. Instance type konusunda hangi durumlar için hangi sunucuları seçmemiz gerektiğini detaylı bir şekilde anlatmıştır. Biz web sunucu çalıştıracağımız için T2 sunucu tipini seçeceğiz ve free olan t2.micro seçtikten sonra Configure Instance Details ile devam ediyoruz.
  • Step 3: Configure Instance Details; Kuracğaımız instance ile ilgili ayarlarımızı tamamlıyoruz.
  • Number of Instance; Bu AMI ile kaç adet instance kurulacağını beliriyoruz. Biz 1 tane kuracağız.
  • Purchasing option; Request Spot Instance seçeneğini işaretlediğinizde belirlediğiniz bir fiyata geldiğinde bu ınstance kurumunu gerçekleştirmesini sağlaybilirsiniz. EC2 satış modellerinde on-demand, Spot ve Reserved modellerinde olabileceğini belirmiştir. Biz bunu kullanmıyoruz ancak seçerseniz kaşrınıza aşağıdaki gibi bir ekran görüntüsü çıkıyor olacak.
  • Network, Subnet,Auto-assing Public IP ;Bir VPC’miz ( virtual private cloud) olmadığı için şimdilik defaultta bırakıyoruz. VPC kurduğumzuda buradaki network subnet ve public IP ayarlarını yapabiliyoruz
  • IAM role; EC2 sunucumuzun kullanacağı IAM rolünü seçiyoruz. Biz S3 kaynaklarına ulaşabilmesi için oluşturduğumuz EC2_S3_FullAccess rolünü seçtik.
  • Shutdown behavior; Burada EC2 insance kapatılırsa AWS nasıl bir aksiyon alması gerektiğini belirliyoruz. Burada “Stop” deyip instance durdurabileceğimiz gibi “ Terminate” seçerek instance kapatıldığında silinmesini sağlayabiliriz.
  • Enable termination protection; Instance kazara terminate edilmesini engellemek için koruma sağlar. Bununla ilgli uygulamada göreceğimiz bir özellik olduğu için işaretliyoruz.
  • Monitoring; EC2 instance CloudWatch ile izlemek istersen seçeriz. Standartta bu servisi seçmezsek instance ile ilgli 5 dakikada bir güncelleme alırız. CloudWatc ücretli bir servis olduğu için şimdilik seçmiyoruz.
  • Tenancy; Kuracağımız insance dedike olarak kurulsun istiyorsan buradna Dedicated Host seçebiliriz ancak bunun dezavantajlarından bahsetmiştik o yüzden biz “Shared-Run a shared hardware insance” seçiyoruz.
  • Advanced Details; EC2 instance kurulur kurulmaz çalışmasını istediğimiz bir komut veya komutlar varsa bu alanda tanımlayarak çalışmasını sağlıyoruz. Örneğin linux kurulumu tamamlanır tamamlanmaz update etmesini istiyorsak buraya update komutlarını yazarak çalışmasını sağlayabiliriz.
  • Instance ayarlarını yaptıktan sonra Next:Add Storage diyerek devam ediyoruz.
  • Step 4: Add Storage; Instance için root disk boyutunu, Volume tipini belirlediğimiz ve Add New Volume diyerek yeni disk volumeleri eklediğimiz aşamadır. Biz 8GB, Genel Kullanımlı SSD(gp2) seçiyoruz ve yeni bir disk volume eklemiyoruz. Genel kullanım SSD(gp2) dışında IOPS SSD(io1) ve Magnetic(standart) disk tipide seçebiliriz. Next:Add Tags diyerek devam ediyoruz.
  • Step 5: Add Tags; Etkiletlerimizi belirtiyoruz. Etiketler hem sınıflandırma hemde maliyet hesaplamada bize kolaylık sağlayan tanımlar olduğu için etiketlerimizi tanımladıkan sonra Next: Configure Security Group diyerek devam ediyoruz.
  • Step 6: Configure Security Group; EC2 Instance’ı için güvenlik erşim için port ve IP ayarları yaptığımz bölümdür. Ubuntu Server’a erişmek için SSH portunu açmamız gerekiyor ayrıca Ngnix servisi hizmet vereceği için HTTP ve HTTPS içinde ilgili portları açacağız.
  • Assign a security group; Instance için bir güvenlik grubu atadığımız alandır. Tanımlı bir güvenlik grubu ayarımız varsa onu seçebileceğimiz gibi Create a new diyerek kendimizde bir grup belirleyebiliriz. Biz tanımlı bir güvenlik grubumuz olmadığı için Create a new diyeree Security group name: EC2-Sec-Grup1 adını veriyoruz ve Descriptions “EC2 Instanceları icin Gunvelik Grubu”açıklamasını girerek bizim için gerekli olan portların açıyoruz. EC2-Sec-Grup1 dilersek daha sonra kuracağımız instancelar içinde kullanabileceğiz.
  • Source; Instance erişecek IP’leri burada belirleyebiliyoruz. My IP diyerek sadece belirttiğimiz IP’den, Custom diyerek belirtiğimiz IP, CIRD dan, Anywhere diyerek heryerden instancesın ilgili porttuna erişim izni verebiliriz. Anywhere seçtiğinizde AWS size uyarıda bulunuyor ve bunu bilinen bir IP ile erişmenizi tavsiye ediyor ancak biz dış dünyadan web sunucumuza erişeceğimiz için SSH,HTTP ve HTTPS’e Anywhere diyerek güvenlik ayarılarımızı tamalmıyoruz. Next:Review and Launch diyerek devam ediyoruz.
  • Step 7: Review Instance Launch; Tüm ayarlarımızı kontrol ettikten sonra Launch diyerek EC2 Insance hazır hale getiriyoruz. Yaptığımız günvelik grup ayarları sunucu tüm Dünya’ya açtığı için AWS bizi uyarıyor ve güvenlik grubunu tüm Dünya’ya açtığımızı belirtiyor.
  • Launch seçtiğinizde karşınıza private key file (*.pem) oluşturma ekranı gelecektir. EC2 instance’a ssh ile bağlanmak istiyorsanız bu key oluşturup Download Key Pair diyerek indirmek zorundasınız. Public Key AWS tarafından saklanır ve sizdeki private key ile eşleşerek bağlantı yapmanıza izin verir. Bu dosya kaybedilir veya download tmeyi unutursanız EC2 instancenıza ssh ile bağlanamazsınız. Oluştrduğunuz *.pem dosyasını kuracağınız tü EC2 instancelarında kullanabilirsiniz. Kısaca her EC2 Instancesı için private key üretmek zorunda değilsiniz. Key Pair Name “awskaratekin” yazarak *.pem uzantılı dosyamı oluşturup download ediyorum. SSH ile bağlanırken nasıl kullanılacağını uygulamada göstereceğiz.
  • Viev Instances diyerek EC2 yönetim kosolumuzda oluşturuduğumuz instance görmüş olduk.
  • Description;Instance işeretlendiğinde gelen bilgilere baktığımızda Description kısmında tüm tanımlarımızı görüyoruz. Burada önemli olan kısımlar Public DNS(IPv4) ve IPv4 Public IP adres bildileri çünkü EC2 Instance bağlanırken bu bilgilere ihtiyacımız olacak. Ayrıca Instance kurulurken seçmiş olduğumuz tüm ayarları burada görmek mümkün. Instance hangi Zone’da kuruldu, AMI ID, Insance Type, Instance durumu, Local IP adresi ve Local DNS bilgisi,Keypair namenin ne oldu gibi pek çok bilgiyi görebiliriz.
  • Status Checks; Instance durumunu gözlemlediğimiz bölümdür. System Status ve Instace Status Checks’te sorun olmadığını görüyoruz.
  • Monitoring; Instancesa ait kullanım seçeneklerini görebiliyoruz. Disk kullanımı, CPU kullanımı gibi bilgileri burada gözlemliyoruz. Buradaki bilgiler eğer Amazon CloudWatch hizmetini kullanmıyorsak 5 dakikada bir güncellenmektedir.
  • Tags; Kurulum sırasında oluşturmuş olduğumuz etiketleri burada görüntüleyebiliriz. Dilersek eklediğimiz etiketleri güncelleyebilir yada yeni etiketler ekleyebiliriz. Show ve Hide ederek Instance tablomuzda bu alanların görünmesini veya gizlenmesini sağlayabiliriz. Biz her ikisindie show dediğimiz için ınstance tablomuzda bu etkiletlerde görüntülenmektedir.
  • Actions; Instance üzerinde gerçekleştirmek istediğimiz eylemleri yönettiğimiz alandır.
    • Connect; Instance bağlanmak için kullandığımız eylemdir.
    • Create Template from Instance; Oluşturduğumuz ınstance ile şablon oluşturmamızı sağlar.
    • Instance State; Instance’ı stop,start,reboot ve terminate edebileceğimiz eylemdir. Biz instance kurulumunda yanışlıkla silinmesini engellemek için bir ayar yapmıştık şimdi buradan terminate dediğimizde instance silinmeyecek önce o ayarı kaldırmamız istenecek.
  • Instance Settings; Instance kurulumu sırasında yapmış olduğumuz ayarları buradan yeniden düzenleyebiliriz. Örneğin IAM Role değiştrebilir, Tags ekleyip silebiliriz.
  • Image; Instance’dan bir AMI ımajı oluşturmak için kullandığımız eylemdir. Bu imaj dosyasını kullanarak aynı instancedan dilediğimzi kadar üretebiliriz.
  • Networking; VPC içindeki network ayarlarını yaptığımız alandır. IP değiştirme, network interface ekleme bu alandan gerçekleştirilir.
  • CloudWatch Monitoring; Instance monitör etmek için CloudWatch kullanırsak ayarlarını buradan güncelleyebiliriz. Biz CloudWatch ücretli bir servis olduğu için bu instance da enable etmemiştik.
  • Connect; Kurmuş olduğumuz Instance nasıl bağlanacağımız gösteren alandır.
  • A standalone SSH Client ile bağlamak istersek indirmiş olduğumuz private key file kullanmamız gerekiyor. Kullanmadan önce uzantısı pem olan dosyanın olduğu klasöre giderek chmod 400 dosyaadı.pem komutunu işletiyoruz bu komut sadece root kullanıcısına read yetkisi vermemiz sağlayacaktır. Linux kullanıyorsanız ssh -i “awskaratekin.pem” [email protected] komutunu çalıştırdığımızda instance-a SSH ile bağlanmış oluyoruz. Putty gibi bir client kullanıyorsanız private key file-a root yetkisini tanımladıktan sorna putty’e dosayayı yüklemeniz gerekmekte.
  • EC2 Instance Connect (browser-based SSH connection); Bu seçenekle browser üzerinden açılan bir SSH client üzerinden instance-a bağlanmamız sağlanıyor.

Şimdi oluşturduğumzu EC2 Instance-a SSH ile bağlanacağız. Bağlandıktan sonra Ngnix yükleyip S3 Bucket’ında yer alan web sayfamızın dosyalarını bu sunucunun üzerine kopyalayarak sitemizi EC2 instance üzerinde host edeceğiz.

Sırasıyla;

  • Private Key File awskaratekin.pem dosyasına sadece root için read (okuma) yetkisi vereceğiz.
  • SSH komutumuzu çalıştıracağız ve SSH ile EC2 Instance-a bağlanacağız.
  • Nginx’i yüklüyoruz. Yüklendikten sonra Public DNS üzerinden veya Public IP(IPv4) üzerinden bağlanarak Nginx çalışıp çalımadığını kontrol edelim.

ubuntu@ip-172-31-43-78:~$ sudo apt-get install ng

nghttp2 nginx nginx-common nginx-core nginx-doc

ubuntu@ip-172-31-43-78:~$ sudo apt-get install ng

nghttp2 nginx nginx-common nginx-core nginx-doc

ubuntu@ip-172-31-43-78:~$ sudo apt-get install nginx

Reading package lists… Done

Building dependency tree

Reading state information… Done

The following additional packages will be installed:

  • AmazonS3’te oluşturduğumuz “karatekin-it-23” Bucket’ına bağlanıp index.html, error.html ve vader.jbg dosyalarımızı EC2 Instance da Ubuntu Serverın web sitelerini host ettiği klasöre kopyalacağız. Ubuntu web sitelerini var/www/html klasörünün altında tutmaktadır. Bu klasöre erşiyoruz ve Bucket’ta yer alan dosyalarımızı buraaya kopyalacağız.

# Bu komutla EC2 Instance üzerinden AmazonS3 bulunan Bucket’ları listeliyor

ubuntu@ip-172-31-43-78:~$ sudo aws s3 ls

2020-05-04 20:19:25 bucket-log-karatekin

2020-05-05 00:14:10 karatekin-it-23

# Bizim kopalacağımız dosyalar “karatekin-it-23” Bucket’ında olduğu için oradaki dosyaları listeliyoruz

ubuntu@ip-172-31-43-78:~$ sudo aws s3 ls karatekin-it-23

2020-05-04 13:26:55 27595597 Kali_Revealed_1st_edition.pdf

2020-05-04 13:27:01 13834946 NMap_Dokuman.docx

2020-05-04 20:50:06 261 error.html

2020-05-04 20:54:02 329 index.html

2020-05-04 19:13:44 84 karatekin.txt

2020-05-04 20:50:06 97946 vader.jpg

# Ubutuntu web sayfalarını host ettiği klasöre girmek için cd komutuyla içine giriyoruz

ubuntu@ip-172-31-43-78:~$ cd /var/www/html/

# cp komutuyla karatekin-it-23 Bucket’ın içinde bulunan index.html download ediyoruz “.” içinde bulunduğumuz klasöre indermemizi ifade ediyor

ubuntu@ip-172-31-43-78:/var/www/html$ sudo aws s3 cp s3://karatekin-it-23/index.html .

download: s3://karatekin-it-23/index.html to ./index.html

# cp komutuyla karatekin-it-23 Bucket’ın içinde bulunan error.html download ediyoruz

ubuntu@ip-172-31-43-78:/var/www/html$ sudo aws s3 cp s3://karatekin-it-23/error.html .

download: s3://karatekin-it-23/error.html to ./error.html

# cp komutuyla karatekin-it-23 Bucket’ın içinde bulunan vader.jpg download ediyoruz

ubuntu@ip-172-31-43-78:/var/www/html$ sudo aws s3 cp s3://karatekin-it-23/vader.jpg .

download: s3://karatekin-it-23/vader.jpg to ./vader.jpg

# /var/www/html/ klasörüne indirip indirmediğini kontrol etmek için ls komutunu çalıştrıyoruz.

ubuntu@ip-172-31-43-78:/var/www/html$ ls -al

total 116

drwxr-xr-x 2 root root 4096 May 8 13:32 .

drwxr-xr-x 3 root root 4096 May 8 13:03 ..

-rw-r–r– 1 root root 261 May 4 20:50 error.html

-rw-r–r– 1 root root 329 May 4 20:54 index.html

-rw-r–r– 1 root root 612 May 8 13:03 index.nginx-debian.html

-rw-r–r– 1 root root 97946 May 4 20:50 vader.jpg

ubuntu@ip-172-31-43-78:/var/www/html$

Bu uygulamamızda EC2 Inctance oluşturduk, Instance erişimini sağladık, EC2 instance’a Nginx yükledik ve AmazonS3 Bucket’ımıza erişerek web sayfamızla ilgli dosyaları EC2 instance-a download ederek çalıştırdık. Sıradaki uygulamada ELB ve Autoscaling uygulamalarını gerçekleştireceğiz.

Related Articles

2 Comments

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Back to top button