Az AWS CLI használata a felhőszolgáltatások futtatásához közvetlenül a billentyűzetről - nincs szükség GUI-ra

Fogadok, hogy már van néhány dolgod az AWS-en, és ezt a böngésző konzol használatával valósítottad meg. De fogadni fogok arra is, hogy már gyanítod, hogy a konfigurációs oldalak és rétegek közötti átkattintás nem mindig lesz a legjobb megközelítés. Ha valóban, az AWS CLI egy jobb módszer, amely pontosan ugyanazt a munkát fogja elvégezni, de sokkal kevesebb erőfeszítéssel.

A Pluralsight tanfolyamomhoz adaptált tartalom használata : Az AWS műveletek automatizálása az AWS CLI segítségével gyorsan hadd demonstráljam. Tegyük fel, hogy egy Amazon Linux példányt szeretne elindítani az EC2-ből. A működésbe lépéshez meg kell…

  • Töltse be az EC2 Irányítópult oldalt
  • Kattintson a Példány indítása elemre
  • Válasszon egy AMI-t az AMI oldalon
  • Válasszon egy példánytípust a Példánytípus oldalról
  • Állítsa be a hálózat, az IAM, az életciklus-viselkedés és a felhasználói adatok beállításait a Példányadatok konfigurálása oldalon
  • Válasszon ki egy vagy több tárhelyet a Tárhely hozzáadása oldalon
  • Címkék hozzáadása a Címkék hozzáadása oldalon
  • Válasszon vagy konfiguráljon egy biztonsági csoportot a - várjon rá - a Biztonsági csoport konfigurálása oldalon
  • Végül tekintse át és indítsa el példányát a (mi más?) Ellenőrzés és indítás nevű oldalon

Ne felejtse el átugrani az előugró ablakot, ahol megerősíti a kulcspárját, majd visszamegy az EC2 példányok irányítópultjára, hogy megkapja a példányadatait (például az IP-címeket).

Neked szórakoztatónak tűnik? Még mindig szórakoztatónak tűnik, ha lassú internetkapcsolattal dolgozik? És mi van akkor, ha ennek a folyamatnak a variációit el kell végeznie hetente féltucatszor?

Szeretné megnézni, hogyan indíthatja el ezt a konfigurációt az AWS CLI használatával a Bash héjból (amelyet futtathat Linuxon, macOS-on és most még a Windows 10-en is)? Vegye figyelembe, hogy a hátsó perjelek használatával mondtam Bash-nek, hogy a parancs még nem teljes. Az Enter megnyomásával az egész rendetlenség fel fog futni.

aws ec2 run-instances --image-id ami-04681a1dbd79675a5 \ --count 1 \ --instance-type r5d.large \ --key-name MyKeyPair \ --security-group-ids sg-007e43f80a1758f29 \ --subnet-id subnet-970ec9f0 \ --user-data file://my_script.sh \ --tag-specifications \ ‘ResourceType=instance,Tags=[{Key=backend,Value=inventory1}]’

Ez a pontos parancs nem fog működni, ha csak beilleszti a terminálba és futtatja. A biztonsági csoport és az alhálózati azonosítók csak a fiókomra vonatkoznak, és valószínűleg nem rendelkezik MyKeyPair nevű kulcspárral vagy my_script.sh nevű szkriptfájllal. De ez azt mutatja, hogy miután elvégeztél néhány alapszintű előzetes kutatást az összes megfelelő érték megszerzéséhez és megerősítetted, hogy működik, képes leszel menteni a parancsot egy szkriptfájlba, amelyet bármikor módosíthat és futtathat szükséges. Ez egy öt perces folyamatot néhány másodpercre csökkenthet.

Az AWS dokumentációs oldala az operációs rendszer legfrissebb CLI telepítési utasításainak megtekintéséhez a legjobb hely. A legjobb fogadás általában a Python csomagkezelői megközelítés lesz, PIP használatával.

A CLI konfigurálása az AWS-fiók erőforrásainak biztonságos eléréséhez és adminisztrációjához meglehetősen egyszerű. Bár előbb létre kell hoznia (és át kell másolnia / rögzítenie) egy hozzáférési kulcsot az AWS-felhasználó számára a fiók legördülő menüjének My Security Credentials linkjéből a konzolon. Ha ez megtörtént, egyszerűen írja be az „aws configure” parancsot a parancssorba, és írja be a Saját biztonsági hitelesítő adatokból kapott hozzáférési kulcs azonosítóját és titkos hozzáférési kulcsát. Opcionálisan kiválaszthatja az alapértelmezett régió és kimeneti formátum értékeket.

[email protected]:~$ aws configure AWS Access Key ID [****************KB2Q]: AWS Secret Access Key [****************W/Cu]: Default region name [us-east-1]: Default output format [text]: [email protected]:~$

AWS CLI szintaxis minták

Most már készen áll a kezdésre. Kezdjük azzal, hogy a parancs szintaxisát fel kell bontani az alkatrészekre, és gyakorlati példák segítségével szemléltetjük az egész működését. Az aws parancs előtag után egy CLI parancs opciókból áll (amelyek, amint a neve is jelzi, opcionálisak), parancsok , alparancsok és paraméterek .

aws [options]   [parameters]

Ez a példa visszaadja az Amazon által hivatalosan karbantartott összes EC2 AMI képet, amely a CentOS Linux operációs rendszert futtatja.

aws --output table ec2 describe-images \ --filters “Name=description,Values=*CentOS*” \ “Name=owner-alias,Values=amazon”

A kimeneti opciót használja , így a „ table ” értéket adja meg a szöveges kimenet táblázatokban történő megjelenítéséhez. A legfelső szintű parancs itt ec2. A legtöbb - ha nem az összes - legfelső szintű parancs konkrét AWS-szolgáltatásokat fog meghívni. Az s3, az iam és a dynamodb további példák.

Az alparancs a description -images , amely az EC2-példányokhoz jelenleg elérhető összes Amazon Machine Image -hez kapcsolódó adatokat adja vissza. Ez nagyon sok adatot eredményezne, mivel sok száz AMI van, és mindegyiket sok metaadat képviseli. Tehát érdemes egy kicsit szűkíteni a keresést. Ehhez két értéket adtam meg a - filters paraméterhez: a képleírásnak tartalmaznia kell a CentOS szót  - a c, o és s nagybetűket kell írni, mivel ez kis- és nagybetűket érzékel, és a tulajdonos-álnév értékének meg kell egyeznie az amazonnal .

Majd gyakran fut describe- alapú alparancsok hogy fontos erőforrás azonosítók akkor majd dugja be a tényleges cselekvés parancsokat. Ezt a CentOS képazonosítót általában egy ec2 run-példányok parancs részeként használják egy példány tényleges elindításához.

A leírás és a futtatás mellett a többi általános alparancs olyan igékkel kezdődik, mint a létrehozás, törlés, engedélyezés, letiltás, módosítás, kérés, leállítás és befejezés.

Az opciók között szerepel a régió , a kimenet és a profil  - amelyet már láttál -, valamint a száraz futtatás , amely semmit sem fog tenni, ehelyett megjeleníti azt a kimenetet, amelyet a parancs generálna, ha valóban futtatnák. Ez nagyon hasznos lehet, ha nem biztos abban, hogy megfelelő a szintaxis. Próbáljuk meg futtatni az ec2 run-példányok parancsot felülről, de ezúttal hozzáadva a dry-run parancsot .

S3 példa

Itt az ideje egy kis S3 varázslatnak. Van egy vállalkozásom, amelynek egyszerű weboldalra van szüksége, adatbázis-hozzáférés, javascript-harang és síp nélkül. Csak néhány szokásos, a malom futása, HTML5 jóság. Tehát létrehozom, gondosan konfigurálom és feltöltöm a vödröm úgy, hogy statikus webhelyként működjön - vagy más szóval, hogy a bejövő forgalom automatikusan az általam létrehozott index.html fájlba irányul .

Noha nem játszik szerepet ebben a bemutatóban, végül szeretnék felállítani egy .com domain nevet az Amazon 53-as útvonalán, amely a webhelyre mutat, így létre kell hoznom egy S3 vödröt pontosan ezzel név - .com és minden. Készítek egy vödröt mb és globálisan egyedi vödör név használatával.

aws s3 mb s3://mysite548.com

A vödörnek nyilvánosan olvashatónak kell lennie, ezért az s3api put-bucket-acl szót fogom használni , a vödör és az acl paraméterekkel együtt. Ezek közül az utóbbi a nyilvánosan olvasható értéket veszi fel .

aws s3api put-bucket-acl --bucket mysite548.com --acl public-read

Ezután az s3 sync segítségével az aktuális helyi könyvtáram összes tartalmát felemelem a vödörbe. Három fájlt hoztam létre: az index.html az alapértelmezett weboldal, a error.html pedig az az oldal lesz betöltve, amikor nem létező erőforrást igényelnek. Van egy kis kép is, amely elősegíti a demonstráció szépségét. Az acl public-read paraméter magának a fájlnak ugyanolyan engedélyeket ad, mint a vödör.

aws s3 sync . s3://mysite548.com --acl public-read

Finally, I’ll define the purpose of those html files for S3 using “s3 website”. The index-document and error-document parameters simply point to the relevant files. You don’t need to use those specific filenames, by the way, that’s just me. I’ll confirm that operation using s3api get-bucket-website.

aws s3 website s3://mysite548.com/ --index-document index.html --error-document error.html aws s3api get-bucket-website --bucket mysite548.com

What’s Next?

The command syntax of the AWS CLI is fairly intuitive. Nevertheless, you will often need help getting it exactly right. As I show in the Pluralsight course, you can get excellent guidance from the help system at the command line, or from the AWS online documentation. My Learn Amazon Web Services in a Month of Lunches book also contains useful guidance and examples.

This article is an excerpt adapted from my new Pluralsight course, Automating AWS Operations with the AWS CLI.