Linux Hosting’den AWS’ye Geçiş-2 (AWS RDS, AWS Route 53)

Merhabalar.

Bir önceki yazıda AWS EC2 üzerinden bulut sunucumuzu oluşturup, wordpress dosyalarımızın aktarımına hazır hale getirmiştik.

Bu yazıda da;

  1. AWS RDS üzerinden bir MySQL veri tabanı sunucusu oluşturacağız,

  2. WordPress dosyalarımızı sunucuya aktarıp, veri tabanı bağlantısı için gerekli konfigurasyonları yapacağız,

  3. AWS Route 53 serivisi üzerinden; mevcut alan adımızın, EC2 sunucusuna yönlendirilmesi için gerekli işlemleri gerçekleştireceğiz.

Böylece, web sitemizi AWS‘ye taşıma işlemini sonlandırmış olacağız.

Veri tabanı işlemleri için RDS servisine gelelim.

Yukarıdaki görselde RDS Dashboard sayfasını görüyoruz. Bir önceki yazıda, AWS ekosisteminde her bir sunucunun Instance olarak tanımlandığından bahsetmiştik. Buradaki DB Instances alanında bize kaç adet veri tabanı sunucumuzun olduğu gösterilmektedir.

Create database butonundan yeni bir veri tabanı oluşturmaya başlayalım.

Select Engine adımında hangi veri tabanı sistemini kullanacağımızı belirtiyoruz.

Aynı sayfanın alt kısmında Only enable options eligible for RDS Free Usage Tier alanını işaretleyerek, bundan sonraki tüm adımların deneme hesabı limitlerine göre seçilmiş halde gelmesini sağlıyoruz.

DB engine version alanından veri tabanı sistemimizin versiyonunu seçebiliyoruz.

Veri tabanı seçimi adımında Only enable options eligible for RDS Free Usage Tier alanını seçtiğimiz için sunucu özelliklerinin ücretsiz kullanıma uygun olarak geleceğinden bahsetmiştik. (AWS, ücretsiz hesaplar için 1 vCPU işlemcili , 1 GiB Ram kapasiteli 20 GiB disk boyutu olan veri tabanı sunucuları hizmete sunmaktadır. Daha yüksek özellikler seçildiğinde kullanımlarınız ücretlendirilecektir.)

DB Instance Identifier alanında veri tabanı sunucumuza bir isim belirliyoruz. (Hesabımızdaki her veri tabanı sunucusu için farklı isim bir isim seçmemiz gerekiyor. )

Sonrasında Master kullanıcı adını ve şifresini belirleyip bir sonraki adıma geçiyoruz.

Dışarıdan veri tabanına erişim sağlanabilmesi için Public accesibility alanında Yes seçili olması gerekiyor. Aksi taktirde; veri tabanı sunucusuna, bulunduğu VPC dışından erişim sağlanamayacaktır.

Hazır bahsi açılmışken VPC (Virtual Private Cloud) kavramından çok kısa bahsedelim. VPC; kendinize özel bir network ağı oluşturabilmenizi ve bu ağ içerisindeki sunucularınızın dış dünyadan izole bir şekilde birbirleriyle iletişim kurabilmesini sağlayan AWS hizmetidir.

VPC Security groups alanında ise tıpkı EC2 sunucusunda yaptığımız gibi güvenlik grubu belirliyoruz. İsterseniz daha önceden oluşturmuş olduğunuz bir güvenlik grubunu bu sunucu için de kullanabilirsiniz. Fakat ben bu sunucu için yeni bir güvenlik grubu oluşturulmasını istiyorum. O yüzden Create new VPC security group seçeneğini işaretleyip devam ediyorum.

Database options bölümünde; wordpress verilerinin tutulacağı veri tabanının ismini belirliyoruz. Yazının ilerleyen bölümünde; wordpress konfigurasyonlarını bu bilgilere göre gerçekleştireceğiz.

Son olarak, veri tabanı sunucumuzu silme işlemine karşı koruma altına alıp Create database yapalım.

Ve veri tabanı sunucumuz oluştu. View DB instance details butonuna tıklayıp veri tabanı sunucumuza bir bakalım..

Sunucunun tam olarak hazır hale gelmesi birkaç dakika alabiliyor. Herşey hazır olduğu olduğunda Info alanına Available bilgisi gelecektir.

Connectivity & security bölümünde veri tabanı bağlantısı ve güvenliği ile ilgili ayrıntılar gösterilmektedir.

Bu bölümdeki Endpoint alanında; veri tabanına bağlanmak için kullanacağımız host adresi bilgisi gösterilmektedir.

Security alanında yeni bir güvenlik grubu (rds-launch-wizard-4 (sg-023052f845a5967c6)) oluşmuş olduğunu göreceksiniz.

Güvenlik grubunun kurallarına baktığımızda (Inbound olarak) kendi ip adresiminizin otomatik olarak tanımlanmış olduğunu görüyoruz. Şuan veri tabanı sunucumuza dışarıdan; sadece kendi ip adresimiz üzerinden bağlanabilmekteyiz.

Veri tabanımız hazır hale geldiğine göre wordpress dosyalarını EC2 sunucusuna atmaya başlayabiliriz.

Dosya transferini gerçekleştirebilmek için bir çok yöntem mevcut. Ben kullanım kolaylığı sebebiyle; dosya transferini FileZilla aracılığıyla SFTP protokolü kullanarak gerçekleştireceğim. (SFTP dosya transferi , SSH portu ile gerçekleşmektedir. EC2 sunucusuna SSH ile bağlanırken kullandığımız bilgileri bura da kullanacağız.)

FileZilla bağlantı ayarlarını tamamladıktan sonra wordpress ana dizinindeki wp-config.php dosyasında ilgili alanlara veri tabanı erişimi için gerekli bilgileri giriyoruz.

‘DB_HOST’ değeri olarak veri tabanı sunucumuzun Endpoint adresini veriyoruz. Yine ‘DB_NAME’ , ‘DB_USER’ ve ‘DB_PASSWORD’ değerlerini de kendi veri tabanımıza göre düzenliyoruz.

define('DB_NAME', 'umutonurcom_db');

/** MySQL database username */
define('DB_USER', 'wp_user');

/** MySQL database password */
define('DB_PASSWORD', 'umut123456');

/** MySQL hostname */
define('DB_HOST', 'umutonurcom-db-instance.comgbje6iuwm.us-east-2.rds.amazonaws.com');

wp-config.php dosyasını kaydettikten sonra; tüm wordpress dosyalarını FileZilla üzerinden /var/www/html dizinine aktarıyoruz.

Dosya transfer işlemleri tamamlandıktan sonra web sitemizin son durumu nedir bir görelim. (Bir önceki yazıdan da hatırlayacağınız üzere; web sitemize http://public-ip-adresi/ şeklinde bağlanabiliyorduk.)

Tarayıcıdan web sitesini açtığımızda karşımıza çıkan tabloya bakacak olursak; çözmemiz gereken 2 durum var gibi görünüyor.

  1. wp-config.php dosyasına veri tabanı bilgilerini belirttiğimiz halde; WordPress üzerinden veri tabanı bağlantısı sağlanamıyor.

  2. Yazıyı hazırladığım süreçte EC2 sunucusunu yeniden başlatmak durumunda kaldığım için public ip adresi yenilenmiş. Sabit bir ip adresi belirlememiz gerekiyor. (Alan adımızı yönlendirirken sunucu ip adresini kullanıyoruz. Sunucu ip adresinin sürekli yenilenmesi demek, her yenilenme sonrasında alan adını tekrar yeni ip adresine yönlendirmemiz demek anlamına geliyor. )

Az önce RDS sunucusunun güvenlik grubu kurallarını (Security group rules) incelerken, sadece oluşturma anındaki ip adresimizin (inbound) bağlantı için tanımlı olduğundan bahsetmiştik.

EC2 sunucusunun da RDS sunucusuna erişim sağlayabilmesi (yani wordpress uygulamasının veri tabanına bağlanabilmesi) için gerekli tanımlama işlemini gerçekleştirelim.

Connectivity & Security veya Security group rules alanlarından güvenlik kuralına tıklayarak bu sayfaya ulaşabilirsiniz.

EC2 web sunucunumuzun güvenlik grubunu resimdeki gibi tanımlıyoruz. Artık, EC2 (WordPress) sunucusu üzerinden RDS (MySQL) sunucusuna erişim sağlanabilir.

Şimdi web sitemizin son durumuna bir bakalım.

WordPress uygulamamız hazır.

Şimdi web sitemiz için sabit bir ip belirleme işlemine geçelim.

EC2 Dashboard sayfasından sunucumuzu seçip Actions > Networking menüsünden Manage IP Addresses‘e tıklıyoruz.

Açılan pencerede EC2 sunucusu için tanımlanmış olan ip adresleri listelenmektedir. Allocate an Elastic IP linkine tıklıyoruz.

Amazon pool‘u seçerek Allocate butonuna tıklıyoruz.

AWS ip havuzundan rastgele bir ip adresi bizim için ayrılmış oldu.. Elastic IP adresimizin üstüne tıklıyoruz.

Yeni ip adresimiz filtrelenmiş şekilde Elastic IP‘lerimizin listelendiği sayfa açılacaktır. Burada EC2 sunucusuna belirlemek istediğimiz ip adresi seçili şekilde Actions menüsünden Associate address‘e tıklıyoruz.

Açılan sayfada seçtiğimiz Elastic IP adresinin hangi sunucuya tanımlanacağını belirtiyoruz. – Instance alanına EC2 sunusunun instance id değerini giriyoruz. – Private IP alanından da belirttiğimiz sunucunun Private IP adresini seçiyoruz. – Reassociation alanında ise Elastic IP adresi daha önce ilişkilendirilmişse tekrar sunucu ile tekrar ilişkilendirilmesini sağlıyoruz.

Associate butonuna tıklayıp işlemi tamamlayalım.

Artık web sunucumuzun sabit bir ip adresi var.

Hemen sabit ip adresini tarayıcıdan test edelim.

Sonuç başarılı.. Web sitemiz sabit bir ip adresi üzerinden yayın hayatına başlamış durumdadır 🙂 WordPress kurulum işlemlerinizi tamamlayabilirsiniz.

Son olarak; elimizde bir alan adı var ve alan adımızı yeni sunucumuza yönlendirmemiz gerekiyor.

Öncelikle, alan adını hangi firmada barındırıyorsak asıl yönlendirme işlemlerini o tarafta gerçekleştirmeliyiz. Fakat, alan adını yönlendirebilmek için bize yeni sunucunun Name Server adresleri gerekiyor.

ÖNEMLİ NOT: Route 53 servisindeki kullanımlarınız ücretsiz pakete dahil değildir. Yani servis üzerindeki kullanımlarınız AWS tarafından faturalandırılacaktır.

Sunucumuzun Name Server adreslerini edinebilmek için Route 53 servisinden Hosted Zones sayfasına geliyoruz.

umutonur.com adresini EC2 sunucuma, yazıyı yazmadan önce yönlendirdiğim için örneklere alanadiniz.com şeklinde devam edeceğim.

Hosted Zones sayfasında yönlendirme yaptığımız alan adlarının listesi gösterilmektedir. Create Hosted Zone butonuna tıklayarak yeni alan adımızı tanımlamaya başlıyoruz.

Sağ tarafta açılan bölümde; – Domain Name alanına görseldeki gibi alan adımızı belirtiyoruz. – Comment alanına alan adı ile ilgili açıklamalarınızı girebilirsiniz. – Type alanında ise Public Hosted Zone seçip Create butonuna tıklıyoruz.

Alan adını tanımladıktan sonra; gelen isteklerin yönlendirileceği IP adresini (yani web sitemizin sabit ip adresi) belirtmemiz gerekiyor.

Create Record Set butonuna tıklıyoruz. Sağ tarafta açılan bölümde; – Type alanında A – IPv4 address seçiyoruz. Bu alanda yaptığımız seçim, Value olarak belirttiğimiz değerin ne için kullanılacağını göstermektedir. – Value alanına sabit ip adresimizi yazıyoruz, ve Create butonuna tıklıyoruz.

http://alanadiniz.com/ şeklinde gelen istekler sabit ip adresimize yani web sunucumuza yönlendirilmesi için gerekli tanımlamayı yaptık. Aynı işlemi http://www.alanadiniz.com/ içinde gerçekleştiriyoruz. Eğer kullandığınız başka alt alan adları (subdomain) varsa, aynı şekilde yönlendirme yapabilirsiniz.

Record Set‘leri tanımladıktan sonra NS tipindeki Name server adreslerini; alan adınızı barındırdığınız firma üzerinden güncelleyebilirsiniz.

Herşey tamamlandıktan sonra Test Record Set butonundan tanımlamış olduğunuz Record Set‘lerin çalışıp çalışmadığını kontrol etmenizi tavsiye ederim.

Ve nihayet sona geldik… Başka bir yazı da tekrar görüşmek üzere,

Mutlu kodlamalar 🙂

Last updated