Πώς να χρησιμοποιήσετε το AWS CLI για να εκτελέσετε τις υπηρεσίες cloud απευθείας από το πληκτρολόγιό σας - δεν απαιτείται GUI

Θα στοιχηματίσω ότι έχετε ήδη τρέξει κάποια πράγματα στο AWS και το έχετε κάνει χρησιμοποιώντας την κονσόλα προγράμματος περιήγησης. Αλλά θα στοιχηματίσω επίσης ότι ήδη υποψιάζεστε ότι το να κάνετε κλικ στα επίπεδα και τα επίπεδα των σελίδων διαμόρφωσης δεν θα είναι πάντα η καλύτερη προσέγγιση. Στην πραγματικότητα, το AWS CLI είναι ένας καλύτερος τρόπος που θα κάνει την ίδια εργασία, αλλά με πολύ λιγότερη προσπάθεια.

Χρησιμοποιώντας περιεχόμενο προσαρμοσμένο από το μάθημα Pluralsight: Αυτοματοποίηση Λειτουργιών AWS με το AWS CLI , επιτρέψτε μου να δείξω γρήγορα. Ας υποθέσουμε ότι θέλετε να ξεκινήσετε μια παρουσία του Amazon Linux από το EC2. Για να το ενεργοποιήσετε, θα πρέπει να…

  • Φόρτωση της σελίδας πίνακα ελέγχου EC2
  • Κάντε κλικ στο Εκκίνηση παρουσίας
  • Επιλέξτε ένα AMI από τη σελίδα AMI
  • Επιλέξτε έναν τύπο παρουσίας από τη σελίδα Τύπος παρουσίας
  • Ορίστε τις ρυθμίσεις δικτύου, IAM, κύκλου ζωής και δεδομένων χρήστη στη σελίδα Διαμόρφωση λεπτομερειών παρουσίας
  • Επιλέξτε έναν ή περισσότερους τόμους αποθήκευσης στη σελίδα Προσθήκη χώρου αποθήκευσης
  • Προσθήκη ετικετών στη σελίδα Προσθήκη ετικετών
  • Επιλέξτε ή ρυθμίστε μια ομάδα ασφαλείας στη σελίδα - περιμένετε - Διαμόρφωση ομάδας ασφαλείας
  • Και τέλος, ελέγξτε και ξεκινήστε την παρουσία σας στη σελίδα με το όνομα (τι άλλο;) Ελέγξτε και ξεκινήστε

Και μην ξεχάσετε να κάνετε κλικ στο αναδυόμενο παράθυρο όπου θα επιβεβαιώσετε το ζεύγος κλειδιών σας και μετά να επιστρέψετε στον πίνακα ελέγχου EC2 Instances για να λάβετε τα δεδομένα παρουσίας (όπως διευθύνσεις IP)

Ακούγεται σαν διασκεδαστικό; Θα ακούγεται ακόμα διασκεδαστικό εάν εργάζεστε με αργή σύνδεση στο Διαδίκτυο; Και τι γίνεται αν πρέπει να εκτελείτε παραλλαγές αυτής της διαδικασίας μισή δωδεκάδα φορές την εβδομάδα;

Θέλετε να δείτε πώς θα ενεργοποιήσετε αυτήν τη διαμόρφωση χρησιμοποιώντας το AWS CLI από ένα κέλυφος Bash (το οποίο μπορείτε να εκτελέσετε σε Linux, macOS και τώρα ακόμη και στα Windows 10); Σημειώστε πώς χρησιμοποίησα κάθετες πλάκες για να πω στον Bash ότι η εντολή δεν έχει ολοκληρωθεί ακόμη. Το χτύπημα του Enter παίρνει όλο το χάος και λειτουργεί.

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

Αυτή η ακριβής εντολή δεν θα λειτουργήσει για εσάς εάν την επικολλήσετε απλώς στο τερματικό σας και την εκτελέσετε. Τα αναγνωριστικά ομάδας ασφαλείας και υποδικτύου είναι συγκεκριμένα για τον λογαριασμό μου και πιθανότατα δεν έχετε ένα ζεύγος κλειδιών που ονομάζεται MyKeyPair ή ένα αρχείο σεναρίου που ονομάζεται my_script.sh Αλλά αυτό σας δείχνει ότι, αφού κάνετε κάποια βασική έρευνα για να λάβετε όλες τις σωστές τιμές και επιβεβαιώσετε ότι λειτουργεί, θα μπορείτε να αποθηκεύσετε την εντολή σε ένα αρχείο σεναρίου που μπορείτε να τροποποιήσετε και να εκτελέσετε όποτε απαραίτητη. Αυτό μπορεί να μειώσει μια διαδικασία πέντε λεπτών σε μερικά δευτερόλεπτα.

Το καλύτερο μέρος για ενημερωμένες οδηγίες εγκατάστασης CLI για το λειτουργικό σας σύστημα είναι αυτή η σελίδα τεκμηρίωσης AWS. Το καλύτερο στοίχημά σας θα είναι κανονικά η προσέγγιση διαχείρισης πακέτων Python χρησιμοποιώντας PIP.

Η ρύθμιση του CLI για ασφαλή πρόσβαση και διαχείριση των πόρων του λογαριασμού σας AWS είναι αρκετά απλή. Παρόλο που θα πρέπει πρώτα να δημιουργήσετε (και να αντιγράψετε / εγγράψετε) ένα κλειδί πρόσβασης για τον χρήστη AWS από τον σύνδεσμο Τα πιστοποιητικά ασφαλείας μου στο αναπτυσσόμενο μενού του λογαριασμού πίσω στην κονσόλα. Όταν τελειώσετε, απλώς πληκτρολογήστε "aws configure" στη γραμμή εντολών και εισαγάγετε το αναγνωριστικό κλειδιού πρόσβασης και το μυστικό κλειδί πρόσβασης που έχετε από τα διαπιστευτήρια ασφαλείας μου. Μπορείτε προαιρετικά να επιλέξετε προεπιλεγμένες τιμές μορφής περιοχής και εξόδου.

[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

Είστε έτοιμοι να ξεκινήσετε. Ας ξεκινήσουμε με την κατανομή της σύνταξης εντολών στα συστατικά μέρη της και να δείξουμε πώς λειτουργεί όλα χρησιμοποιώντας πρακτικά παραδείγματα. Αφού οι AWS εντολή πρόθεμα, μία εντολή CLI αποτελείται από επιλογές (η οποία, όπως υποδηλώνει το όνομα, είναι προαιρετικές), εντολές , υποεντολές , και παραμέτρους .

aws [options]   [parameters]

Αυτό το παράδειγμα θα επιστρέψει όλες τις εικόνες EC2 AMI που διατηρούνται επίσημα από την Amazon που εκτελούν το λειτουργικό σύστημα CentOS Linux.

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

Χρησιμοποιεί την επιλογή εξόδου , δίνοντάς της την τιμή του « πίνακα » για να εμφανίσει την έξοδο κειμένου σε πίνακες. Η εντολή ανώτατου επιπέδου εδώ είναι ec2. Οι περισσότερες - αν όχι όλες - εντολές ανώτερου επιπέδου θα επικαλούνται συγκεκριμένες υπηρεσίες AWS. Τα s3, iam και dynamodb είναι άλλα παραδείγματα.

Η υπο - εντολή είναι περιγραφή-εικόνες , οι οποίες θα επιστρέφουν δεδομένα που σχετίζονται με όλες τις Amazon Machine Images που είναι διαθέσιμες προς χρήση για τις παρουσίες EC2. Αυτό θα επέστρεφε πάρα πολλά δεδομένα, καθώς υπάρχουν πολλές εκατοντάδες AMI και καθένα από αυτά αντιπροσωπεύεται από πολλά μεταδεδομένα. Έτσι θα θελήσετε να περιορίσετε λίγο την αναζήτηση. Γι 'αυτό, παρείχα δύο τιμές στην παράμετρο - φίλτρα: η περιγραφή της εικόνας θα πρέπει να περιέχει τη λέξη CentOS  - κεφαλαιοποίηση των c, o και s, καθώς αυτό θα είναι διάκριση πεζών-κεφαλαίων και η τιμή ιδιοκτήτη-ψευδώνυμο πρέπει να είναι ίση με το amazon .

Συχνά εκτελείτε δευτερεύουσες εντολές που βασίζονται σε περιγραφές για να λάβετε σημαντικά αναγνωριστικά πόρων που μπορείτε στη συνέχεια να συνδέσετε στις πραγματικές εντολές ενεργειών. Αυτό το αναγνωριστικό εικόνας CentOS θα χρησιμοποιείται συνήθως ως μέρος της εντολής ec2 run-instance για να ξεκινήσει πραγματικά μια παρουσία.

Εκτός από την περιγραφή και την εκτέλεση, άλλες κοινές δευτερεύουσες εντολές θα ξεκινήσουν με ρήματα όπως δημιουργία, διαγραφή, ενεργοποίηση, απενεργοποίηση, τροποποίηση, αίτηση, διακοπή και τερματισμός.

Οι επιλογές περιλαμβάνουν την περιοχή , την έξοδο και το προφίλ  - που έχετε ήδη δει - συν ξηρό τρέξιμο , το οποίο δεν θα κάνει τίποτα, αλλά αντ 'αυτού θα εμφανίσει την έξοδο που θα δημιουργούσε η εντολή σας εάν εκτελείται στην πραγματικότητα. Αυτό μπορεί να είναι πολύ χρήσιμο όταν δεν είστε βέβαιοι ότι έχετε τη σωστή σύνταξη. Ας προσπαθήσουμε τρέχει ότι EC2 εκτέλεσης περιπτώσεις εντολή από ψηλά, αλλά αυτή τη φορά προσθέτοντας ξηρή λειτουργία .

Παράδειγμα S3

Ήρθε η ώρα για μια μικρή μαγεία S3. Έχω μια επιχείρηση που χρειάζεται έναν απλό ιστότοπο χωρίς πρόσβαση στη βάση δεδομένων ή κουδούνια και σφυρίχτρες javascript. Λίγο τακτικό, τρέξιμο του μύλου, καλοσύνη HTML5. Έτσι θα δημιουργήσω, διαμορφώσω προσεκτικά και θα συμπληρώσω τον κάδο μου ώστε να λειτουργεί ως στατικός ιστότοπος - ή, με άλλα λόγια, έτσι ώστε η εισερχόμενη επισκεψιμότητα να κατευθύνεται αυτόματα στο αρχείο index.html που έχω δημιουργήσει .

Αν και δεν θα παίξει κανένα ρόλο σε αυτό το demo, τελικά θα θελήσω να δημιουργήσω ένα όνομα τομέα .com στη διαδρομή 53 του Amazon που δείχνει στον ιστότοπο, οπότε θα πρέπει να δημιουργήσω έναν κάδο S3 με ακριβώς αυτό όνομα - .com και όλα. Κάνω έναν κάδο χρησιμοποιώντας mb και ένα παγκοσμίως μοναδικό όνομα κάδου.

aws s3 mb s3://mysite548.com

Ο κάδος θα πρέπει να είναι ευανάγνωστος στο κοινό, επομένως θα χρησιμοποιήσω το s3api put-bucket-acl , μαζί με τις παραμέτρους του κάδου και του acl . Το τελευταίο από αυτά θα πάρει την αξία δημόσια-ανάγνωση .

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

Στη συνέχεια θα χρησιμοποιήσω τον συγχρονισμό s3 για να μετακινήσω όλα τα περιεχόμενα του τρέχοντος τοπικού καταλόγου μου στον κάδο μου. Έχω δημιουργήσει τρία αρχεία: το index.html είναι η προεπιλεγμένη ιστοσελίδα και το error.html θα είναι η σελίδα που φορτώνεται όταν ζητείται ένας ανύπαρκτος πόρος. Υπάρχει επίσης μια μικρή εικόνα για να υποστηρίξει την επίδειξη. Η παράμετρος acl public-read θα δώσει στα αρχεία τα ίδια δικαιώματα με τον κάδο.

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.

Αυτό το άρθρο είναι ένα απόσπασμα προσαρμοσμένο από το νέο μου πρόγραμμα Pluralsight, Αυτοματοποίηση Λειτουργιών AWS με το AWS CLI.