GNU/Linux >> Znalost Linux >  >> Linux

Jak automatizovat své zdroje AWS pomocí šablon CloudFormation

AWS CloudFormation je služba, která umožňuje správcům systému nastavit a spravovat celou kolekci zdrojů AWS – včetně jejich konfigurací, závislostí a vzájemných vztahů mezi nimi – v jediném příkazu. Mohou také provádět změny ve stávající infrastruktuře bez zastavení nebo opětovného nasazení aplikací běžících na ní.

AWS Cloudformation vám umožňuje nakonfigurovat vaši infrastrukturu jako kód. Je to v podstatě infrastruktura jako kódový stroj, který funguje v cloudu a pomáhá uživatelům poskytovat a spravovat výpočetní, úložné a další zdroje. Šablona CloudFormation je soubor JSON s pokyny, jak vytvořit nebo aktualizovat prostředky AWS. K vytváření šablon můžeme použít AWS CLI, AWS SDK jako boto3 nebo službu AWS CloudFormation.

CloudFormation poskytuje mnoho výhod jako:

  • Snadné použití:CloudFormation používá formát šablony, který vám umožňuje popsat všechny atributy a vztahy vašeho zdroje AWS na jednom místě.
  • Agilita uvedení na trh:CloudFormation vám umožňuje vytvářet a nasazovat vaše zdroje AWS jako kód.
  • Vysoká úroveň automatizace:CloudFormation transformuje kód na vysoké úrovni do sady jednoduchých šablon, které lze použít k vytvoření nebo aktualizaci zdrojů AWS.

Pokud chcete zautomatizovat nasazení své pracovní zátěže na AWS, použití CloudFormation je jedním z nejlepších způsobů, jak toho dosáhnout.

V tomto článku vám ukážeme jemný úvod do CloudFormation a použijeme CloudFormation k automatizaci vašich zdrojů AWS. Tato příručka používá k demonstraci zdroje S3. Po tomto tutoriálu budete moci vytvářet, aktualizovat a odstraňovat řadu zdrojů AWS pomocí CloudFormation. Můžete se také naučit, jak začít vytvářet vlastní šablonu CloudFormation.

Předpoklady

Abyste mohli postupovat podle tohoto návodu, potřebujete následující předpoklady:

  • AWS CLI nainstalované na vašem místním počítači ve verzi 1.6.1 nebo vyšší verzi a nakonfigurované s výchozí oblastí. Stejná verze by měla být nakonfigurována také pro Python 2.6 nebo 3+.
  • Základní znalost služeb AWS a určité zkušenosti s AWS Console.

Vytvoření prvního balíčku

Nyní, když máte připravené předpoklady, začněme konfigurací a vytvořením vašeho prvního zásobníku.

1. Otevřete svůj oblíbený prohlížeč. Přejděte do tohoto úložiště GitHub a stáhněte si tři soubory na místní pevný disk.

  • createst.json
  • updatestack1.json
  • updatestack2.json

2. Nyní přejděte do Konzole AWS ---> CloudFormation .

3. Zobrazí se následující obrazovka. Klikněte na Vytvořit zásobník ---> S novými zdroji .

4. Zobrazí se následující obrazovka. Klikněte na Šablona je připravena --->Nahrajte soubor šablony ---> Vyberte soubor ----> Vyberte si svůj createstack.json soubor, který jste stáhli dříve ---> Další .

Když vytváříte nový balíček, musíte pro něj poskytnout šablonu. Můžete to udělat třemi způsoby:

  • Šablona je připravena :vyberte tuto možnost, pokud již máte šablonu v ruce. Pokud ne, přejděte na další možnost.
  • Použijte vzorovou šablonu :pomocí této možnosti získáte náskok při vytváření šablony. Uživatelská příručka AWS poskytuje několik příkladů šablon CloudFormation.
  • Cvytvořte šablonu v Návrháři :AWS CloudFormation Designer je nejnovější způsob, jak vytvořit svůj zásobník. Používá rozhraní přetahování, podobné jiným oblíbeným nástrojům, jako je Sharepoint, které vám pomůže vytvořit šablonu.

Tato ukázka používá první možnost, „Šablona je připravena“, protože šablony již máte v ruce (soubory, které jste si stáhli na disk).

Můžete otevřít createstack.json soubor ve svém editoru a podívejte se na něj. V createstack.json uvidíte následující řádky soubor.

  • "Zdroje":{ je sekce, kterou AWS CloudFormation vytváří. Je to seskupení všech fyzických zdrojů, které budete vytvářet.
  • "catpics":je logický zdroj, jehož typ je S3 Bucket.
  • "Typ":"AWS::S3::Bucket" je fyzický zdroj, který AWS CloudFormation vytvoří.

5. Na další obrazovce zadejte název zásobníku (htf ) a klikněte na Další . Každý zásobník vyžaduje jedinečný název v oblasti AWS, abyste se mezi nimi mohli lišit. Zde nelze použít žádné speciální znaky, pouze písmena, čísla a podtržítka (bez mezer). AWS automaticky generuje jedinečné ID zásobníku pro snadnou identifikaci.

6. Na další obrazovce ponechte výchozí nastavení a klikněte na Další.

7. Na další obrazovce ponechte výchozí nastavení a klikněte na Vytvořit zásobník .

V tomto okamžiku AWS CloudFormation načte šablonu a vytvoří pro vás zásobník. CloudFormation prochází každou část šablony a vytváří pro ni odpovídající fyzický zdroj. V některých případech AWS CloudFormation provede několik kontrol vaší šablony, aby se ujistil, že je vše na svém místě. Pokud zjistí, že je něco špatně, zobrazí se chybová zpráva, která popisuje, v čem je problém a jak jej opravit.

Proces vytváření trvá asi 4-5 minut, než jej vytvoříte. Co se děje, můžete vidět, když se podíváte na stav zásobníku na řídicím panelu CloudFormation, jak je znázorněno níže. Můžete vidět obrázky logické prostředky na levé straně a v každém z těchto prostředků můžete vidět fyzické prostředky, které pro ně AWS CloudFormation vytváří (CREATE_IN_PROGRESS ).

Můžete přejít na kartu zdrojů a zobrazit fyzické zdroje vytvářené pro tento zásobník. V tomto případě se jedná o Bucket S3 s názvem catpics s ID fyzických zdrojů  z htf-catpics-1roqn54xwm3of, jak je uvedeno níže.

8. Nyní přejděte na hlavní panel S3. Na řídicím panelu S3 můžete vidět objekty vytvářené v bucketu. V tomto případě je název zásobníku pro bucket S3 htf-catpics-1roqn54xwm3of , jak můžete vidět níže.

Můžete vidět, že název kbelíku se řídí tímto vzorem:název vašeho zásobníku (htf )-název vašeho logického zásobníku (catpics )-náhodný řetězec (1roqn54xwm3of ). Tento vzorec je pro vás velmi důležité znát. Když v šabloně neurčíte ID vašich fyzických zdrojů, AWS CloudFormation použije tento vzor k vytvoření názvu vašich zdrojů. Síla toho je, že nyní můžete použít stejnou šablonu k vytvoření více hromádek; AWS CloudFormation je automaticky pojmenuje za vás!

Pro službu jako S3 je jedinečný název velmi důležitý; název segmentu musí být globálně jedinečný, abyste do něj mohli ukládat data. Názvy vašich segmentů nemohou být stejné. Pokud se pokusíte jej pojmenovat stejným názvem, nepodaří se vám vložit objekty do kbelíku.

Je důležité pochopit, proč na tom záleží. Protože u CloudFormation se doporučuje nepojmenovávat explicitně ID fyzického zdroje ve vaší šabloně. Místo toho nechte AWS CloudFormation, aby vám jej vytvořil automaticky. To znamená, že můžete svou šablonu znovu použít k vytvoření více hromádek s různými prostředky, aniž byste se museli starat o konflikty pojmenování. Šablonu můžete použít jednou, desetkrát nebo stokrát a CloudFormation podle toho zpracuje změny pojmenování.

Aktualizace zásobníku

Nyní, když jste vytvořili svůj první zásobník pomocí AWS CloudFormation, pojďme se podívat, jak zásobník aktualizovat. Jak aktualizovat zásobník je velmi důležitý koncept, kterému je třeba porozumět, a to jak pro produkční použití, tak pro vaši zkoušku. Pravděpodobně budete při zkoušce požádáni, abyste něco změnili ve své šabloně, nebo možná budete muset něco aktualizovat ve svém zásobníku.

V této části provedete některé změny šablon a použijete tyto aktualizované šablony k aktualizaci zásobníku a vyhodnocení změn provedených ve vašich zdrojích.

Obecně platí, že při aktualizaci zásobníků v CloudFormation. Vezmete šablonu, kterou jste použili k vytvoření zásobníku, a buď přidejte nové zdroje, aktualizujte stávající zdroje nebo odeberte stávající zdroje.

1. Otevřete souborupdatestack1.json soubor, který jste si dříve stáhli do svého editoru, uvidíte následující bloky kódu. Porovnejme tuto šablonu se souborem createst.json šablonu, kterou jste použili dříve. Můžete vidět, že přidáme další logický zdroj s názvem dogpics . Ještě důležitější je, že nebyly provedeny žádné změny v žádných existujících logických zdrojích, což jsou stávající catpics . Zdroje catpics nebyly změněny ani odstraněny. Přidám pouze další logický zdroj, kterým je dogpics .

2. Přejděte na svůj řídicí panel CloudFormation. Vyberte svůj zásobník (htf ) a klikněte na Aktualizovat .

3. Na další obrazovce vyberte Nahradit aktuální šablonu ---> Nahrajte soubor šablony ---> Vyberte soubor ---> Vyberte svůj updatestack1.json soubor ---> Další .

4. Na další obrazovce klikněte na Další ---> Další ---> Aktualizovat hromada, Jak je ukázáno níže. Můžete vidět, že CloudFormation zobrazuje změny, které budou provedeny. V tomto případě jsme přidali logické ID s názvem dogpics. CloudFormation nám také ukazuje akci, která bude provedena (Přidat ) a typ logického zdroje (AWS::S3::Bucket).  Náhrada sloupec je prázdný.

Stejně jako při vytváření zásobníku se můžete podívat na události aktualizace ze stránky zásobníku. Všechny aktualizace se provádějí z CloudFormation. V tomto případě se předá další logické ID prostředku, což je dogpics .

Po dokončení procesu aktualizace můžete níže vidět, že máme oba obrázky a dogpics zdroje v našem zásobníku.

Přejděte na svůj řídicí panel S3 a uvidíte, že další segment dogpics s názvem htf-dogpics-4qesklu84ugq byl vytvořen. Můžete vidět, že pojmenování segmentu pomocí stejného vzoru se řídí řetězcem název zásobníku-logický název zásobníku-náhodný.

V tomto okamžiku pouze přidáváme nové logické prostředky do našich zdrojů, což je docela jednoduché a s nízkým rizikem. Nyní vám ukážeme, jak odstranit zdroje ze zásobníku.

Odebereme zdroj dogpic z našeho zásobníku. To je riskantnější než přidávání, protože smazáním zdrojů by se mohl rozbít váš zásobník. Protože se stále učíme, pojďme si to procvičit odstraněním našeho zdroje dogpic, abychom viděli, co se stane

5. Přejděte na svůj řídicí panel CloudFormation. Vyberte své htf zásobníku, klikněte na Aktualizovat ---> Nahradit aktuální šablonu ---> Vyberte soubor ---> tentokrát vybereme soubor createstack.json soubor znovu ---> Další ---> Další ---> Další.

6. Na další obrazovce klikněte na Aktualizovat zásobník . V části Náhled sady změn , můžete vidět Akci sloupec je nyní:Odebrat . V tomto případě CloudFormation odstraní dogpics zdroj a odpovídající fyzické zdroje (htf-dogpics-4qesklu84ugq ).

Přejděte na svůj řídicí panel S3 a uvidíte, že kbelík s dogpics je nyní z řídicího panelu S3 pryč.

Zobrazí se DELETE_COMPLETE událost ve vašem zásobníku.

Odebrání logických prostředků je trochu riskantní, protože může odstranit věci, ale toto riziko je spojeno pouze s logickými prostředky, které jste odstranili ze šablony (zdroje dogpics). Dosud jsme neprovedli žádné změny v žádném z dalších existujících logických zdrojů, jako jsou zdroje catpics. Fyzické zdroje catpics tedy nemohou být ovlivněny žádnou aktualizací zásobníku. Existuje další možnost aktualizace zásobníku. Pomocí této možnosti bychom mohli změnit konfiguraci pro existující logický prostředek.

7. Otevřete soubor updatestack2.json soubor, který jste si dříve stáhli do svého editoru, uvidíte následující blok kódu.

Soubor updatestack2.json vypadá velmi podobně jako šablona createstack.json, kterou jste použili dříve, s výjimkou dvou hlavních rozdílů. Opět přidáváme druhý logický zdroj, dogpics. Ale také jsme změnili obrázky.

Přidali jsme další část konfigurace, která se nazývá Vlastnosti, kde můžeme definovat další vlastnosti pro daný logický prostředek. V tomto případě vytvoříme kbelík S3. Explicitně jsme nastavili název segmentu fyzického zdroje jako catsareawesome -howtoforge .

8. Přejděte na svůj řídicí panel CloudFormation. Vyberte své htf zásobníku, klikněte na Aktualizovat ---> Nahradit aktuální šablonu ---> Vybrat soubor ---> tentokrát vybereme updatestack2.json soubor ---> Další ---> Další ---> Další.

9. Na další obrazovce klikněte na Aktualizovat zásobník . Všimněte si Náhled sady změn panelu, můžete jaký bude účinek této aktualizace.

První změna vypadá povědomě. Chystáme se přidat další logický zdroj pro dogpics , což bude kbelík S3. Ale také vidíme Upravit akce. A úprava je ve skutečnosti ta nejrizikovější věc, kterou můžete se stackem CloudFormation udělat.

Důvodem jsou stávající prostředky, které jsou na místě a potenciálně používané jinými prostředími, a mohou být změněny aktualizací zásobníku. Úprava existujících logických prostředků je tedy potenciálně riskantnější.

Existují 3 možnosti ovlivnění fyzického prostředku, když aktualizujete zásobník tímto způsobem. První možností je, že se zdroj aktualizuje bez jakéhokoli přerušení služby.

Druhou možností je, že se zdroj aktualizuje a služba je přerušena určitou úrovní přerušení. Například když aktualizujete zásobník kvůli změně velikosti instance EC2. Když to uděláte, budete muset instanci EC2 restartovat ručně. Bude spuštěno nové rozhraní AMI a může dojít k výpadkům. Ale jakmile bude nový AMI spuštěn, vaše služba bude k dispozici okamžitě.

Poslední možností je, že aktualizace odstraní celý váš stávající fyzický zdroj a nahradí ho novým (Náhrada ). Toto je nejrizikovější možnost při aktualizaci zásobníku CloudFormation. Když to děláte, měli byste věnovat pozornost. Když dojde k tomuto druhu výměny, budete Náhrada sloupec je True , jak je znázorněno na snímku obrazovky níže.

Na řídicím panelu CloudFormation Stacks můžete vidět, že se píše:„Požadovaná aktualizace vyžaduje vytvoření nového fyzického zdroje; CloudFormation tedy odstraní existující zdroj a vytvoří nový.

Přejděte na svůj řídicí panel S3, uvidíte, že kbelík s catpics je nyní pryč a nový, catsareawesome -howtoforge , byl vytvořen. Všimněte si, že explicitně poskytujeme fyzický název (catsareawesome-howtoforge) pro zdroj v šabloně CloudFormation, na název zdroje se nevztahují žádné náhodné znaky.

Problém s tím je, že pokud použijeme tuto šablonu k vytvoření dalšího zásobníku CloudFormation, selže, protože by se pokusila vytvořit další kbelík s přesně stejným názvem. A v žádném účtu AWS nemůžete mít 2 buckety se stejným názvem. Při pokusu o vytvoření dalšího segmentu s přesně stejným názvem se zobrazí následující chyba.

Odstranění vašich zásobníků CloudFormation

Nyní, když jsme změnili šablonu a aktualizovali náš zásobník, musíme se ujistit, že po dokončení práce na něm zásobník odstraníme. Pokud nepoužité zásobníky neodstraníme, zůstanou v našem řídicím panelu CloudFormation Stack neomezeně dlouho. Museli bychom tam ručně vstoupit a smazat to.

Na řídicím panelu CloudFormation vyberte svůj zásobník a poté vyberte Smazat . Když CloudFormation odstraní zásobník, odstraní také všechny prostředky v tomto zásobníku. Neexistuje způsob, jak odstranit pouze jeden prostředek, jako je například segment S3 nebo instance EC2. Tato akce je provedena záměrně.

Závěr

V této příručce jsme se podívali na to, jak se vytvářejí a mění zásobníky CloudFormation. Podívali jsme se na některé způsoby, jak změnit šablony a jak aktualizovat existující zásobníky. Poté jsme se podívali na některé možnosti, které jsou spojeny s aktualizací zásobníků. A nakonec jsme se podívali na to, jak odstranit zásobníky CloudFormation poté, co na nich skončíte.

Pokud máte nějaké dotazy nebo návrhy, zanechte prosím níže komentář. Děkujeme za přečtení!


Linux
  1. Jak rozšířit funkčnost vašeho Linuxového desktopu pomocí PlexyDesk

  2. Jak porovnat váš systém (CPU, File IO, MySQL) pomocí Sysbench

  3. Jak zabezpečit server Ubuntu pomocí brány firewall CSF

  1. Jak se pohybovat na ploše GNOME Linux pouze pomocí klávesnice

  2. Jak spravovat svá hesla pomocí Enpass na Linuxu

  3. Jak integrovat Jenkinse s CloudFormation a Step Functions

  1. Jak zachránit váš systém Windows nebo Linux pomocí Rescatux

  2. Jak darovat zdroje CPU/GPU vědě s Boinc

  3. Jak spolupracovat na dokumentech uložených na vašem serveru WebDAV s ONLYOFFICE