Výukový program AWS CLI - Ako inštalovať, konfigurovať a používať AWS CLI na pochopenie vášho zdrojového prostredia

Ako získať presne informácie o účte a prostredí, ktoré potrebujete na správu svojho účtu AWS, iba pomocou rozhrania AWS CLI

Inštalácia rozhrania AWS CLI je v skutočnosti celkom jednoduchá. Najlepším spôsobom, ako to urobiť, je prejsť na sprievodcu inštaláciou AWS a postupovať podľa pokynov pre váš operačný systém.

Práve teraz nás tlačia k verzii 2 CLI a nevidel som žiadny dôvod, prečo by sme nemali ísť ďalej. Pracujem s Linuxom, takže tam by som mal smerovať ďalej.

Aby som to urobil, vložím príkaz curl zo stránky Amazon do svojho linuxového shellu, ktorý stiahne balík a zapíše ho do lokálneho zip súboru, ktorý potom rozbalím. Tým sa vytvorí nový adresár s názvom aws, ktorý bude obsahovať inštalačný skript, ktorý môžem spustiť pomocou sudo, aby som získal oprávnenie správcu. Spustím aws --version, aby som potvrdil, že všetko fungovalo tak, ako malo.

curl "//awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip ls aws sudo ./aws/install aws --version 

Nasledujúci krok bude vyžadovať jednu rýchlu cestu k riadiacej konzole. Uvidíte, že na autentifikáciu CLI vo vašom účte budete potrebovať platný prístupový kľúč. Teraz má CLI príkaz „create-access-key“, ktorý vygeneruje nový kľúč, ale to je možné len po autentifikácii. Som si istý, že rozumieš problémom s tým.

Na stránku poverení zabezpečenia sa dostanete z rozbaľovacej ponuky účtu v hornej časti ľubovoľnej stránky konzoly. S vašimi povereniami v ruke môžete spustiť „aws configure“. Zobrazí sa výzva na zadanie vášho ID prístupového kľúča a samotného tajného kľúča. Ak chcete, môžete zvoliť predvolenú oblasť AWS a výstupný formát. Formát nebude problém, takže ho ponechám ako predvolený.

aws configure 

To je všetko. Len aby som potvrdil, že to všetko fungovalo, uvediem zoznam všetkých segmentov S3 na mojom účte. S tým sa všetci v ďalšom klipe pustíme do práce.

aws s3 ls 

Možno už viete, že služba Amazon CloudFormation existuje, aby vám umožnila spravovať vašu aplikačnú infraštruktúru tak, že ju budete organizovať do hromádok zdrojov vášho účtu AWS.

Šablóny CloudFormation, ktoré definujú tieto komíny, je možné zdieľať, upravovať a spúšťať kdekoľvek, čím získate predvídateľné a spoľahlivé prostredia cloudových aplikácií kdekoľvek a kedykoľvek ich budete potrebovať.

Možno tiež viete, že svoje balíčky CloudFormation môžete spravovať prostredníctvom konzoly AWS Management Console a ako diskutujem v mojom novom kurze Pluralsight, vytvárania a správy balíkov pomocou AWS CloudFormation pomocou rozhrania príkazového riadku pomocou AWS CLI.

Ak sa rozhodnete ísť s AWS CLI - niečo, čo veľmi odporúčam - budete potrebovať spôsob, ako zhromaždiť kľúčové informácie o ďalších zdrojoch účtu. Ale to, ako sa od vás očakáva, že získate tieto informácie prostredníctvom CLI, sa spočiatku nemusí javiť tak zrejmé.

Aby sme vám ukázali, čo mám na mysli, experimentujme so zložitejším zásobníkom pomocou šablóny, ktorá pochádza zo vzorových vzoriek dokumentácie AWS.

Sada šablón Application Frameworks obsahuje šablónu pre automaticky zmenšené servery Linux, ktoré budú vopred vybavené webovým serverom Apache a skriptovacím jazykom PHP a pripojenie k inštancii databázy Multi-AZ RDS, na ktorej je spustený databázový stroj MySQL.

Môžete kliknúť na Zobraziť z tejto stránky dokumentácie AWS a pozrieť sa na samotnú šablónu. Tam uvidíte sekcie Parametre definujúce VPC a podsiete, do ktorých sa spustí vaša inštancia, a názov databázy MySQL, užívateľ a heslo.

Je veľmi dôležité, aby všetky správne služby poznali tieto podrobnosti, pretože inak nebudú môcť spolu komunikovať. Budeme musieť prísť na spôsob, ako tieto hodnoty pridať. Ak chcete urobiť všetko, stačí kliknúť na a zobraziť šablónu (ktorú môžete vidieť tu), skopírovať obsah a vložiť ju do nového súboru JSON na vašom lokálnom počítači.

Rozhranie CLI použijete na spustenie cloudformačného stohu pomocou príkazu create-stack. Na odovzdanie dôležitých informácií však príkaz vyžaduje niekoľko argumentov. Tento minimálny príklad ukazuje, ako nasmerovať CloudFormation na svoj súbor šablóny JSON, meno, ktoré sa má priradiť k vášmu zásobníku, a platný kľúč SSH, takže sa budem môcť prihlásiť do inštancie, ktorú vytvorí.

aws cloudformation create-stack \ --template-body file://lamp-as.json \ --stack-name lamp \ --parameters \ ParameterKey=KeyName,ParameterValue=mykey 

Problém je v tom, že ak by ste tento príkaz spustili proti šablóne v dokumente JSON, zlyhal by. Je to preto, že ako si bezpochyby pamätáte z pohľadu na šablónu, je potrebné splniť niektoré ďalšie parametre. Konkrétne budeme potrebovať odkazy na VPC a na dve podsiete - a pretože sa jedná o nasadenie zón viacnásobnej dostupnosti, budú musieť byť v rôznych zónach.

Ako to bude fungovať? Je to AWS CLI na záchranu. Potrebujete VPC ID? Nezabudnite, že VPC sú objekty EC2, môžete spustiť aws ec2 description-vpcs a všetky údaje, ktoré budete potrebovať - ​​vrátane ID VPC - sa magicky objavia. A podsiete? No, samozrejme, to isté. Stačí skopírovať ID podsietí pre ktorékoľvek z dvoch podsietí, ktoré sa objavia, a ste v práci.

aws ec2 describe-vpcs aws ec2 describe-subnets 

Teraz poďme všetky tieto informácie spojiť do našej novej verzie príkazu create-stack. S týmto budete musieť byť opatrní, pretože v syntaxi sú niektoré škaredé frázy.

aws cloudformation create-stack \ --template-body file://lamp-as.json \ --stack-name lamp-as \ --parameters \ ParameterKey=KeyName,ParameterValue=mykey \ ParameterKey=VpcId,ParameterValue=vpc-1ffbc964 \ ParameterKey=Subnets,ParameterValue=\'subnet-0e170b31,subnet-52d6117c\' \ ParameterKey=DBUser,ParameterValue=myadmin \ ParameterKey=DBPassword,ParameterValue=mypass23 

Prvým novým parametrom je VPC-ID. Ale uistite sa, že máte správny prípad: použitie veľkých písmen D v Id spôsobí zlyhanie celej veci. Neviem, prečo sťažujú život tak zložitým spôsobom, ale to je to, čo máme.

Ďalšia je ešte jemnejšia. Pretože potrebujeme dve podsiete, budeme ich musieť zadať do jedného riadku oddeleného čiarkou - ale bez medzery. Ďalej však budeme musieť reťazec uzavrieť do jednotlivých apostrofov. CLI ale nedokáže čítať apostrofy len tak, takže im budeme musieť uniknúť pomocou spätných lomítok. Mám to?

Pridám tiež tieto dva parametre databázy: DBUser a moje ultra tajomstvo, super kryptické DBPassword. Bude to fungovať? Betča. Ale nikomu nehovor, koľkokrát som to musel vyskúšať bez toho, aby si sledoval, kým som to pochopil správne. Pamätajte: zlyhanie je váš priateľ.

Keď je náš zásobník dobrý a spustený (čo môže trvať až pol hodiny), spustenie programu description-stacks nám poskytne adresu URL našej webovej stránky.

aws cloudformation describe-stacks 

Ale to nie je celý príbeh. Použijem ďalší príkaz aws ec2 - tentokrát popíšte - inštancie - aby som získal nejaké informácie o inštanciách EC2, ktoré boli spustené ako súčasť tohto zásobníka. Tento filtruje výsledky a obmedzuje výstup iba na tie inštancie, ktoré sú momentálne spustené.

aws ec2 describe-instances \ --filters Name=instance-state-name,Values=running \ --query 'Reservations[*].Instances[*].{Instance:InstanceId,PublicIPAddress:PublicIpAddress}' 

Náhodou nemám v tejto oblasti spustené žiadne ďalšie inštancie, takže sa ukážu iba inštancie CloudFormation. Teraz používam --query na ďalšie filtrovanie výstupu, aby mi poskytol iba ID inštancií a verejné IP adresy týchto inštancií. Behajú, ako by ste čakali, rovno dve.

Len ochutnávka - a väčšina sa týkala konkrétne CloudFormation -, ale myslím si, že získate predstavu o tom, ako zhromažďovanie informácií funguje pomocou rozhrania AWS CLI.

Na stránke bootstrap-it.com je oveľa viac správnych správ v podobe kníh, kurzov a článkov.