The European Union s Making the Labour Market more Inclusive III programme For North Cyprus Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals Module 3: Cloud Computing Modül 3: Bulut Bilişim Laboratuar Notları #10 A project implemented by CyberSoft Bilişim Teknolojileri Ltd. This project is funded by European Union. The contents of this publication are the sole responsibility of Cybersoft Bilişim Teknolojileri Ltd. and can in no way be taken to reflect the views of the European Union.
İçerik Bölüm 10: Amazon Relational Database Service (RDS) 1. Amazon Relational Database Service (RDS) Nedir?...2 1.1 Amazon RDB den Kayıt Açma...2 1.2 DB Instance Başlatılması...2 1.3 DB Security Group Konfigürasyonu...5 1.4 DB Instace ına Erişim...6 1.5 DB Instance ına Veri Ekleme...7 1.6 RDS Yönetimi...8 1.7 Scale-up İşlemi...9 1.8Veritabanının Multi-AZ Dönüşümü...10 1.9 DB Instance larının Silinmesi...11 1
1. Amazon Relational Database Service (RDS) Bu lab dersinde Amazon un Relational Database Service inin nasıl kullanıldığını inceleyeceğiz. Bunun için öncelikle Amazon Relational Database Service ne kayıt yapılması gerekmektedir. Daha sonra AWS Management Console u kullanarak RDS servisinin yönetimini inceleyip, bir tane basit AZ veritabanı (DB) instance ı yaratacağız. DB Instance larının DB Security Group konfigürasyonlarını inceledikten sonra, ona uzaktan bir makineden erişip, veri alışverisini nasıl yapacağımızı göreceğiz. DB çalıştırdıktan sonra, performansını inceleyip, asıl backup alınabileceğini göreceğiz. Son olarak snapshot dan nasıl DB instance yaratabileceğimiz gördükten sonra, DB instance larını nasıl silebileceğimizi öğreneceğiz. 1. Amazon RDS Nedir? Amazon RDS ilişkisel veritabanı oluşturma ve bakımı ile ilgili operasyonel karmaşıklığın yönetiminde kullanılır ve aynı zamanda MySQL hakkında bildiğiniz her şeyi Amazon RDS de kullanabilirsiniz. Buna ek olarak mevcut araçları, kod, veri ve sorguları da kullanabilirsiniz.amazon SimpleDB nin anahtar özelliklerinden bazıları şunlardır: Amazon RDS deki bütün işlemler DB Instance üzerinde yapılır. İki tür DB Instance vardır: Single- AZ (AZ Availability Zone kısaltmasıdır) ve Multi-AZ Instance. Multi-AZ Instance'lar, otomatik failover ile bir hata durumunda bekleme durumunu geçip, birden fazla imkanı Bölgeleri arasında daha fazla dayanıklılık ve eşzamanlı veritabanı güncelleme özelliği sunar. DB Instance yarattığınız zaman DB Instance Class ı da belirlemelisiniz. Amazon RDS, Tablo 1 de görebileceğiniz gibi 5 tane DB Instance Class ı sunar. Simple DB nin tersine RDS in sınıfları sadece 64-bit dir. Tablo 1. Amazon RDS Instance Classes Tablo 1 deki fiyatlar Simple-AZ için geçerlidir. Multi-AZ nin fiyatı bu değerlerin iki katı kadardır. The DB Instance larının depo alanı değişkendir. DB Instance yaratırken 5GB dan 1,024GB a kadar bir alan seçebilirsiniz. Daha sonra, ihtiyacınıza göre 1,024GB a kadar fazladan alan da ekleyebilirsiniz Bir DB Instance yaratırken DB Instance identifier belirtmelisiniz. Bu değer 63 tane küçük harf, rakam ve tire içerebilir bir dizedir. En sonda tire kullanılamaz. DBInstance Identifier her Amazon Hesabı içinbenzersiz olmalıdır. Her DB Instance bir tane database engine host eder. Şu anda desteklenen database engine Mysql 5.1 dir. 2
1.1 Amazon RDB den Kayıt Açma Eğer daha önce yapmadıysanız, Amazon RDS sayfasına gidiniz (http://aws.amazon.com/rds/) ve Sign Up For Amazon RDS butonuna basınız. Console a çok sık giriş yapmak istemiyorsanız, sağ üst köşeden Settings kısmından Şekil 1 deki gibi Sign out on inactivity option ı kaldırınız. 1.2 DB Instance Başlatılması Şekil.1.Automatic sign-out kaldırılması Şimdi de Launch DB Instance Wizard ını kullanarak bir tane AZ DB Instance ı başlatalım. Bunun için Launch DB butonuna basınız ve Şekil 2 de görünen wizard ın ilk sayfasını doldurunuz. Şekil.2. DB Instance Class, DB Engine version, Auto Minor Version Upgrade ve the Multi-AZ Deployment değerlerini değiştirmeyiniz. Allocated Storage kısmına 5GB giriniz, DB Instance Identifier ı mydb olarak ayarlayınız, Master User Name kısmına dbuser yazınız, ve Master User Password kısmına dbpass giriniz. Continue butonuna basıp, Şekil 3 de görünen wizard ın ikinci sayfasıyla devam ediniz. 3
Şekil.3. Database Name kısmına mydata giriniz e diğer alanları olduğu gibi bırakınız. Continue butonuna basıp, Şekil 4 de görünen wizard ın üçüncü sayfasıyla devam ediniz. Şekil.4 Backup Retention Period unu3 days seçiniz. Diğer alanları değiştirmeyiniz. Continue butonuna basıp, girdiğiniz verilerin doğru olduğunu Şekil 5 deki gibi onaylayınız. 4
Şekil 5. Eğer hersey düzgün görünüyorsa, DB Instance ınızı başlatmak için Launch DB Instance butonuna tıklayınız. Status sayfasını kapatınız, ve DB Instances sayfasına dönünüz. DB Instance ınızın statüsü creating olarak görünmelidir. Creating statüsü 1-2 dakika sürmelidir. Eğer daha uzun sürerse, statüs available olana kadar refresh ediniz. 1.3 DB Security Group Konfigürasyonu Sıradaki adım sizin client sisteminizden gelen bağlantıları kabul eden DB Security Group konfigüre etmede. İki durum olabilir: 1. Aynı AWS account üzerindeki EC2 instance ından gelen bağlantılar Eğer daha önceden çalışan bir EC2 Instance ınız varsa, onu kendi client makineniz olarak kullanabilirsiniz. Bunun için EC2 instance ınızın bağlı olduğu Security Groups bilmelisiniz. Aynı zamanda 12-rakamlık AWS Account ID side gereklidir. 2. Kendi kişisel PC niz veya bir sunucudan gelen bağlantılar Eğer MySQL client uygulamalarınız desktop makinenizde veya bir sunucu üzerindeyse, onu da client makineniz olarak kullanabilirsiniz. Bunun için makinenizin IP adresine ihtiyaç olacaktır. Eğer makineniz network address translation (NAT) kullanan bir network ün üzerindeyse, http://www.whatsmyip.org/ servisini kullanarak IP adresinizi öğrenebilirsiniz. ifconfig komutunu kullanarak Windows server inizin IP address ini öğrenebilirsiniz. Gerekli bilgileri öğrendikten sonra, AWS Management konsoluna dönün ve DB Security Groups üzerine tıklayınız. DB Security Group named default a tıklayın ve dikkatinizi sayfanın altına yoğunlaştırınız.eğer EC2 Instance ınızdan bağlantı yapmayı düşünüyorsanız, EC2 5
Security Group seçiniz ve aşağıdaki (Şekil 6.) formu doldurunuz; daha sonra Add butonuna basınız. Şekil.6 Eğer kendi kişisel bilgisayarınızdan bağlanmayı düşünüyorsanız, CIDR/IP yi seçiniz ve IP adresini giriniz veya CIDR notation içindeki IP adress aralığını giriniz. Eğer tek bir adresten bağlanacaksanız, /32 ile biten adresi giriniz. Eğer birkaç adres aralığından bağlanacaksanız, network admin inize CIDR adresini sormalısınız. Adres bilgilerini girdikten sonra, Şekil 7 deki gibi Add butonuna basınız. Şekil.7 1.4 DB Instance ına Erişim Şimdiye kadar bir DB Instance ının nasıl başlatılıp, çalıştırılacağını ve nasıl DB Security Group konfigürasyonu yapabileceğinizi gördünüz. Şimdi de sırada veritabanınıza bağlantı yapmak için gerekli bilgileri almaya geldi. Konsola dönünüz ve DB instances üzerine tıklayınız. Yarattığınız instance ınızın üzerine tıklayıp, dikkatinizi sayfanın altına yoğunlaştırınız. Şekil 8 deki gibi Endpoint kısmına gidiniz ve ismini seçip, kopyalayınız. Şekil. 8 mydb DB Instance ını yaratırken kullandığınız DB Instance identifier ı temsil eder. us-east- 1.rds.amazonaws.com ise DB Instance ınızın bilgesini gösterir. cykjykynyvvn ise tek ve benzersiz bir identifier dir. Şimdi client ınıza dönünüz ve mysql komutunu aşağıdaki gibi başlatınız: $mysql -u dbuser -p -h mydb.cykjykynyvvn.us-east-1.rds.amazonaws.com dbuser yerine DB instance ınızı yaratırken kullandığınız master user name değerini yazınız ve h den sonra konsoldan kopyaladığınız endpoint değerini giriniz. Daha sonra mysql komutu size password unuzu girmeniz için uyardığında, DB instance ınızı yaratırken kullandığınız master user password değerini yazınız ve bağlantıyı başlatınız: 6
Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 27 Server version: 5.1.45-log MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> Tebrikler...Bir DB Instance ı yaratıp, ona bağlantıyı sağladınız.congratulations, you did it! You ve launched a DB Instance and connected to it. Şimdi sırada RDS in size yarattığı boş veritabanını onaylamada... mysql>show databases; +--------------------+ Database +--------------------+ information_schema innodb mydata mysql +--------------------+ 4 rows in set (0.00 sec) mysql>use mydata; Database changed mysql>show tables; Empty set (0.00 sec) 1.5 DB Instance ına bilgi ekleme Şimdi de sırada yarattığınız veritabanınıza biraz bilgi eklemede... Öncelikle verileriniz için bir table yaratınız: mysql>create table feeds (feedid int(11), url varchar(255)); Query OK, 0 rows affected (0.08 sec) Daha sonra verileriniz DB Instance ına aktarınız: mysql>load data local infile "feeds.txt" into table feeds fields terminated by "," enclosed by '"'; Query OK, 215825 rows affected (4.53 sec) Records: 215825 Deleted: 0 Skipped: 0 Warnings: 0 ve de select komutunu kullanarak test ediniz: mysql>select * from feeds order by rand() limit 10; +--------+---------------------------------------------------------+ feedid url +--------+---------------------------------------------------------+ 333143 http://www.livejournal.com/users/so_delicate/data/atom/ 166339 http://www.vivat.be/rss_nl.asp?section=7 422894 http://sociable.blogspot.com/atom.xml 276630 http://www.livejournal.com/users/faizmagic/data/atom/ 530872 http://blogs.guardian.co.uk/games/index.xml 423608 http://rss-lebanon.com/blogs/xmlsrv/rss2.php?blog=2 547146 http://faboffer.com/articles/dwi-law/rss.xml 213177 http://randomnumbers.us/wp-rss2.php 500848 http://feeds.healthywomen.org/nwhrc_newshcp 347547 http://www.livejournal.com/users/_clearblur_/data/atom/ +--------+---------------------------------------------------------+ 10 rows in set (1.08 sec) 7
1.6 Amazon RDS in Yönetimi 1.6.1. Instance Performansının İzlenmesi Konsolunuza dönünüz ve instances üzerine tıklayınız. Aşağıya inip, Şekil.9 daki Monitıring tabını bulunuz. Avg Free Storage de gördüğünüz gibi çizgiyi kımıldatacak kadar yeterli bilgi aktarılmıştır. Diğer grafikler ise artan sistem veya network trafiğinin anlık değişikliklerini göstermektedir. 1.6.2 Snapshot Backup Başlatılması Daha fazla ilerlemeden bir tane snapshot backup başlatalım..db Instance ınız üzerine sağ tıklayıp, Şekil 10 daki gibi Take snapshot u seçiniz. Şekil.10 8
BD Snapshot unuza bir isim giriniz ve Yes, Take Snapshot butonuna basınız. Konsol otomatik olarak DB Snaphots sayfasına gidip, status ü creating olarak değişecektir. Satüs birkaç dakika sonra available durumuna geçecektir. Snapshot lar her zaman veritabanınızın snapshot başlatıldığı zamandaki durumunu göstermektedir.diskinize daha fazla bilgi eklemeye veya uygulamayı durdurmanıza ferek yoktur. Snapshot alınırken varolan event ları görmek için Şekil 11 deki gibi Recent events tabına tıklayınız. 1.7 Scale-up İşlemi Şekil.11 DB Instance üzerinde sağ-tık yapınız ve Modify seçiniz. Ekranınıza Şekil 12 deki gibi bir sayfa gelecektir. New DB Instance Class ı seçiniz ve Apply a tıklayıp, OK basınız. DB Instance ının statusu modifying olarak değişecektir ve Recent events tabında Instance Class ının modifiye edildiğine dair bir bilgi oluşacaktır. Değişiklik tamamlandıktan sonra, status available durumuna geçecektir. Aşağıdaki event log da görüldüğü gibi bütün scaling iişlemi 6 dakika sürmüştür. 9
Şekil 13. İnstance ıza eklenen veriyi aynı Modify işlemini kullanarak çoğaltabilirsiniz ama azaltamazsınız. 1.8 Scale-up Storage Storage alanını artırmak için DB Instance üzerinde sağ-tık yapıp, Modify seçiniz. Şekil 14 deki gibi Allocated Storage değerini daha büyük bir değer seçiniz ve Apply basınız. Şekil 14. Amazon RDS size daha fazla alan eklerken instance ınız kullanılır durumda olacaktır. Tekrardan Recent Events tabına tıklayınız ve değişikliği görünüz. 1.8 Veritabanının Simple AZ den Multi-AZ Dönüşümü Single-AZ DB Instance ınızıistediğiniz zaman Multi-AZ DB Instance ına dönüştürebilirsiniz. Bunun için modify kısmından Multi-AZ Deployment ayarını Şekil 15 deki gibi değiştirmelisiniz. 10
Şekil 15. 1.9 DB Instance larının Silinmesi Son olarak adımda DB Instance ının nasıl silineceğini göreceğiz. DB Instance ınızı tamamen silmeden önce son halinin snapshot unu Şekil 16 daki gibi alabilirsiniz. Şekil. 16 DB Instance ınız tamamen yok olmadan önce available durumundan deleting durumuna geçecektir. Artık varolan MySQL uygulamanızı nasıl Amazon RDS e aktarabileceğinizi öğrendiniz. Bu haftalık da bu kadar... 11