AWS CloudFormation: Hol találhat segítséget, amikor szüksége van rá

Megalázó élmény lehet egy sima, buta parancssori bámulás, és fogalma sincs, mit kell kezdeni az AWS CLI-vel. Legalábbis az én tapasztalatom szerint rosszabb lehet az AWS CloudFormation felügyeleti konzoljára nézni.

Tehát hadd ajánljak neked néhány gyors "kezdő lépést" a legújabb Pluralsight tanfolyamom tartalmának egy része alapján.

Először is, ha a CloudFormation csomagok kezelését az AWS CLI-n keresztül, nem pedig a Kezelői konzolon keresztül kívánja kezelni, akkor ebben a cikkben tárgyalom az alapokat. Miután mindezt elintézte, bármire készen áll.

Kezdje egyszerűen:

$ 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

Ebben a példában az "aws" azt mondja a héjának, hogy azt szeretné, hogy a következő dolgokat az AWS CLI kezelje. Az ezután beírt "s3" azt mondja a CLI-nek, hogy az S3 szolgáltatást fogom használni - ez az Amazon egyszerű tárolási szolgáltatása. Végül az "ls" vagy a "list" az a parancs, amelyet futtatni szeretnék a szolgáltatás ellen.

A CLI a fiók hitelesítési változók segítségével, amelyeket a konfigurációs eszköz hozzáadott a környezetemhez, most siet, és hozzáfér a fiókomhoz, ebben az esetben az összes csoportom nevét lekérve.

Előre láthatólag elmondja az AWS-nek, hogy a CloudFormation használatával a "felhőformáció" használatát tervezi. Ha csak parancs megadása nélkül futtatom, akkor hibaüzenetet kapok:

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 

De ez egy fontos üzenet, mivel elárulja, hogyan férjünk hozzá a belső dokumentációhoz. Környezetfüggő súgó minden rétegben elérhető.

Nézze meg, mi történik, ha a „felhőalapú formázás” után felveszi a „help” szót. Kapsz egy rövid leírást, majd az összes elérhető alparancs listáját.

$ 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 [...]

Most futtassa a "leír-verem" parancsot. Valószínűleg jelenleg nincs élő verem a fiókjában, így nem lát semmilyen kimenetet.

De tedd meg újra, ezúttal adj hozzá "segítséget". Ez megmutat néhány lehetőséget, amelyek lehetővé teszik a visszakapott adatok szűrését vagy manipulálását. Például a CLI-t egy adott veremre irányíthatja a "--stack-name" és egy meglévő verem neve után.

$ 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 

Ezek olyan eszközök, amelyek segítséget nyújtanak, függetlenül attól, hogy milyen AWS szolgáltatást használ. De konkrétan a CloudFormation-t tekintve, van néhány értékes hivatalos mintagyűjtemény sablon, amelyekről tudnia kell. Mivel a JSON vagy a YAML szintaxis olyan, amilyenek, valószínűleg nem akar üres dokumentumból indulni.

Maga az Amazon is nagyszerű munkát végzett sablonok létrehozásával, amelyekkel dolgozhattunk. Első megállója az AWS CloudFormation sablonok oldal legyen. Itt talál részleteket és konkrét alkalmazás-keretrendszereket, valamint néhány újabb élvonalbeli tartalmat.

De most szeretném felhívni a figyelmét az AWS szolgáltatás által szervezett egyik „mintasablonra” (ez a kód az Amazon EC2 egyik példájából származik).

A sablon egy szabad űrlapleírással kezdődik, amely segítőkészen megmondja nekünk, hogy ez milyen verem keletkezik. Azt is elmondták nekünk, hogy testreszabhatjuk a sablont egy meglévő rugalmas IP-cím használatával az automatikusan létrehozott helyett.

{ "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.", 

Meg kell adnia egy meglévő KeyPair nevét az AWS-fiók jelenlegi régiójából, így távoli SSH-t nyithat meg az elindítandó Linux-példányban. Alternatív megoldásként átadhatja ezt az értéket a parancssorból.

A Paraméterek részben definiálható az EC2 példány típusa is. Az alapértelmezett érték a t2.small, de megengedjük, hogy ezt az értéket kicseréljük a dokumentumban szereplő bármely más Engedélyezett értékre, vagy felülírjuk a parancssorból.

 "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", 

Ha lefelé görget a leképezések részben, hosszú listákat láthatunk az egyes régiókhoz elérhető hardverarchitektúrákról és az Amazon Machine Image azonosítókról.

Ez egy opcionális szakasz, ahová beillesztheti saját nem szabványos értékeit, így például egy képtípus elindulna egy adott paraméterkészlet alapján - talán még egy privát AMI-kép alapján is. Az ilyen adatokat kulcs / érték párokba rendezik.

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

Az Erőforrások szakasz ebben az esetben meghatározza a példány környezetét. A SecurityGroup például úgy van beállítva, hogy megnyissa az SSH 22-es portot, de semmi mást. A példány nyilvános IP-címe is hozzárendelésre kerül a kiosztandó új rugalmas IP-címhez.

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

Még egy fontos Amazon-forrás: Gyors indítás. A komplexebb felhőalapú telepítések létrehozásának elősegítéséhez itt megadott előre épített infrastruktúra-halmazok szigorúan véve nem közvetlenül kapcsolódnak a CloudFormationhoz. Harmadik féltől származó vállalatok bocsátották őket rendelkezésre, hogy egyszerűsítsék infrastruktúrájuk építését az AWS platformon belül.

De tény, hogy mindegyik a saját egyedi CloudFormation sablonjával indul. Ha rákattint a tényleges példák megtekintésére, gyakran a verem forráskód-sablonjaihoz vezet egy GitHub-repóban. Ez a példa megmutatja azokat az eszközöket, amelyekre szüksége lehet a HashiCorp konzol indításához:

Bármelyik módon is, nyugodtan használja ezeket a sablonokat tanulási eszközként - vagy böngésszen a választék között, és nézze meg, van-e ott egy halom, amely megfelel az Ön igényeinek.

Sokkal több adminisztrációs jóság érhető el könyvek, tanfolyamok és cikkek formájában a bootstrap-it.com webhelyen.