Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Creare il tuo primo stack
Questo argomento illustra come creare il primo CloudFormation stack utilizzando. AWS Management Console Seguendo questo tutorial, imparerai come fornire AWS risorse di base, monitorare gli eventi dello stack e generare output.
Per questo esempio, il CloudFormation modello è scritto in YAML. YAML è un formato leggibile dall'uomo ampiamente utilizzato per definire l'infrastruttura come codice. Man mano che approfondisci CloudFormation, potresti incontrare anche altri modelli in formato JSON, ma per questo tutorial, YAML è stato scelto per la sua leggibilità.
Nota
CloudFormation è gratuito, ma ti verranno addebitati i costi per le risorse Amazon EC2 e Amazon S3 che crei. Tuttavia, se sei alle prime armi AWS, puoi sfruttare il piano gratuito
Argomenti
Prerequisiti
-
Devi avere accesso a un utente o ruolo IAM Account AWS con le autorizzazioni per utilizzare Amazon EC2, Amazon S3 e/o l'accesso come utente amministrativo. CloudFormation
-
È necessario disporre di un Virtual Private Cloud (VPC) con accesso a Internet. Per semplificare le cose, puoi utilizzare il VPC predefinito fornito automaticamente con il tuo account. Il VPC e le sottoreti predefiniti sono sufficienti per questo esercizio.
Crea uno CloudFormation stack con la console
Per creare uno CloudFormation stack Hello world con la console
-
Apri la CloudFormation console
. -
Scegli Crea stack.
-
Nella pagina Create stack, scegli Build from Infrastructure Composer, quindi Crea in Infrastructure Composer. In questo modo accedi a Infrastructure Composer in modalità CloudFormation console, dove puoi caricare e convalidare il modello di esempio.
-
Per caricare e convalidare il modello di esempio, procedi come segue:
-
Scegliete Modello. Quindi, copia e incolla il seguente CloudFormation modello nell'editor di modelli:
AWSTemplateFormatVersion: 2010-09-09 Description: CloudFormation Template for WebServer with Security Group and EC2 Instance Parameters: LatestAmiId: Description: The latest Amazon Linux 2 AMI from the Parameter Store Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>' Default: '/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2' InstanceType: Description: WebServer EC2 instance type Type: String Default: t2.micro AllowedValues: - t3.micro - t2.micro ConstraintDescription: must be a valid EC2 instance type. MyIP: Description: Your IP address in CIDR format (e.g. 203.0.113.1/32). Type: String MinLength: '9' MaxLength: '18' Default: 0.0.0.0/0 AllowedPattern: '^(\d{1,3}\.){3}\d{1,3}\/\d{1,2}$' ConstraintDescription: must be a valid IP CIDR range of the form x.x.x.x/x. Resources: WebServerSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Allow HTTP access via my IP address SecurityGroupIngress: - IpProtocol: tcp FromPort: '80' ToPort: '80' CidrIp: !Ref MyIP WebServer: Type: AWS::EC2::Instance Properties: ImageId: !Ref LatestAmiId InstanceType: !Ref InstanceType SecurityGroupIds: - !Ref WebServerSecurityGroup UserData: !Base64 | #!/bin/bash yum update -y yum install -y httpd systemctl start httpd systemctl enable httpd echo "<html><body><h1>Hello World!</h1></body></html>" > /var/www/html/index.html Outputs: WebsiteURL: Value: !Join - '' - - http:// - !GetAtt WebServer.PublicDnsName Description: Website URL
Prima di passare alla fase successiva, prendiamoci un momento per dare un'occhiata al modello e comprendere alcuni CloudFormation concetti chiave.
-
La
Parameters
sezione dichiara i valori che possono essere passati al modello quando si crea lo stack. Le risorse specificate più avanti nel modello fanno riferimento a questi valori e utilizzano i dati. I parametri sono un modo efficace per specificare le informazioni che non si desidera memorizzare nel modello stesso. Sono anche un modo per specificare informazioni che potrebbero essere uniche per l'applicazione o la configurazione specifica che stai distribuendo. -
Il modello definisce i seguenti parametri:
-
LatestAmiId
— Recupera l'ID AMI Amazon Linux 2 più recente dal AWS Systems Manager Parameter Store. -
InstanceType
— Consente la selezione del tipo di EC2 istanza (impostazione predefinita:t2.micro
, consentita:t3.micro
,t2.micro
). -
MyIP
— Speciifica l'intervallo di indirizzi IP per l'accesso HTTP (impostazione predefinita: 0.0.0.0/0, che consente l'accesso da qualsiasi IP).
-
-
La
Resources
sezione contiene le definizioni delle AWS risorse che si desidera creare con il modello. Le dichiarazioni di risorse sono un modo efficiente per specificare tutte queste impostazioni di configurazione in una sola volta. Quando includi dichiarazioni di risorse in un modello, puoi creare e configurare tutte le risorse dichiarate utilizzando quel modello per creare uno stack. Puoi anche creare nuovi stack dallo stesso modello per avviare configurazioni di risorse identiche. -
Questo modello crea le seguenti risorse:
-
WebServerSecurityGroup
— Un gruppo EC2 di sicurezza che consente il traffico HTTP in entrata sulla porta 80 dall'intervallo IP specificato. -
WebServer
— Un' EC2 istanza con la seguente configurazione:-
Utilizza la più recente AMI Amazon Linux 2
-
Applica il tipo di istanza selezionato
-
Aggiunge
WebServerSecurityGroup
allaSecurityGroupIds
proprietà -
Include uno script di dati utente per installare Apache HTTP Server
-
-
-
Un nome logico viene specificato all'inizio di ogni dichiarazione di risorse e parametri. Ad esempio,
WebServerSecurityGroup
è il nome logico assegnato alla risorsa del gruppo EC2 di sicurezza. LaRef
funzione viene quindi utilizzata per fare riferimento a risorse e parametri tramite i rispettivi nomi logici in altre parti del modello. Quando una risorsa fa riferimento a un'altra risorsa, ciò crea una dipendenza tra di esse. -
La
Outputs
sezione definisce i valori personalizzati che vengono restituiti dopo la creazione dello stack. È possibile utilizzare i valori di output per restituire informazioni dalle risorse dello stack, ad esempio identificatori di risorse o. URLs -
Il modello definisce un output:
-
WebsiteURL
— L'URL del server Web distribuito, creato utilizzando il nome DNS pubblico dell' EC2istanza. LaJoin
funzione aiuta a combinare il fissohttp://
con la variabilePublicDnsName
in un'unica stringa, semplificando l'output dell'URL completo del server web.
-
-
-
Scegli Convalida per assicurarti che il codice YAML sia valido prima di caricare il modello.
-
Quindi, scegli Crea modello per creare il modello e aggiungerlo a un bucket S3.
-
Nella finestra di dialogo che si apre, prendi nota del nome del bucket S3 in modo da poterlo eliminare in un secondo momento. Quindi, scegli Conferma e continua con. CloudFormation Questo ti porta alla CloudFormation console in cui è ora specificato il percorso S3 del tuo modello.
-
-
Nella pagina Crea stack, scegli Avanti.
-
Nella pagina Specificare i dettagli dello stack, digita un nome nel campo Nome dello stack. Il nome dello stack non può contenere spazi. Per questo esempio, utilizzare
MyTestStack
. -
In Parametri, specificate i valori dei parametri come segue:
-
LatestAmiId: per impostazione predefinita, è impostata sull'ultima AMI Amazon Linux 2.
-
InstanceType: Scegli t2.micro o t3.micro per il tipo di istanza. EC2
Nota
Se non lo utilizzi AWS, puoi utilizzare il piano gratuito per avviare e utilizzare un'
t2.micro
istanza gratuitamente per 12 mesi (nelle regioni in cui nont2.micro
è disponibile, puoi utilizzare un't3.micro
istanza al di sotto del piano gratuito). -
MyIP: Specificate il vostro indirizzo IP pubblico effettivo con un
/32
suffisso. Il/32
suffisso viene utilizzato nella notazione CIDR per specificare che è consentito un singolo indirizzo IP. Significa essenzialmente consentire il traffico da e verso questo indirizzo IP specifico e nessun altro.
-
-
Scegli Avanti due volte per andare alla pagina Rivedi e crea. Per questo tutorial, puoi lasciare le impostazioni predefinite nella pagina Configura le opzioni dello stack così come sono.
-
Rivedi le informazioni per lo stack. Quando si è soddisfatti delle impostazioni, seleziona Submit (Invia).
Monitora la creazione dello stack
Dopo aver scelto Invia, CloudFormation inizia a creare le risorse specificate nel modello. Il nuovo stack,MyTestStack
, viene visualizzato nell'elenco nella parte superiore della CloudFormationconsole. Il suo stato dovrebbe essereCREATE_IN_PROGRESS
. È possibile vedere lo stato dettagliato di uno stack visualizzandone gli eventi.
Visualizzazione degli eventi per lo stack
-
Sulla CloudFormation console, scegli lo stack
MyTestStack
nell'elenco. -
Nel riquadro dei dettagli dello stack, scegliere la scheda Events (Eventi).
La console aggiorna automaticamente l'elenco di eventi con gli eventi più recenti ogni 60 secondi.
La scheda Events (Eventi) mostra tutte le fasi principali nella creazione dello stack, ordinate per orario dell'evento, con gli ultimi eventi nella parte superiore.
Il primo evento (nella parte inferiore dell'elenco di eventi) è l'inizio del processo di creazione dello stack:
2024-12-23 18:54 UTC-7 MyTestStack CREATE_IN_PROGRESS User initiated
Di seguito vengono mostrati tutti gli eventi che segnano l'inizio e il completamento della creazione di ogni risorsa. Ad esempio, la creazione dell' EC2 istanza genera le seguenti voci:
2024-12-23 18:59 UTC-7 WebServer CREATE_COMPLETE
2024-12-23 18:54 UTC-7 WebServer CREATE_IN_PROGRESS Resource creation
initiated
L'CREATE_IN_PROGRESS
evento viene registrato quando CloudFormation segnala che ha iniziato a creare la risorsa. L'evento CREATE_COMPLETE
viene registrato quando la risorsa viene creata senza errori.
Una volta CloudFormation creato con successo lo stack, vedrai il seguente evento nella parte superiore della scheda Eventi:
2024-12-23 19:17 UTC-7 MyTestStack CREATE_COMPLETE
Se non CloudFormation riesce a creare una risorsa, segnala un CREATE_FAILED
evento e, per impostazione predefinita, ripristina lo stack ed elimina tutte le risorse che sono state create. La colonna Status Reason (Motivo dello stato) mostra il problema che ha causato l'errore.
Dopo aver creato lo stack, puoi andare alla scheda Risorse per visualizzare l' EC2 istanza e il gruppo di sicurezza che hai creato.
Prova il server web
Dopo aver creato correttamente lo stack, vai alla scheda Output nella CloudFormation console. Cerca il campo WebsiteURL. Questo conterrà l'URL pubblico della tua istanza. EC2
Apri un browser e vai all'URL elencato in WebsiteURL. Dovresti vedere un semplice "Hello World!" messaggio visualizzato nel browser.
Ciò conferma che l' EC2 istanza esegue Apache HTTP Server e serve una pagina Web di base.
Eliminazione
Per assicurarti che non ti vengano addebitati servizi indesiderati, puoi eseguire una pulizia eliminando lo stack e le relative risorse. Puoi anche eliminare il bucket S3 che memorizza il modello dello stack.
Eliminare lo stack e delle relative risorse
-
Apri la CloudFormation console
. -
Nella pagina Stack, seleziona l'opzione accanto al nome dello stack che hai creato (
MyTestStack
), quindi scegli Elimina. -
Quando viene richiesta la conferma, seleziona Delete (Elimina).
-
Monitora l'avanzamento del processo di eliminazione dello stack nella scheda Evento. Lo stato di
MyTestStack
cambia inDELETE_IN_PROGRESS
. Una volta CloudFormation completata l'eliminazione dello stack, lo rimuove dall'elenco.
Se hai finito di lavorare con il modello di esempio e non hai più bisogno del tuo bucket Amazon S3, eliminalo. Prima di poter eliminare un bucket, devi prima svuotarlo. Lo svuotamento di un bucket elimina tutti gli oggetti in esso contenuti.
Per svuotare ed eliminare il bucket Amazon S3
-
Apri la console Amazon S3
. -
Nel riquadro di navigazione sul lato sinistro della console scegliere Bucket.
-
Nell'elenco Bucket, seleziona l'opzione accanto al nome del bucket che hai creato per questo tutorial, quindi scegli Empty.
-
Nella pagina Svuota il bucket, conferma che desideri svuotare il bucket digitando
permanently delete
nel campo di testo, quindi scegli Svuota. -
Monitorare l'avanzamento del processo di svuotamento del bucket nella pagina Svuota bucket: stato.
-
Per tornare all'elenco dei bucket, scegliere Exit (Esci).
-
Seleziona l'opzione accanto al nome del bucket, quindi scegli Elimina.
-
Quando viene richiesta la conferma, digita il nome del bucket, quindi scegli Elimina bucket.
-
Monitora l'avanzamento del processo di eliminazione del bucket dall'elenco dei bucket. Quando Amazon S3 completa l'eliminazione del bucket, lo rimuove dall'elenco.
Passaggi successivi
Complimenti! Hai creato con successo uno stack, monitorato le sue creazioni e ne hai utilizzato l'output. Per saperne di più sui modelli in modo da poterne creare di personalizzati, consulta. Lavorare con i CloudFormation modelli
Per ulteriori procedure dettagliate incentrate su esempi di utilizzo CloudFormation più complessi, consulta. CloudFormation procedure dettagliate