AWS CloudFormation şablonlarını değiştirme: Kodunuzu cilalayın

Parlak, yeni bir sorun bilet uygulaması örneğini kullanarak iş planından canlı bir uygulamaya SaaS çözümünü nasıl alacağımı gösterdim. Şimdiye kadar ele aldığımız konular:

  • Amazon Web Services ile parayla SaaS satıcısı nasıl olunur
  • AWS CloudFormation şablonlarıyla SaaS'a ilk adımlar
  • Yüksek düzeyde kullanılabilir bir küme oluşturmak için AWS CloudFormation kullanma
  • AWS CloudFormation şablonunun anatomisi

Bir AWS CloudFormation şablonunun çeşitli bölümlerini ayrıntılı olarak anlattığım geçen haftaki anatomi dersinden alıyorum, şimdi özel gereksinimlerime uyacak şekilde değiştirmeye hazırım - destek bilet hizmetimin yapısını otomatikleştiriyorum.

Büyütmek için tıklayın.

SaaS yapım işi artık yoğun teknik aşamaya geldi. Başınızı eriten karmaşık prosedürü aşağıda yazdım (kodumu kontrol ettiği için Drupal geliştirme ajansı Microserve sayesinde).

Amazon CloudFormation ile deneme yapmak gerçek paraya mal olur. Bu talimatları sadece biraz para harcamaktan memnunsanız uygulayın. Zaten AWS'ye kaydolduğunuzu varsayıyorum.

Gerekli tüm SaaS yapı işlerini tanımlamıyorum - masum insanları tüm gelişim süreci boyunca sürüklemeye gerek yok. Bu adımlar, temel bir çalışma durumuna ulaşmak için birkaç yapı taşını birbirine bağlar.

Amazon'un CloudFusion şablon dosyasının bir kopyasını edinin

Sıfırdan bir şablon yazarak düzgün yapmak yerine hızlı sonuç almak için Amazon'un şablonunu doğrayıp değiştiriyorum. "Kirli bir saldırının" ne olduğunu hiç merak ettiyseniz, bir tane yapmak üzeresiniz.

  1. Http://aws.amazon.com/cloudformation/aws-cloudformation-templates/ URL'sini açın. AWS CloudFormation Örnek Şablonları - ABD Doğu (Virginia) bölgesi sayfası görüntülenir.
  2. Multi-AZ Amazon RDS veritabanı örneği bulunan ve dosya içeriğini depolamak için S3 kullanan Yüksek Kullanılabilir Web Sunucusu adlı bağlantıyı bulun. Amazon burada kısa ve hızlı isimler kullanmıyor.
  3. Amazon'un web sitesinden iş istasyonunuza Drupal_Multi_AZ.template dosyasını indirin.
  4. Kopyanız için bir ad seçin. Benimkine aws-cfn-support-template.json adını verdim . Hayır, benim adım da kısa ve çabuk değil.
  5. Github veya Gitorious gibi bir kod deposu kullanıyorsanız, yeni sürümünüzü kontrol edin.

Artık düzenlenecek yerel kopyanız ve uzaktan yedeklemeniz (AWS'deki orijinal dosya) var.

AWS CloudFormation Şablonları "Kaynaklar" bölümünü değiştirin.

Burası bir tokmak ile koda basmaya başladığımız yer. Bir şablon dosyasının düzenini açıklayan "Kaynaklar" bölümünün ne anlama geldiğini öğrenmek için son yazımı kontrol edin.

Bu düzenlemeler yapılandırmayı değiştirir ve birkaç Drupal geliştirici hilesinde gizlenir - drush komutları, modüller ve kurulum profili.

Kopyalamak için çok fazla kod var mı? Tam şablonu github'da bulabilirsiniz.

FlexibleLoadBalancer yapılandırmasını değiştirme

Elastik yük dengeleyicileri, doğru ve yanlış söz konusu olduğunda kesinlikle esnek değildir. Basit bir OK yanıtı almalıdırlar (HTTP 200). Drupal sadece OK değil, bir dizi cevap verebilir .

Drupal'a sormak yerine README.txt gibi sıradan bir dosyayı kontrol edin.

  1. Şablon dosyasının kopyanızı düzenleyin. Bu satırları bulun:

    "HealthCheck" : {

    "Hedef": "HTTP: 80 /",

    Dosyanın yaklaşık yarısı kadar.
  2. Bu Hedef satırını değiştirin:

    "HealthCheck" : {

    "Hedef": "HTTP: 80 / README.txt",

Drupal kodunu güncelleme ve modül ekleme

Kaynaklar bölümü katıştırılmış bir bash betiği içerir. Bu benim son yazımda da açıklanıyor. Bu düzenlemeler bu komut dosyasını değiştirir.

Destek bileti sistemi için bazı ekstra modüller ekleyin. Bu dosyaların her sunucuya kopyalanmasını istiyorum. Modül dosyaları / var / www / html / sites / all / modülleri ile sonuçlanır. Modüller S3 kovasına girmez (S3 alanı / var / www / html / sites / default / files ).

Bu bölüm Linux yöneticileri, Drupal yöneticileri ve AWS yöneticileri tarafından kullanılan komutları içerir. Rm komutunun ne olduğunu biliyor musunuz? Drush kullandın mı CFN sinyali ne dersiniz?

1. bash betiğinin sonunu bulun. Şöyle görünüyor:

 "rm /home/ec2-user/settings.php\n",  
 
 "# All is well so signal success\n",  
 "/opt/aws/bin/cfn-signal -e 0 -r \"Drupal setup complete\" '", { "Ref" : "WaitHandle" }, "'\n" 

Bu boş satırın bulunduğu yere, rm komutunun altına ve # yorumun üzerine kod satırları ekleyeceksiniz.

2. Uygulama dosyalarını güncellemek için bu satırları ekleyin. Cloudformation, EC2 makineleri üretildiğinde eski drupal ve drush sürümlerini kurar. Her yeni EC2 sanal makinesi bu güncellenmiş dosyaları alacaktır.

 "# Update the code on all machines. \n",  
 "cd ~ec2-user \n",  
 "~ec2-user/drush/drush self-update --choice=2 --yes \n",  
 "cd /var/www/html \n",  
 "~ec2-user/drush/drush pm-updatecode --yes \n",  

3. Veritabanını dosyalarla eşleşecek şekilde güncelleyin. Kodun sadece ilk makineyi kontrol etmesi için sadece bir makinenin bunu yapmasını istiyorum. Tüm makineler aynı anda denerse, veritabanı büyük olasılıkla bozuk olacaktır.

 "# Update the database from the first machine only. \n",  
 "if  `hostname` = $first \n",  
 "then\n",  
 " ~ec2-user/drush/drush updatedb --yes \n",  
 "fi\n",  

4. Çalışmam için ihtiyacım olan modül dosyalarını ekleyin.

 "# Add modules. Many more are automatically added to this list. \n",  
 "# Files are copied to all machines. \n",  
 "~ec2-user/drush/drush pm-download acl commerce content_access entity rules support --yes \n",  

5. Veritabanını güncelleyerek modülleri etkinleştirin.

 "# Enable modules and rebuild the permissions table. The database holds this. \n",  
 "if  `hostname` = $first \n",  
 "then\n",  
 " ~ec2-user/drush/drush pm-enable commerce content_access support --yes \n",  
 " ~ec2-user/drush/drush php-eval 'node_access_rebuild();' \n",  
 "fi\n",  

6. Drupal'ın kendi dosyalarını okuyabildiğinden emin olun.

 "# Fix ownership and permissions. \n",  
 "chown -R root:apache /var/www/html \n",  
 "chmod 640 /var/www/html/sites/default/settings.php \n",  

7. Çalışmanızı kaydedin.

Yeni bulutunuzu oluşturun

Drupal kümesinin AWS örneğini çalıştırmak için adımları yeniden çalıştırın. Daha önceki yayınlarımda izlenecek prosedür ve ihtiyacınız olan değerler ele alındı.

Yeni sitenizi oluşturun.

    1. Yeni şablonunuzu bulun.
    2. Bulut başlatma prosedürünü izleyin, ama Amazon'un varsayılan şablonunu kullanmayın.
    3. Şablon Dosyası Yükle seçeneğini kullanarak yeni şablonunuzu yükleyin .
    4. Formları doldurun.
    5. CloudFormation yığınını oluşturun. Bunu çalıştırdığımda tamamlanması 20 dakika sürdü.
    6. İlerlemeyi görmek için Etkinlikler listesini yenileyin.

      Büyütmek için tıklayın.
      Yeni sitenizi kontrol edin.
        1. Yeni destek sitenizin URL'sini açın. Benimki http://supportti-elasticl-qbifcetbaa16-1886498031.eu-west-1.elb.amazonaws.com/admin/support. Bir giriş sayfası görünür.
        2. Yeni SiteAdmin ve SitePassword'unuzu kullanarak giriş yapın. Bir destek sayfası görünür.
          Temizlemek.

            İşiniz bittiğinde yeni CloudFormation yığınınızı yok edin.

              Bir anlama testi

              Crikey, okula geri dönmek gibi.

              Yeni bir Amazon VM her zaman güncelliğini yitirmiştir. Birkaç paketi için yamalar ve yükseltmeler mevcuttur. Bu şablonun yapmadığı bir şey, her sanal makinedeki paketleri güncellemektir.

              Yum güncelleme komutunu nereye koyardınız ?

              © Copyright 2020 | mobilegn.com