Kako koristiti AWS CLI za pokretanje usluga u oblaku izravno s tipkovnice - nije potreban GUI

Kladim se da ste već pokrenuli neke stvari na AWS-u i to ste ostvarili pomoću konzole preglednika. Ali kladim se i da već sumnjate da klikanje kroz slojeve i slojeve stranica za konfiguraciju neće uvijek biti najbolji pristup. U stvari, AWS CLI je bolji način da se obavi potpuno isti posao, ali uz puno manje truda.

Korištenje sadržaja prilagođenog mojem tečaju Pluralsight: Automatizacija AWS operacija s AWS CLI , dopustite mi da brzo pokažem. Pretpostavimo da želite pokrenuti instancu Amazon Linuxa iz EC2. Da biste ga pokrenuli, morat ćete ...

  • Učitajte stranicu nadzorne ploče EC2
  • Kliknite Pokreni instancu
  • Odaberite AMI na AMI stranici
  • Odaberite vrstu instance na stranici Instance Type
  • Postavite postavke mreže, IAM-a, ponašanja životnog ciklusa i korisničkih podataka na stranici Configure Instance Details
  • Odaberite jedan ili više volumena prostora za pohranu na stranici Dodaj pohranu
  • Oznake dodajte na stranici Dodaj oznake
  • Odaberite ili konfigurirajte sigurnosnu grupu na stranici - pričekajte - Konfiguriranje sigurnosne grupe
  • I na kraju pregledajte i pokrenite svoju instancu na stranici s nazivom (što drugo?) Pregledajte i pokrenite

Ne zaboravite kliknuti skočni prozor gdje ćete potvrditi svoj par ključeva, a zatim se vratiti na nadzornu ploču EC2 Instance da biste dobili podatke o instanci (poput IP adresa).

Zvuči vam zabavno? Hoće li zvučati zabavno ako radite s sporom internetskom vezom? A što kažete na to da trebate izvoditi varijacije ovog postupka pola tuceta tjedno?

Želite li vidjeti kako biste aktivirali tu konfiguraciju pomoću AWS CLI-a iz Bash ljuske (koju možete pokrenuti u Linuxu, macOS-u, a sada čak i u sustavu Windows 10)? Primijetite kako sam upotrijebio kose crte kako bih rekao Bashu da naredba još nije dovršena. Ako pritisnete Enter, cijeli se nered pokreće.

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}]’

Ta precizna naredba neće raditi ako je samo zalijepite u terminal i pokrenete. ID-ovi sigurnosne grupe i podmreže specifični su za moj račun i vjerojatno nemate par ključeva koji se zove MyKeyPair ili datoteku skripte nazvanu my_script.sh. Ali to vam pokazuje da ćete, nakon što izvršite osnovno prethodno istraživanje kako biste dobili sve ispravne vrijednosti i potvrdili da to radi, naredbu moći spremiti u datoteku skripte koju možete izmijeniti i pokrenuti kad god želite potrebno. To može spustiti postupak od pet minuta na nekoliko sekundi.

Najbolje mjesto za najnovije upute za instalaciju CLI-a za vaš operativni sustav je ova stranica s dokumentacijom AWS-a. Vaša najbolja oklada obično će biti pristup upravitelju paketa Python koji koristi PIP.

Konfiguriranje CLI-a za siguran pristup i upravljanje resursima vašeg AWS računa prilično je jednostavno. Iako ćete prvo trebati generirati (i kopirati / snimiti) pristupni ključ za svog korisnika AWS-a putem veze Moje sigurnosne vjerodajnice na padajućem izborniku računa natrag u konzoli. Kad je to gotovo, jednostavno upišite "aws configure" u naredbeni redak i unesite ID pristupnog ključa i tajni pristupni ključ koji ste dobili od Mojih sigurnosnih vjerodajnica. Po želji možete odabrati zadane vrijednosti regije i vrijednosti izlaznog formata.

[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]:~$

Uzorci sintakse AWS CLI

Sad ste spremni za početak. Započnimo raščlanjivanjem sintakse naredbe na njene sastavne dijelove i ilustriramo kako sve to funkcionira koristeći praktične primjere. Nakon prefiksa naredbe aws, naredba CLI sastoji se od opcija (koje su, kao što i samo ime kaže, neobavezne), naredbi , podnaredbi i parametara .

aws [options]   [parameters]

Ovaj primjer će vratiti sve EC2 AMI slike koje službeno održava Amazon koje pokreću CentOS Linux operativni sustav.

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

Koristi opciju izlaza , dajući joj vrijednost " tablica " za prikaz izlaza teksta u tablicama. Ovdje je naredba najviše razine ec2. Većina - ako ne i sve - naredbe najviše razine pozvat će određene AWS usluge. s3, iam i dynamodb su drugi primjeri.

Subcommand je opisuju i slika , koji će vratiti podatke koji se odnose na sve Amazon Machine Slike trenutno na raspolaganju za upotrebu za svoje EC2 instance. To bi vratilo užasno puno podataka, jer postoji stotine AMI-ja i svaki od njih predstavljen je puno metapodataka. Stoga ćete htjeti samo malo suziti pretragu. Zbog toga sam parametru - filters dao dvije vrijednosti: opis slike trebao bi sadržavati riječ CentOS  - velikim slovima c, o i s, jer će ovo biti osjetljivo na velika i mala slova, a vrijednost zamjenskog imena vlasnika mora biti jednaka amazonu .

Često ćete pokretati podnaredbe na temelju opisa kako biste dobili važne ID-ove resursa koje zatim možete uključiti u svoje stvarne naredbe akcije. Taj ID slike CentOS-a obično bi se koristio kao dio naredbe ec2 run-instances za stvarno pokretanje instance.

Osim opisivanja i izvođenja, druge uobičajene podnaredbe započet će glagolima poput stvaranja, brisanja, omogućavanja, onemogućavanja, izmjene, zahtjeva, zaustavljanja i prekida.

Opcije uključuju regiju , izlaz i profila  - koji ste već vidjeli - plus na suho , što će učiniti ništa, ali umjesto toga prikazati izlaz vaš naredba će generirati ako je to zapravo pokrenuti. Ovo može biti vrlo korisno kada niste sigurni jeste li sintaksu sasvim dobro shvatili. Pokušajmo pokrenuti onu naredbu ec2 run-instances odozgo, ali ovaj put dodajte suho pokretanje .

S3 Primjer

Vrijeme je za malo S3 magije. Imam tvrtku koja treba jednostavno web mjesto bez ikakvog pristupa bazi podataka ili javascript zvona i zvižduka. Samo neko redovno, pokretanje mlina, HTML5 dobrota. Stoga ću stvoriti, pažljivo konfigurirati i popuniti svoju kantu tako da će raditi kao statična web stranica - ili, drugim riječima, tako da će dolazni promet automatski biti usmjeren na datoteku index.html koju sam stvorio .

Iako neće igrati nikakvu ulogu u ovom demonstracionom programu, na kraju ću htjeti postaviti naziv .com domene u Amazonovom putu 53 koji upućuje na web mjesto, pa ću morati stvoriti S3 kantu s upravo tim ime - .com i sve. Izrađujem kantu koristeći mb i globalno jedinstveno ime kante.

aws s3 mb s3://mysite548.com

Segment će morati biti javno čitljiv, pa ću upotrijebiti s3api put-bucket-acl , zajedno s parametrima segmenta i acl . Potonji će uzeti vrijednost javno pročitanu .

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

Dalje ću upotrijebiti s3 sync da premjestim sav sadržaj svog trenutnog lokalnog direktorija u moj segment. Stvorio sam tri datoteke: index.html je zadana web stranica, a error.html će biti stranica koja se učitava kada se zatraži nepostojeći resurs. Tu je i mala slika koja će vam pomoći da uljepšate demonstraciju. Parametar acl za javno čitanje dat će datotekama iste dozvole kao i segment.

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.