AWS CloudFormation: kust leida abi, kui seda vajate

Lihtne, loll käsurea vahtimine, aimugi, mida AWS-i CLI-ga edasi teha, võib olla alandav kogemus. Ja vähemalt minu kogemuse järgi võib AWS CloudFormationi juhtimiskonsooli vaatamine olla hullem.

Nii et lubage mul pakkuda teile kiiret "alustamise" abi, mis põhineb osa minu viimase Pluralsighti kursuse sisust.

Esiteks, kui plaanite oma CloudFormationi korstnate haldamist AWS-i CLI-ga, mitte juhtimiskonsooli kaudu, arutlen selle artikli põhitõdesid. Kui see kõik on hoolitsetud, olete kõigeks valmis.

Alustage lihtsalt:

$ aws s3 ls 2019-11-03 13:16:59 athena5905 2019-02-03 18:01:42 book-3939 2014-07-01 18:52:32 elasticbeanstalk-ap-northeast-1-426397493112 2014-08-28 16:57:49 elasticbeanstalk-us-east-1-426497493912 2019-05-04 22:17:50 ltest236 2018-07-15 15:52:30 mybucket99688223 2017-07-25 17:06:43 nextcloud3239027

Selles näites olev "aws" ütleb teie kestale, et soovite, et see, mis edasi saab, oleks AWS-i CLI-ga. Järgmisena sisestatud "s3" ütleb CLI-le, et kasutan teenust S3 - see on Amazoni lihtne salvestusteenus. Lõpuks on "ls" või "list" käsk, mida tahaksin selle teenuse vastu käivitada.

CLI, kasutades konto autentimise muutujaid, mille seadistustööriist minu keskkonda lisas, kiirustab nüüd ja pääseb juurde minu kontole, hankides sel juhul kõigi minu ämbrite nimed.

Prognoositavalt ütlete AWS-ile, et soovite töötada CloudFormationiga, kasutades pilvevormingut. Kui käivitan selle lihtsalt käsku määramata, kuvatakse tõrketeade:

aws cloudformation usage: aws [options]   [ ...] [parameters] To see help text, you can run: aws help aws  help aws   help aws: error: the following arguments are required: operation 

Kuid see on oluline sõnum, kuna see ütleb meile, kuidas pääseda sisse sisemisse dokumentatsiooni. Kontekstitundlik abi on saadaval igas kihis.

Vaadake, mis juhtub, kui lisate „pilvformatsiooni” järele „abi”. Saad lühikese kirjelduse ja seejärel kõigi saadaolevate alamkäsude loendi.

$ aws cloudformation help CLOUDFORMATION() CLOUDFORMATION() NAME cloudformation - DESCRIPTION AWS CloudFormation allows you to create and manage AWS infrastructure deployments predictably and repeatedly. You can use AWS CloudFormation to leverage AWS products, such as Amazon Elastic Compute Cloud, Amazon Elastic Block Store, Amazon Simple Notification Service, Elastic Load Balancing, and Auto Scaling to build highly-reliable, highly scalable, cost-effective applications without creating or configuring the underlying AWS infrastructure. With AWS CloudFormation, you declare all of your resources and dependencies in a template file. The template defines a collection of resources as a single unit called a stack. AWS CloudFormation creates and deletes all member resources of the stack together and manages all dependencies between the resources for you. For more information about AWS CloudFormation, see the AWS CloudFormation Product Page. Amazon CloudFormation makes use of other AWS products. If you need additional technical information about a specific AWS product, you can find the product's technical documentation at docs.aws.amazon.com. AVAILABLE COMMANDS o cancel-update-stack o continue-update-rollback o create-change-set o create-stack o create-stack-set o delete-change-set o delete-stack o delete-stack-instances o delete-stack-set o deploy o describe-account-limits o describe-change-set o describe-stack-events o describe-stack-instance o describe-stack-resource o describe-stack-resources o describe-stack-set o describe-stack-set-operation o describe-stacks o estimate-template-cost o execute-change-set o get-stack-policy [...]

Nüüd käivitage käsk "kirjeldage-korstnad". Teie kontol pole praegu tõenäoliselt ühtegi reaalajas virna, nii et te ei näe väljundit.

Kuid tehke seda uuesti, lisades seekord "abi". See kuvab teile mõned võimalused, mis võimaldavad teil tagasi saadud andmeid filtreerida või manipuleerida. Näiteks võite suunata CLI ühele konkreetsele virnale, kasutades "--stack-name", millele järgneb olemasoleva virna nimi.

$ aws cloudformation describe-stacks $ aws cloudformation describe-stacks help NAME describe-stacks - DESCRIPTION Returns the description for the specified stack; if no stack name was specified, then it returns the description for all the stacks created. NOTE: If the stack does not exist, an AmazonCloudFormationException is returned. See also: AWS API Documentation See 'aws help' for descriptions of global parameters. describe-stacks is a paginated operation. Multiple API calls may be issued in order to retrieve the entire data set of results. You can disable pagination by providing the --no-paginate argument. When using --output text and the --query argument on a paginated response, the --query argument must extract data from the results of the following query expressions: Stacks SYNOPSIS describe-stacks [--stack-name ] [--cli-input-json ] [--starting-token ] [--max-items ] [--generate-cli-skeleton ] OPTIONS --stack-name (string) The name or the unique stack ID that is associated with the stack, which are not always interchangeable: [...] $ aws cloudformation describe-stacks --stack-name myname 

Need on tööriistad, mis aitavad teil ükskõik millist AWS-i teenust kasutada. Kuid vaadates konkreetselt CloudFormationi, on mõned väärtuslikud ametlikud näidismallide kogud, millest peaksite teadma. JSONi või YAMLi süntaks on see, mis nad on, tõenäoliselt ei soovi te alustada tühjast dokumendist.

Amazon ise on teinud suurepärast tööd mallide loomiseks, millega saaksime koos töötada. Teie esimene peatus peaks olema leht AWS CloudFormation Templates. Siit leiate lingid koodilõikudele ja konkreetsetele rakenduste raamistikele ning veel mõnda tipptasemel sisu.

Aga praegu tahaksin juhtida teie tähelepanu ühele AWS-teenuse korraldatud "näidismallile" (see kood pärineb ühest Amazon EC2-st).

Mall algab vabas vormis kirjeldusega, mis ütleb meile abistavalt, millise virna see genereerib. Samuti öeldakse meile, et saaksime malli kohandada, kasutades olemasolevat elastset IP-aadressi automaatselt genereeritud aadressi asemel.

{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "AWS CloudFormation Sample Template EC2InstanceWithSecurityGroupSample: Create an Amazon EC2 instance running the Amazon Linux AMI. The AMI is chosen based on the region in which the stack is run. This example creates an EC2 security group for the instance to give you SSH access. **WARNING** This template creates an Amazon EC2 instance. You will be billed for the AWS resources used if you create a stack from this template.", 

Peate edastama oma AWS-konto praeguse piirkonna olemasoleva KeyPairi nime, et saaksite käivitada SSH-i kaugjuhtimispuldi käivitatavasse Linuxi eksemplari. Teise võimalusena saate selle väärtuse edasi anda käsurealt.

Jaotises Parameetrid saate määratleda ka EC2 eksemplari tüübi. Vaikimisi on t2.small, kuid meil oleks lubatud kas vahetada see väärtus mõne muu selles dokumendis oleva lubatud faili väärtuse vastu või tühistada see käsureal.

 "Parameters" : { "KeyName": { "Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instance", "Type": "AWS::EC2::KeyPair::KeyName", "ConstraintDescription" : "must be the name of an existing EC2 KeyPair." }, "InstanceType" : { "Description" : "WebServer EC2 instance type", "Type" : "String", "Default" : "t2.small", 

Kui sirvite jaotises Kaardistused alla, näeme iga piirkonna jaoks saadaolevate riistvaraarhitektuuride pikki loendeid ja Amazon Machine Image identifikaatoreid.

See on valikuline jaotis, kuhu saate sisestada oma mittestandardsed väärtused, nii et näiteks pilditüüp käivitatakse konkreetse parameetrite komplekti põhjal - võib-olla isegi privaatne AMI-pilt. Sellised andmed on korraldatud võtme / väärtuse paaridesse.

 "Mappings" : { "AWSInstanceType2Arch" : { "t1.micro" : { "Arch" : "HVM64" }, "t2.nano" : { "Arch" : "HVM64" }, "t2.micro" : { "Arch" : "HVM64" }, 

Sellisel juhul jaotises Ressursid määratletakse teie eksemplari keskkond. Näiteks SecurityGroup on konfigureeritud avama SSH-porti 22, kuid mitte midagi muud. Eksemplari avalik IP-aadress on seotud ka uue eraldatava IP-aadressiga.

 "InstanceSecurityGroup" : { "Type" : "AWS::EC2::SecurityGroup", "Properties" : { "GroupDescription" : "Enable SSH access via port 22", "SecurityGroupIngress" : [ { "IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : { "Ref" : "SSHLocation"} } ] } } }, 

Veel üks oluline Amazoni ressurss: kiirkäivitused. Rangelt öeldes pole siin eelnevalt koostatud taristu korstnad, mis aitavad teil luua keerukamaid pilve juurutusi, CloudFormationiga otseselt seotud. Kolmandate osapoolte ettevõtted pakkusid neid, et lihtsustada AWS-i platvormi infrastruktuuri ehitamise protsessi.

Kuid fakt on see, et igaüks algab oma unikaalse CloudFormationi malliga. Tegelike näidete vaatamiseks klõpsamine viib teid sageli GitHubi repo korstna lähtekoodi mallide juurde. See näide näitab meile tööriistu, mida vajate HashiCorpi konsooli käivitamiseks:

Mõlemal juhul kasutage neid malle õppevahenditena - või sirvige valikut, et näha, kas seal on virn, mis sobib teie vajadustega.

Halduse headust on palju rohkem raamatute, kursuste ja artiklite näol, mis on saadaval minu bootstrap-it.com lehel.