AWS CloudFormation -mallin anatomia

Käyttämällä tukilippupalvelua SaaS-ratkaisuna esimerkkinä, olen osoittanut, kuinka kuka tahansa voi hyödyntää Amazon Web Services -palveluiden tarjoamia työkaluja viedäksesi ideasi liiketoimintasuunnitelmasta tuotteeseen, joka on asiakkaidesi käytettävissä pilvipalvelun kautta. Toistaiseksi olemme työskennelleet suunnittelussa ja suunnittelussa, luoneet IaaS-kerroksen ja luoneet erittäin käytettävissä olevan klusterin AWS CloudFormation -malleilla. Olemme nyt valmiit aloittamaan sovelluksen kiillottamisen.

Seuraava vaihe on muuttaa AWS CloudFormation -malli automatisoidaksesi tukilippujen palveluni. Minulla on korkea käytettävyys klusteri, Drupal, RDS-tietokanta, palomuurisäännöt, kuormituksen tasapainottaja ja niin edelleen. Se on fantastinen asia saavuttaa verkon käyttöliittymällä ja muutamalla hiiren napsautuksella.

Mutta se ei ole tarpeeksi fantastinen. Minun on muokattava CloudFormation-mallia lähentääksesi sitä tarpeisiini, mutta ensin minun on tiedettävä, mitä siinä on ja missä minun on tehtävä tarvittavat muutokset. Alla annan sinulle yleiskuvan kaikista osista.

Palvelun kiillottaminen tarkoittaa pääsyä kehittäjän alueelle

AWS CloudFormation Drupal -mallin tarjoama palvelu ei ole mitä haluan. Aion mukauttaa tätä mallia täällä tehdäksesi tarvittavat muutokset. Valitettavasti tämä tarkoittaa siirtymistä kehittäjäalueelle. En tee koko matkaa, koska kehittäjäalue on autio joutomaa, johon on epämiellyttävää käydä. Peitän tarpeeksi valaisemaan tietä.

Yhdistelmä Drupal-moduuleja

SaaS-yritykset rakentavat palveluitaan. He eivät ota valkoisella etiketillä varustettuja tavaroita ja kiinnitä merkintää. Rakennan tukilippupalveluni Drupal Core CMS -työkalupakilla, joukolla valinnaisia ​​lisävarusteita ja paljon kehitysaikaa.

Drupalille on kuitenkin paljon valinnaisia ​​moduuleja, jotka voin kytkeä yhteen vähentääksesi kehitysaikaa.

  • Tukilippupalvelu tulee tukimoduulista. Tukimoduuli tarjoaa palveluni liiketoiminnan loppuun.
  • Ansaintamekanismi tulee sarjasta Commerce- moduuleja. Ne hoitavat sähköisen kaupan puolella. Drupal Commerce on iso kokoelma, jossa on lähes kaksikymmentä asennettavaa moduulia ja monia muita tukimoduuleja. Ne tarjoavat puitteet asiakkaille, veroille, rivikohdille, maksuille, tuotteille ja niin edelleen.
  • Tämän premium-sisällön hallintaa hallinnoi Content Access -moduuli ja muut asiat, kuten Roles- käyttöoikeuden hallintamekanismi. Nämä moduulit yhdistävät kaupan ja tukevat lippujen osia.

Mitä AWS CloudFormation -mallissa on

Voin muokata AWS CloudFormation -mallitiedostoa tarpeitasi vastaavasti.

Klikkaa suurentaaksesi.

Ensin minun on ymmärrettävä, mikä malli on. Tässä on lyhyt kuvaus. Yksityiskohtaisempi kuvaus on AWS-oppaassa Käynnistyssovellukset AWS CloudFormaation kautta.

Pienet automaattiset pilvihahmot, jotka rakentavat CloudFormaation, ottavat heidän ohjeensa määritystiedostosta, joka näyttää hiukan tältä.

 { 
 "AWSTemplateFormatVersion": "version päivämäärä", 
 "Kuvaus": "Voimassa olevat JSON-merkkijonot enintään 4 kt", 
 "Parametrit": { 
 avaimet ja arvot 
 }, 
 "Kartoitukset": { 
 avaimet ja arvot 
 }, 
 "Resurssit": { 
 avaimet ja arvot 
 }, 
 "Tulokset": { 
 avaimet ja arvot 
 } 
 } 

Tämä teksti, jossa on vapaasti siroteltu kiharanauhoja, lainausmerkkejä ja kaksoispisteitä, on JSON (JavaScript Object Notation). JSON on suosittu kehittäjien keskuudessa, jotka eivät halua XML: n sananmukaisuutta, mutta eivät ole riittävän viileitä YAML: lle.

Yllä olevan esimerkin näppäimet ja arvorivi näyttävät hiukan tällaiselta oikeassa mallitiedostossa.

 "S3Bucket": { 
 "Type": "AWS :: S3 :: Bucket", 
 "Ominaisuudet": { 
 "AccessControl": "PublicRead", 
 "Verkkosivunmääritys": { 
 "IndexDocument": "index.html", 
 "ErrorDocument": "error.html" 
 } 
 } 
 } 

Kaikki sisennetyt jutut ovat kuorma sisäkkäisiä avain- / arvopareja. Se on monimutkaista, ja se on vain jäävuoren huippu. Mallitiedostot ovat nörtti taivasta.

Käynnistä kokoonpano

Mallitiedoston Resurssit- osa sisältää alaosan nimeltä LaunchConfig . Tämä osa alkaa tällä rivillä.

"LaunchConfig": {

LaunchConfig-osa on 200 riviä älykkyyttä. Siinä on luettelo tiedostoista, jotka voidaan asentaa, ladata ja luoda. Siihen on upotettu myös koko bash-skripti.

Käytän klusteroitua Drupal-mallia. Voit nähdä sen täältä: Helposti saatavissa oleva Web-palvelin, jossa on Multi-AZ Amazon RDS-tietokanta-ilmentymä ja S3: n käyttö tiedostojen sisällön tallentamiseen.

Myöhemmin teen muutaman muutoksen tämän mallin LaunchConfig- osioon ja luon klusterin.

Upotettu bash-komentosarja

LaunchConfig- osan bash-komentosarja sijaitsee tiedoston alaosaa kohti. Komentosarja on noin 60 riviä pitkä ja näyttää tältä.

"UserData" : { "Fn::Base64" : { "Fn::Join" : "",  
  "#!/bin/bash -v\n",  
  "yum update -y aws-cfn-bootstrap\n",  
 ... 
 ... 
 ... 
  "# All is well so signal success\n",  
  "/opt/aws/bin/cfn-signal -e 0 -r \"Drupal setup complete\" '", { "Ref" : "WaitHandle" }, "'\n" 
 
  }} 

Tämän häiritsevän näköisen mallikoodin tehtävänä on laittaa kaikki nämä rivit bash-komentosarjaan.

Bash-skripti on kokoelma komentoja, jotka tekevät kaikenlaisia ​​asioita järjestelmälle. Järjestelmänvalvojat ovat kirjoittaneet skriptejä vuosikymmenien ajan. Tämä taitava bash-skripti muokata Apache-verkkopalvelimen kokoonpanoa, luettelee kaikki uudet EC2-koneet, perustaa Drupalin perussivuston ja niin edelleen.

Tämä komentosarja kopioidaan jokaiseen uuteen EC2-virtuaalikommenttiin. Se päätyy hakemistoon / var / lib / cloud / data / scripts / . Kaikki sen tuottamat viestit päätyvät hakemistoon /var/log/cloud-init.log .

EC2-koneiden tiedostot ja hakemistot

Sovelluksen jakaminen monille palvelimille on hankalaa. Sinun on tiedettävä, mitä kopioidaan, mitä jaetaan ja minne sen kaiken pitäisi mennä.

Paljon tiedostoja kopioidaan koneiden välillä. Kaikki yleinen koodi (Drupal Core) kopioidaan kunkin uuden palvelimen verkkosivustohakemistoon (se on / var / www / html ).

S3-kauha

Osa tiedostoista on jaettu koneiden kesken. Yksi bitti tiedostojärjestelmästä on oikeastaan ​​AWS S3 (Simple Storage Service) -ämpäri. Tämä jaettu alue on asennettu kaikkiin kolmeen palvelimeen ( / var / www / html / sivustot / oletus / tiedostot ). Jotkut Drupal-tiedostot sijaitsevat tässä S3-kauhassa.

S3-kauhoja käytetään yleensä verkkosivustojen staattiseen sisältöön, eikä suoritettaviin tiedostoihin, lokiin ja muihin hankaliin tiedostoihin. Tämä S3-kauha pitää asiakkaan tiedostojen lataukset. Yksi asiakas lataa tiedoston kerran, sitten kaikki verkkopalvelimet voivat vastata tiedoston pyyntöihin.

Mallin varmuuskopio

Älä vaivaudu tallentamaan uutta mallia verkossa. Voit antaa CloudFormation -osoitteelle URL-osoitteen mallitiedoston hankkimiseksi, mutta se toimii vain AWS S3: n (Simple Storage Service) kanssa. Siellä AWS tallentaa mallit. Tällöin ladattu malli tallennetaan. Kehittäjät, jotka käyttävät kooditietovarastoa, kuten Github tai Gitorious, eivät ole onnekkaita.

© Copyright 2020 | mobilegn.com