AWS CloudFormation sablon anatómiája

Támogatási jegyszolgáltatásként mint SaaS-megoldást használva bemutattam, hogy bárki kihasználhatja az Amazon Web Services által kínált eszközöket, hogy elképzelését az üzleti tervből egy olyan termékké alakítsa, amely az ügyfelek számára elérhető a felhőn keresztül. Eddig tervezési és tervezési megfontolásokon dolgoztunk, IaaS réteget építettünk fel, és AWS CloudFormation sablonokat használtunk egy magasan elérhető fürt létrehozásához. Most készen állunk az alkalmazás polírozására.

A következő lépés az AWS CloudFormation sablon megváltoztatása a támogatási jegyszolgáltatás készítésének automatizálása érdekében. Van egy magas rendelkezésre állású fürt, Drupal, egy RDS adatbázis, tűzfalszabályok, terheléselosztó és így tovább. Fantasztikus dolog, amit elérhet egy webes felhasználói felülettel és néhány egérkattintással.

De ez nem elég fantasztikus. Meg kell szerkesztenem a CloudFormation sablont, hogy hozzáigazítsam az igényeimhez, de előbb tudnom kell, mi van benne, és hol kell elvégeznem a szükséges módosításokat. Az alábbiakban áttekintést adok az összes alkatrészről.

A szolgáltatás csiszolása azt jelenti, hogy belépünk a fejlesztői területre

Az AWS CloudFormation Drupal sablon által nyújtott szolgáltatás nem az, amit akarok. Meg fogom csinálni ezt a sablont itt, hogy elvégezzem a szükséges változtatásokat. Sajnos ez azt jelenti, hogy átkerülnek a fejlesztői területre. Az egész utazást nem fogom megtenni, mert a fejlesztő területe egy elhagyatott puszta, amelyet kellemetlen meglátogatni. Elég borítom, hogy megvilágítsam az utat.

Drupal modulok kombinációja

A SaaS cégek építik szolgáltatásaikat. Nem vesznek fel fehér címkével ellátott termékeket, és nem helyezik el a jelvényüket. A Drupal Core CMS eszközkészlettel, egy csomó opcionális extrával és sok fejlesztési idővel felépítem a támogatási jegyszolgáltatást.

A Drupal számára azonban rengeteg opcionális modul található, amelyeket össze tudok kötni a fejlesztési idő csökkentése érdekében.

  • A támogatási jegy szolgáltatás a támogatási modulból származik. A Támogatási modul biztosítja a szolgáltatásom üzleti végét.
  • A bevételszerzési mechanizmus egy sor kereskedelmi modulból származik. Ezek kezelik az e-kereskedelem oldalát. A Drupal Commerce egy nagy gyűjtemény, közel húsz telepíthető modullal és még sok más támogató modullal. Ezek biztosítják a keretet az ügyfelekkel való kapcsolattartáshoz, az adóhoz, a sorokhoz, a fizetéshez, a termékekhez és így tovább.
  • Ennek a prémium tartalomnak a vezérlését a Tartalom-hozzáférési modul és más dolgok, például a Szerepek hozzáférés-vezérlési mechanizmusa kezeli. Ezek a modulok összeragasztják a kereskedelem és a jegyek alkatrészeit.

Mi található az AWS CloudFormation sablonban?

Szerkeszthetek egy AWS CloudFormation sablon fájlt az igényeim szerint.

Kattints a kinagyításhoz.

Először meg kell értenem, hogy mi a sablon. Itt egy rövid áttekintés. A részletesebb leírást lásd az AWS útmutatóban a Bootstrapping Applications AWS CloudFormation segítségével.

A felhőalapú formációt létrehozó automatikus automatikus gremlinek az utasításokat egy olyan konfigurációs fájlból veszik, amely kissé így néz ki.

 { 
 "AWSTemplateFormatVersion": "verzió dátuma", 
 "Leírás": "Érvényes JSON karakterláncok akár 4K-ig", 
 "Paraméterek": { 
 gombok és értékek 
 }, 
 "Leképezések": { 
 gombok és értékek 
 }, 
 "Erőforrások" : { 
 gombok és értékek 
 }, 
 "Kimenetek": { 
 gombok és értékek 
 } 
 } 

Ez a szöveg, göndör zárójelekkel, idézetekkel és kettőspontokkal való liberális szórással, JSON (JavaScript Object Notation). A JSON olyan fejlesztők körében népszerű, akik nem akarják az XML szavasságát, de nem elég hűvösek a YAML számára.

A fenti példában szereplő kulcsok és értékek sor egy kicsit így néz ki egy valódi sablonfájlban.

 "S3Bucket": { 
 "Type": "AWS :: S3 :: Bucket", 
 "Tulajdonságok": { 
 "AccessControl": "PublicRead", 
 "WebsiteConfiguration": { 
 "IndexDocument": "index.html", 
 "ErrorDocument": "error.html" 
 } 
 } 
 } 

A behúzott dolgok csak egy beágyazott kulcs / érték párt tartalmaznak. Bonyolult és csak a jéghegy csúcsa. A sablon fájlok nerd mennyország.

A Launch Config

A sablonfájl Erőforrások szakasza a LaunchConfig nevű alszakaszt tartalmazza . Ez a szakasz ezzel a sorral kezdődik.

"LaunchConfig": {

A LaunchConfig szakasz 200 okos ügyességből áll. A fájlok listája található a telepítéshez, letöltéshez és létrehozáshoz. Beágyazva van egy teljes bash szkript is.

A fürtözött Drupal sablont használom. Itt láthatod: Kiválóan elérhető webszerver, Multi-AZ Amazon RDS adatbázispéldányval, és az S3 használatával a fájltartalom tárolására.

Később néhány változtatást hajt végre a sablon LaunchConfig szakaszában, és létrehozom egy fürtöt.

A beágyazott bash szkript

A LaunchConfig szakaszban található bash szkript a fájl alja felé található. A szkript körülbelül 60 sor hosszú, és így néz ki.

"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" 
 
  }} 

Ennek a zavarónak látszó sablonkódnak az a feladata, hogy ezeket a sorokat egy bash szkriptbe tegye.

A bash szkript olyan parancsok gyűjteménye, amelyek mindenféle dolgot elvégznek a rendszer számára. A rendszergazdák évtizedek óta írnak szkripteket. Ez az okos bash szkript szerkeszti az Apache webszerver konfigurációját, felsorolja az összes új EC2 gépet, beállít egy alapvető Drupal webhelyet és így tovább.

Ezt a szkriptet minden új EC2 virtuális gépre lemásolja. A / var / lib / cloud / data / scripts / könyvtárba kerül. Az összes által létrehozott üzenet a /var/log/cloud-init.log könyvtárba kerül .

Az EC2 gépek fájljait és könyvtárait

Az alkalmazás terjesztése sok szerver között bonyolult. Tudnia kell, hogy mit másol, mi megosztott, és hová kell mennie.

Sok fájl másolásra kerül a gépek között. Az összes általános kódot (Drupal Core) minden új szerver a webhely könyvtárába másolja (a / var / www / html mappában található).

Az S3 vödör

A fájlok egy részét a gépek megosztják. A fájlrendszer egy része valójában AWS S3 (egyszerű tárolási szolgáltatás) vödör. Ez a megosztott terület mind a három szerverre telepítve van (on / var / www / html / site / alapértelmezett / fájlok ). Néhány Drupal fájl elfér ebben az S3 vödörben.

Az S3 vödröket általában a webhely statikus tartalmához használják, nem pedig végrehajtható fájlok, naplók és más trükkös fájlok helyett. Ez az S3 vödör az ügyfelek által feltöltött fájlokat tartalmazza. Egy ügyfél feltölti a fájlt egyszer, majd az összes webszerver válaszolhat a fájlra vonatkozó kérésekre.

Sablon biztonsági mentés

Ne zavarja, ha az új sablont az interneten tárolja. Megadhat egy URL-t a CloudFormation számára a sablonfájl megszerzéséhez, de csak az AWS S3-mal (Egyszerű tárolási szolgáltatás) működik. Az AWS itt tárolja sablonjait. Itt tárolja a feltöltött sablont. A fejlesztőknek, akik olyan kódtárot használnak, mint a Github vagy a Gitorious, nincs szerencséjük.

© Copyright 2020 | mobilegn.com