ÇözümPark'a hoş geldiniz. Oturum Aç | Üye Ol
 
Ana Sayfa Makale Video Forum Dosyalar Etkinlik Hizmetlerimiz Biz Kimiz

Amazon Web Services AWS

Amazon Web Services AWS Elastic Beanstalk ile Wordpress Kurulumu – Bölüm 1

Wordpress; php ve mysql tabanlı, açık kaynak kodlu blog ve içerik yönetim sistemidir. Kişisel web sitelerinden yüksek trafik yoğunluklu web sitelerine kadar hemen her türlü içeriğin yayınlanması için kullanılmaktadır.

Wordpress’in ilk sürümü 2003’de yayınlanmıştı ve elastik, ölçeklenebilir,  bulut tabanlı sistemlerde çalışması düşünülerek yapılmamıştı. Zamanla gelişen sürümleri ile bu içerik yönetim sistemi(content management system) ; modern, ölçeklenebilir ve bulut tabanlı sistemlerde çalışabilir hale gelmiştir.Göz atmak isteyenler için wordpress web uygulamasının dosya ve klasör yapısı hakkında, kaynaklar kısmında, çeşitli adresler paylaşacağım.

Yazımda, AWS üzerinde ölçeklenebilir(scalable) , stateless mimari ile wordpress web application yapılandırmasından bahsedeceğim. Konunun kapsamı ve kullanacağım servisleri göz önününe aldığımda yazımı bir kaç parçaya bölmeye karar verdim. Bu bölümde , wordpress için gereken relational database servisinin kurulumu,Elastic Beanstalk ile wordpress’in kurulumu ve Elastic Load Balancer konularına değinilecektir. Elastic Beanstalk servisi dışında kalan diğer servislerden önceki yazılarımda bahsetmiştim. Bu konuyu incelemeden önce o yazılara gözatabilirsiniz.

Elastic Beanstalk AWS’nin sunduğu platform as a service ‘dir. Müşteri Elastic Beanstalk ile, web uygulamasını bellirli tanımlar doğrultusunda(ec2,elb,rds vb.) AWS bulutuna kurar ve hizmete açar. Elastic Beanstalk servisinin desteklediği yazılımlardan ve uygulamalardan bazıları aşağıdaki gibidir.

·        Apache http server üzerinde Php , python , ruby Uygulamaları

·        IIS üzerinde .net Uygulamaları

·        Apache üzerinde java uygulamaları

·        Node.js

·        docker

·        Git(desteklediği development methodu)

·        Java Web Application Archive(desteklediği development methodu)

Elastic Beanstalk ‘un bu kulvardaki rakipleri de genel olarak aşağıdaki gibidir.

·        Cloud Foundry

·        Bluemix

·        Appscale

·        Google App Engine

·        Heroku

·        Anynines

·        Engine Yard

·        Opendshift

·        Windows Azure

·        Jelastic

Geleneksel yöntemler ile devam edebiliyorken neden elastic beanstalk kullanmalıyım? Bu soruyu cevaplayarak ilerleyeyim J Aslında soruyu “Neden buna benzer bir servis kullanalım?” şeklinde de sorabiliriz. Çünkü müşteri olarak istediğiniz PaaS servis sağlayıcısını kullanmakta özgürsünüz J Yapıyı incelerken edindiğim izlenimi aktarayım.

Müşterinin amacı uygulamasını bulutta barındırmak,servis kesintisi yaşamamak,kaynak sıkınıtısı yaşamamak,yönetimsel zorlukları asgari düzeye indirmek,uygulaması için versiyonlama yapabilmek ve maliyeti optimize etmektir. Uygulamayı Elastic Beanstalk servisi ile AWS bulutuna yüklediğinizde, Elastic Beanstalk belirttiğiniz parametrelere göre arka planda,

-        Sanal sunucu instance’ını(EC2)

-        Relational Database Service’ini(Mysql)

-        Load Balancer’ı(Elastik Load Balancer)

-        Ölçeklendirme sistemini(Auto Scaling)

-        Uygulamanın sağlık durumunu(Cloudwatch)

-        S3 storage alanı kullanımını

-        Gerekli security group

-        Versiyon

konfigürasyonlarını tamamlarayarak uygulamanızı hizmete açıyor. Bir bakıma orchestration yapıyor. Bunlar ile birlikte AWS Route 53 hizmetini kullanarak DNS servisinden faydalanabilirsiniz. Stateless web uygulaması mimarisi için de ElasticCache, CloudFront, S3 servislerinden faydalanabilirsiniz. Bu yazının konusu bahsettiklerimin bir kısmı olacak. Diğer kısımlarını sonraki bölümde inceleyeceğim.

Özetle Elastic Beanstalk veya buna benzer bir servis kullandığınızda, müşteri olarak minimum efor ile uygulamanızı hizmete açabiliyorsunuz. Yapılandırmaya geçebilirim.

Relational Database Service’inde MySQL instance’ını açtım. Elastic beanstalk rds instance’ını da kendi süreçleri içinde oluşturabiliyor. Instance’ın açılmasını bu süreçlere dahil etmeden de oluşturabilirsiniz.

clip_image002

Database ismi, user bilgisi,parola bilgisi,bağlantı yolu(endpoint) bilgisi, üstteki aşama tamamlandıktan sonra belirlenmiş olacak.

clip_image003

Database Instance’ına ait bazı önemli bilgileri farklı renk ile taradım. Bu bilgileri wordpress için kullanacağız. Şimdi wordpress kurulum dosyalarını https://wordpress.org/download/ adresinden temin ediyorum ve uygun bir lokasyona açıyorum. wp-config-sample.php dosyasının ismini wp-config.php olarak değiştiriyorum. Dosyayı notepad++ ile aşağıdaki şekilde yapılandırıyorum.

clip_image005

Bilgileri, database instance’ının detaylarından temin ediyorsunuz. Dosyanın alt kısmında authentication unique keys and salt isminde bir bölüm var. O kısmı da şu adresten edineceğiniz bilgiler ile doldurabilirsiniz > https://api.wordpress.org/secret-key/1.1/salt/

Değiştirdiğiniz dosyayı da içerecek şekilde wordpress kurulum nesnelerini zip biçiminde paketleyiniz. Paketleyeceğiniz nesneler aşağıdaki gibidir.

clip_image007

Paketlediğimiz dosyayı Elastic Beanstalk ile yapılandırma esnasında kullanacağız.

clip_image009

Üstte görülen kısımdan Elastik Beanstalk paneline geçiyorum ve “create new application” ile yeni bir uygulama oluşturuyorum.

clip_image011

“Next” ile  devam.

clip_image013

“Create web server” ile devam ediyorum.

clip_image014

Gereken parametreleri seçerek devam ediyorum. Siz uygulamanıza uygun farklı parametreler seçebilirsiniz(IIS,single instance vb.)

clip_image016

Paketlediğim wordpress zip dosyasını source olarak seçerek devam ediyorum. Upload işlemi yapılacak.

clip_image017

Uygulamanın ismini not alabilirsiniz ama nihai noktada DNS üzerinde cname kaydı açarak yönlendirmeler yapacaksınız. Kısa vadede testleriniz için burada görülen ismi kullanabilirsiniz.

clip_image019

Database Instance’ını daha önce açtığım için bu aşamayı kutucukları işaretlemeden ilerletiyorum.

clip_image021

Configuration Details aşamasında, testim için gereken ayarları yapılandırdım. Health check için readme.html’in varlığını kullanacağım. Wordpress kurulum dosyaları arasında bu dosya vardı! “Next” ile devam ediyorum. Elastic Beanstalk, uygulama ortamını hazırlamaya başlıyor.

clip_image023

Üstteki “Launching” süreci tamamlandıktan sonra şu işlemler bitmiş oluyor.

-        Wordpress’in üzerinde çalışacağı sanal sunucu hazırlanıyor(EC2 instance)

-        Elastic Load Balancer hazırlanıyor

-        Auto-scaling group hazırlanıyor

-        Hazırlanan servisler için gereken tüm security group’lar ve gereken izinler hazırlanıyor

 

clip_image025

Elastic Beanstalk uygulamayı ve uygulamaya dair tüm bileşenleri yapılandırdı. Yapılan işlemlerin detayına Logs kısmından ve Events kısmından bakabilirsiniz. Bu aşamada wordpress’i konfigüre etmek için Elastic Load Balancer’ın public ismi ile wordpress’i açabilmemiz gerekiyor. Durum aşağıdaki gibidir.

clip_image027

Elastic Load Balancer’ın public dns ismi hayli karmaşık. CNAME kaydı kullanarak sadeleştirebilirsiniz. Bu yazının ikinci bölümünde cloudfront’dan bahsedeceğim. İsterseniz ne yapmak istediğinize ondan sonra karar veriniz. Bu haliyle bizi karşılayan ilk nokta elastic load balancer’daki listener’dır. ELB gelen isteği içerideki sağlıklı instance’a iletiyor. ELB ve EC2 instance’ları Auto-Scale ’ing group ile ilişiklendirilmiş durumdadır. Sağlıklı instance’ın kaynaklarında bir darboğaz yaşanırsa, auto-scaling sistemi ortama yeni bir instance ekliyor, onu da ilkine benzer şekilde yapılandırıyor ve elastic load balancer arkasına alıyor. Auto scaling’in olması gerektiği gibi çalışabilmesi için wordpress web uygulamasının stateless mimaride çalışması gerekiyor.

Burada bırakıyorum.Stateless mimarinin yapılandırılması,ElastiCache,Cloudfront ve kalan detaylardan ikinci bölümde bahsedeceğim. Wordpress yapılandırmasını da bölümün sonuna bırakıyorum.

Herkese sorunsuz ve neşeli günler dilerim.

 

Kaynaklar:

http://en.wikipedia.org/wiki/Service_statelessness_principle

http://aws.amazon.com/releasenotes/AWS-Elastic-Beanstalk/3227428347751765/

https://www.pantz.org/software/mysql/mysqlcommands.html

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html

https://wordpress.org/download/

https://api.wordpress.org/secret-key/1.1/salt/

http://aws.amazon.com/documentation/

http://digwp.com/2012/05/complete-list-wordpress-files

http://www.howtospoter.com/web-20/wordpress/wordpress-guide-dissection-of-file-structure

http://www.wpexplorer.com/wordpress-internal-function

Yorumlar

 

Rıza ŞAHAN

Elinize sağlık.

Ağustos 30, 2015 18:36
 

Ugur DEMIR

Elinize sağlık.

Eylül 1, 2015 11:16
Kimliksiz yorumlar seçilemez kılınmış durumdadır.

Yazar: Barış AYDOĞMUŞOĞLU

Bilge Adam Bilişim Grubu A.Ş. Savunma Teknolojileri ve Mühendislik A.Ş. Symturk Ltd. Ziraat Teknoloji A.Ş. Doğuş Teknoloji A.Ş.

Bu Kategori

Hızlı aktarma