WordPress Dosyalarını Amazon S3’e Yükleme ve CloudFront CDN Kurulumu

aws
amazon-cloudfront
wordpress
amazon-s3

(Serdal Kepil) #1

Bu makalede bir WordPress sitesinin Amazon S3 ve CloudFront CDN servisleri ile nasıl entegre edileceğini inceleyeceğiz.

Amazon S3, AWS’in %99.999999999 oranında sürekliliğini garanti ettiği, veri formatı farketmeksizin her türlü uygulama için kullanılabilecek bulut veri depolama servisidir.

Amazon CloudFront, resim dosyaları, html, css, php gibi dinamik ve statik web içeriklerinin dağıtımını hızlandırmak için kullanılabilecek bir web servisi yani CDN (Content Delivery Network – İçerik Dağıtım Ağı)’dir. CDN, dünya çapına yayılmış edge sunucuları adı verilen bir ağdan oluşur. Kullanıcı nereden web sitenize erişirse, ona en yakın ‘endpoint’ten içerik dağıtımı yapılır. The Amazon CloudFront Global Edge Network hakkında detaylı bilgiye ve lokasyonlara https://aws.amazon.com/cloudfront/details/ linkinden ulaşabilirsiniz.

Amazon S3 ve CloudFront CDN servisi kullanmak bize neler sağlar?

  • Sitenizin hızı yükselir,
  • Hızın yükselmesi SEO’yu olumlu yönde etkiler,
  • Web sunucusu üzerindeki yük ve trafik azalır,
  • Kullanıcı memnuniyeti artar,
  • Dosyaları oldukça kaliteli bir altyapıda yedeklemiş olursunuz.

Maliyeti?
AWS Free Usage Tier kapsamında S3’ü, ilk yıl 5 GB kapasite ile her ay sıfırlanan 20000 get, 2000 put talebi ve 15 GB veri transfer çıkışını ücretsiz olarak kullanabilirsiniz. İlk yıldan sonra da fiyatlar gayet uygun görünüyor. Detaylı olarak hesaplama yapmak isteyenler AWS’in aylık maliyet hesaplayıcısına http://calculator.s3.amazonaws.com/ linkinden ulaşabilirler.

WordPress tarafında eklenti olarak Delicious Brains tarafından geliştirilen Amazon Web Services ve WP Offload S3 Lite ücretsiz eklentilerini kullanacağız.

İlk iş olarak AWS hesabınız yoksa onu oluşturmalısınız. https://aws.amazon.com/free/ linkine tıklayıp yönergeleri takip ettiğinizde kısa sürede hesabınızı oluşturabilirsiniz. Kredi kartı bilgilerini, hesabınızın doğrulanması için vermeniz gerekiyor. AWS tarafından kredi kartınızdan 1$’lık bir ücret tahsil edilip sonrasında geri yatırılıyor. Kullanımınıza bağlı olarak servis ücretleri kredi kartınızdan tahsil edilebilir ama hesabınızı kullanmadığınızda herhangi bir kesinti yapılmıyor.

1. Adım: AWS Ayarları

AWS Console’a giriş yaptıktan sonra IAM (Identity Access Manager) servisine giriş yapıyoruz. Önce Users sonra Add User kısmına tıklıyoruz.

Kullanıcı adı alanını doldurup Programmatic Access’i seçiniz. Sonrasında Next butonuna tıklayınız.

Attach Existing Policies Directly’i seçiniz ve Create Policy butonuna tıklayınız. Yeni bir pencere açılacaktır. Mevcut pencereyi kapatmayın, diğerine geçin.

Create Your Own Policy kısmındaki Select butonuna tıklayın.

Bir Policy adı ve açıklaması alanlarını doldurun. Policy Document kısmına aşağıdaki kodu kopyalayın.

{
 "Version": "2012-10-17",
 "Statement": [
 {
 "Effect": "Allow",
 "Action": [
 "s3:CreateBucket",
 "s3:DeleteObject",
 "s3:Put*",
 "s3:Get*",
 "s3:List*"
 ],
 "Resource": [
 "arn:aws:s3:::*"
 ]
 }
 ]
 }

Görünüm aşağıdaki gibi olacaktır. Create Policy butonuna tıklayınız.

Önceki açık olan pencereye geri dönün. Reflesh butonuna basın ve oluşturduğunuz Policy’i bulup yanındaki çeki işaretleyin. Sonra Next butonuna ve Create User butonuna tıklayın.

Aşağıdaki gibi başarı mesajı görüntülenecektir. Bu sayfada bulunan Access Key ID ve Secret access key bize WordPress ve AWS arasındaki bağlantı için gerekiyor. Bunları ekrandan kopyalayabilir veya Download .csv ile bu bilgileri güvenli bir yere indirebilirsiniz.

2. Adım: WordPress Ayarları

Access Key ID ve Secret access key aşağıdaki şekilde WordPress’in dosyalarının bulunduğu sunucudaki wp-config.php dosyasına eklenmelidir. Bunu bir FTP programı veya varsa hosting servisinizin dosya yöneticisi ile yapabilirsiniz.

define('DBI_AWS_ACCESS_KEY_ID', '********************');
define('DBI_AWS_SECRET_ACCESS_KEY', '************************************');

Bu bilgileri girip dosyayı kaydettikten sonra WordPress yönetim panelinden Amazon Web Services ve WP Offload S3 Lite eklentilerini yüklüyoruz.


Yüklemeler ve aktivasyonlar bittikten sonra sayfayı yenileyip sol menüde S3 and CloudFront’a tıklayın.

Create New Bucket butonuna tıklayıp Bucket Name veriyoruz. Bucket, S3 altında tanımlanan verilerin konulacağı ana klasördür. Region altında istediğiniz yeri seçebilirsiniz. Ama yakın olan Frankfurt’u seçmekte fayda var.

Sonrasında gelen ekranda değişiklik yapmadan Save Changes’a tıklayınız.

Yeni bir görsel yüklediğinizde detaylarında S3 linkini ve özelliklerini görebilirsiniz.

3. Adım: AWS CloudFront Ayarları

Medya linklerinde S3’ü görebildiysek dosyalarımızı başarılı olarak AWS’e taşıyoruz demektir. Şimdi sıra CloudFront’un dağıtım ayarlarını yapmaya geldi.
AWS Console’dan CloudFront servisinin sayfasını açıyoruz. Create Distribution butonuna tıklıyoruz.

Sonrasında gelen sayfada Web başlığının altındaki Get Started butonuna tıklıyoruz.

Origin Domain Name alanında WordPress üzerinden oluşturduğumuz ‘bucket’i seçiyoruz. Origin Path alanını boş bırakıp diğer ayarları da değiştirmiyoruz. Sayfanın alt kısmından Create Distribution butonuna tıklayıp işlemi tamamlıyoruz.


CloudFront sayfasındaki listede oluşturduğumuz ‘distribution’ı görebilirsiniz. Status alanı In Progress’ten Deployed durumuna geçtikten sonra Domain Name alanında cloudfront.net ile biten web adresini kopyalıyoruz.

CloudFront adresini kopyaladıktan sonra WordPress yönetim panelinden S3 and CloudFront ayarlarına geliyoruz. CloudFront’u açık duruma getirip altındaki alana bu web adresini kopyalıyoruz.

Ayarları kaydettiğimizde işlem bitmiş olacaktır. :slight_smile:

CloudFront kendi domain adınızı (Custom Domain) da ayarlayabiliyorsunuz. (cdn.websayfaniz.com gibi) SEO için daha etkili olduğu söyleniyor.

Bir sonraki AWS makalesinde görüşmek üzere.


(Hayrettin Şendil) #2

Hocam elinize sağlık.
Bu arada bugün Amazon Türkiye ofisinde yaptığım toplantıda Türkiye için CDN ayağının kurulduğunu ve bunun için şirket açıldığının bilgisini verdiler.
Ayrıca DATACENTER kurulum sırasına alındığımızı da belirttiler. Güzel haberler gelmeye başladı :slight_smile:


(Serdal Kepil) #3

Çok güzel haber. Teşekkürler :slight_smile:


(ali) #4

Hocam merhaba,

Açıklayıcı yazınız için teşekkürler.
Muhtemelen yazınızdan sonra bir takım güncellemeler gelmiş.
Amazon Web Service eklentisi artık kullanılmıyormuş.
Bu arada ben diğer tüm işlemleri tarif edildiği şekilde uyguladım /sadece keyy’leri wp-config dosyasına eklemedim. Çünkü WP Offload S3 Lite eklentisinin settings/ayarlar kısmında bu keyy’leri girebildiğimizi gördüm ve oradan girdim.
Sonrasında tüm işlemler bittikten sonra medya’yı kontrol ettiğimde fotoğrafların altında ‘‘This item has not been copied to S3 yet.’’ ibaresi vardı. Bir yerde hata yaptığımı düşünmemekle birlikte neden böyle olmuş olabilir diye danışmak istedim.


(Eren Kocakaplan) #5

merhaba, amazon cdn kurdum ancak sadece yeni görseller ekleniyor. eskiler yine kendi sitem üzerinden yükleniyor. ek olarak mobil de görseller yüklenmiyor. yardımcı olabilir misiniz?


(Serdal Kepil) #7

Selamlar, makaleyi en kısa zamanda güncelleyeceğim.

Önemle belirtmek isterim ki; Aramızda AWS tarafından profesyoneller olsa da bu site resmi olarak AWS tarafından güncellenen bir site değildir. Makaleler güncelliğini yitirebilir. Buna tepki olarak yapılan yorumlarda bunu dikkate alırsanız seviniriz.


(Serdal Kepil) #8

Mobilde aldığınız hatalar nedir?


(Yasir) #9

Bu konuda kullanılan eklenti ve aws panellerinde değişikliğe gidildi, konu güncelliğini yitirdi sayılır.
Wordpress - AWS CDN güncel uygulamasını şuan kullanıyorsanız yeni konu yazabilir misiniz ?
Teşekkürler