Anasayfa » Amazon Web Services Backup WordPress to S3

Makaleyi Paylaş

3. Parti Yazılımlar / Uncategorized

Amazon Web Services Backup WordPress to S3

Önceki yazılarımda elastic beanstalk,elasticache ve cloudfront ile web uygulamasının aws üzerinde stateless durumda yayınlanmasından bahsetmiştim. Beanstalk uygulamaların dağıtımı ve yönetimi için, elasticache veritabanlarında cache cluster için, cloudfront static içeriği ayırmak ve içerik dağıtım ağı(cdn) servisi olarak kullanılmaktadır.

Yazımda farklı bir servis sağlayıcısında yayınlanan web uygulamasının AWS üzerine aktarılmasından bahsedeceğim. Web uygulaması olarak wordpress uygulamasını seçtim. Çalışmamı yayınladığım web sitem üzerinde yaptım. Farklı bir servis sağlayıcısında wordpress üzerinde yayınladığım kişisel bloğumun altyapı mimarisini farklılaştırarak aws üzerine aldım. Konu kapsamlı olduğu için bu senaryoyu bir kaç parçaya böldüm. Test ettiğim yeni mimari şu şekildedir.

****

Yazımın bölümlerinde kullandığım başlıklar aşağıdaki gibi olacaktır.

Sponsor

Bölüm 1 AWS Backup WordPress to S3

Bölüm 2 AWS Elastic Beanstalk ve CloudFront servislerinin yapılandırılması

Bölüm 3 AWS Restore ve Static Content’in S3’e aktarılması

Bölüm 4 AWS Kontrol ve Değerlendirme

****

Yazı dizisinin tamamında aşağıdaki konuları inceleyeceğim.

        Kişisel bloğumun yedeğini almak için bir yöntem/eklenti(plugin) seçtim.

        Yedeği AWS S3 üzerine aldım.

        Elastic beanstalk ile modifiye ettiğim wordpress web uygulaması kodlarımı AWS’ye yükledim.

        Elastic Beanstalk’un sunduğu Elastic Load Balancer ve Auto-Scaling servislerinden faydalanmış oldum.

        WordPress’in static content’ini AWS S3 üzerine aktardım.

        Cloudfront ile distribution yapılandırarak static content’in AWS S3 üzerinden, dynamic content’in AMI(elastic block store,ebs) üzerinden sunulmasını sağladım.(Statelessness)

        S3, static web site hosting için bir yapılandırma seçeneği sunuyor!

        Yedek almak için kullandığım plugin ile aldığım yedeği AWS üzerindeki yeni ortama yükledim.

Yazımın bu bölümünde wordpress uygulamasın yedeğinin AWS S3’e alınmasından bahsedeceğim. WordPress’in yedeğinin alınması için çeşitli pluging’ler mevcut. Aralarında en kullanışlı olduğunu düşündüğüm backup plugin’i, http://updraftplus.com/ adresinde erişebileceğiniz plugin’dir.

clip_image002

Ekletinin premium versiyonunu kullanmanızı öneriyorum. Eklenti ile AWS S3’e yedek alabilmeniz için eklentide ve aws tarafında yapmanız gereken bazı ayarlar mevcut. AWS S3 üzerinde yedeklerinizi barındıracağınız bir bucket oluşturmalısınız. Bucket’e erişim izni olan bir IAM user oluşturmalısınız. IAM user’ın bucket’a erişim iznini IAM policy ile atayabilirsiniz. Eklenti üzerindeki ayarlar menüsünde, AWS S3’e erişimde kullanılacak erişim ve bucket bilgisini yapılandıracaksınız.

AWS tarafındaki önemli yapılandırmalardan biri, S3 bucket’a erişecek kullanıcı için hazırlanması gereken policy’dir(erişim izni). Aşağıdakine benzer bir policy ile gereken erişim iznini sağlayabilirsiniz.

{

    “Version”: “2012-10-17”,

    “Statement”: [

        {

            "Effect”: "Allow”,

            "Action”: [

                "s3:ListBucket”,

                "s3:GetBucketLocation”,

                "s3:ListBucketMultipartUploads”

            ],

            “Resource”: “arn:aws:s3:::bucket_ismi“,

            “Condition”: {}

        },

        {

            “Effect”: “Allow”,

            “Action”: [

                "s3:AbortMultipartUpload”,

                "s3:DeleteObject”,

                "s3:DeleteObjectVersion”,

                "s3:GetObject”,

                "s3:GetObjectAcl”,

                "s3:GetObjectVersion”,

                "s3:GetObjectVersionAcl”,

                "s3:PutObject”,

                "s3:PutObjectAcl”,

                "s3:PutObjectAclVersion”

            ]ss="MsoNormal" style="background: white; margin: 3.75pt 0cm; line-height: 15.6pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" align="left">            “Resource”: “arn:aws:s3:::bucket_ismi/*”,

            “Condition”: {}

        },

        {

            “Effect”: “Allow”,

            “Action”: “s3:ListAllMyBuckets”,

            “Resource”: “*”,

            “Condition”: {}

        }

    ]

}

 

AWS IAM servisinde oluşturduğum user’a üstteki policy’yi uygulamadım. Policy’nin alt kısmında ListAllBuckets iznini vermeden de deneyebilirsiniz. Bazı durumlarda bu izni olmadan S3 içeriği görüntülenemediğinden test hatası alıyorsunuz ama işleminizi gerçekleştirebiliyorsunuz(Ör: W3 Total Cache eklentisi ve aws entegrasyonu).

AWS’de oluşturduğum IAM user aşağıdaki gibidir.

clip_image004

Updraft eklentisinin yapılandırması için AWS tarafında üstteki bahsettiğim detaylar yeterlidir. Eklentide aşağıdaki ayarları yaparak S3’e yedek alabilirsiniz.

clip_image005

Yedeğe dahil etmek istediğiniz içeriği üstteki menüden seçiniz.

clip_image007

Database’in yedeklenmesinde şifreleme kullanmak için üstteki yapılandırmayı kullanabilirsiniz.

clip_image008

Raporlama için üstteki yapılandırmayı kullanabilirsiniz.

clip_image010

Eklentinin şimdilik desteklediği depolama alanları üstteki gibidir.

clip_image012

S3’e yedek alabilmesi için eklentiye üstteki bilgileri sağlamanız gerekiyor. Daha önce AWS tarafında IAM user’ını yapılandırmıştık. Oradaki bilgileri üstteki menülerde kullanıyoruz.

clip_image014

Eklentide yaptığınız ayarları kaydedikten sonra ayarları test ediniz. Test sonucu üstteki gibiyse iki farklı servis sağlayıcısı arasındaki bağlantıyı sağlamış oluyorsunuz.

clip_image015

Backup menüsünden yedek alma işlemini başlatabilirsiniz. Yedek işlemi tamamlandıktan sonra size e-mail gönderilecektir. S3’te açtığınız bucket’a bakarak, eklentinin alınan yedeği S3’te konumlandırdığını görebilirsiniz.

clip_image017

Test sisteminde aldığım yedek üstte görüldüğü üzere AWS S3 üzerine konumlandırılmıştır. Yazımın bu bölümünü tamamlamış oldum.

Herkese sorunsuz ve neşeli günler dilerim.

Makaleyi Paylaş

Cevap bırakın