Gestione degli ambienti Elastic Beanstalk con l'interfaccia a riga di comando EB - AWS Elastic Beanstalk

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à.

Gestione degli ambienti Elastic Beanstalk con l'interfaccia a riga di comando EB

Dopo aver installato l'interfaccia a riga di comando EB e configurato la directory di progetto, potrai creare un ambiente Elastic Beanstalk utilizzando l'interfaccia a riga di comando EB per distribuire aggiornamenti di configurazione e origine e per ottenere log ed eventi.

Nota

La creazione di ambienti con CLI EB richiede un ruolo del servizio. Puoi creare un ruolo di servizio tramite la creazione di un ambiente nella console Elastic Beanstalk. Se non disponi di un ruolo del servizio, CLI EB tenta di crearne uno durante l'esecuzione di eb create.

L'interfaccia a riga di comando EB restituisce un codice di uscita pari a zero (0) per tutti i comandi con esito positivo e un codice di uscita diverso da zero quando si verifica un errore.

Il seguente esempio utilizza una cartella di progetto vuota denominata eb, inizializzata con l'interfaccia a riga di comando EB per l'uso con un'applicazione Docker di esempio.

Eb create

Per creare il tuo primo ambiente, esegui eb create e segui le istruzioni. Se la tua directory di progetto include codice sorgente, l'interfaccia a riga di comando EB lo aggregherà in bundle e lo distribuirà al tuo ambiente. In caso contrario, verrà utilizzata un'applicazione di esempio.

~/eb$ eb create Enter Environment Name (default is eb-dev): eb-dev Enter DNS CNAME prefix (default is eb-dev): eb-dev WARNING: The current directory does not contain any source code. Elastic Beanstalk is launching the sample application instead. Environment details for: elasticBeanstalkExa-env Application name: elastic-beanstalk-example Region: us-west-2 Deployed Version: Sample Application Environment ID: e-j3pmc8tscn Platform: 64bit Amazon Linux 2015.03 v1.4.3 running Docker 1.6.2 Tier: WebServer-Standard CNAME: eb-dev.elasticbeanstalk.com Updated: 2015-06-27 01:02:24.813000+00:00 Printing Status: INFO: createEnvironment is starting. -- Events -- (safe to Ctrl+C) Use "eb abort" to cancel the command.

Prima che il tuo ambiente sia pronto potrebbero passare diversi minuti. Premi Ctrl+C per tornare alla riga di comando durante la creazione dell'ambiente.

Eb status

Esegui eb status per visualizzare lo stato attuale del tuo ambiente. Quando lo stato è ready, l'applicazione di esempio è disponibile in elasticbeanstalk.com e l'ambiente è pronto per essere aggiornato.

~/eb$ eb status Environment details for: elasticBeanstalkExa-env Application name: elastic-beanstalk-example Region: us-west-2 Deployed Version: Sample Application Environment ID: e-gbzqc3jcra Platform: 64bit Amazon Linux 2015.03 v1.4.3 running Docker 1.6.2 Tier: WebServer-Standard CNAME: elasticbeanstalkexa-env.elasticbeanstalk.com Updated: 2015-06-30 01:47:45.589000+00:00 Status: Ready Health: Green

Eb health

Utilizza il comando eb health per visualizzare le informazioni sullo stato delle istanze nel tuo ambiente e sullo stato dell'ambiente in generale. Utilizza l'opzione --refresh per vedere lo stato in una visualizzazione interattiva che si aggiorna ogni 10 secondi.

~/eb$ eb health api Ok 2016-09-15 18:39:04 WebServer Java 8 total ok warning degraded severe info pending unknown 3 3 0 0 0 0 0 0 instance-id status cause health Overall Ok i-0ef05ec54918bf567 Ok i-001880c1187493460 Ok i-04703409d90d7c353 Ok instance-id r/sec %2xx %3xx %4xx %5xx p99 p90 p75 p50 p10 Overall 8.6 100.0 0.0 0.0 0.0 0.083* 0.065 0.053 0.040 0.019 i-0ef05ec54918bf567 2.9 29 0 0 0 0.069* 0.066 0.057 0.050 0.023 i-001880c1187493460 2.9 29 0 0 0 0.087* 0.069 0.056 0.050 0.034 i-04703409d90d7c353 2.8 28 0 0 0 0.051* 0.027 0.024 0.021 0.015 instance-id type az running load 1 load 5 user% nice% system% idle% iowait% i-0ef05ec54918bf567 t2.micro 1c 23 mins 0.19 0.05 3.0 0.0 0.3 96.7 0.0 i-001880c1187493460 t2.micro 1a 23 mins 0.0 0.0 3.2 0.0 0.3 96.5 0.0 i-04703409d90d7c353 t2.micro 1b 1 day 0.0 0.0 3.6 0.0 0.2 96.2 0.0 instance-id status id version ago deployments i-0ef05ec54918bf567 Deployed 28 app-bc1b-160915_181041 20 mins i-001880c1187493460 Deployed 28 app-bc1b-160915_181041 20 mins i-04703409d90d7c353 Deployed 28 app-bc1b-160915_181041 27 mins

Eb events

Utilizza eb events per visualizzare un elenco di eventi output di Elastic Beanstalk.

~/eb$ eb events 2015-06-29 23:21:09 INFO createEnvironment is starting. 2015-06-29 23:21:10 INFO Using elasticbeanstalk-us-east-2-EXAMPLE as Amazon S3 storage bucket for environment data. 2015-06-29 23:21:23 INFO Created load balancer named: awseb-e-g-AWSEBLoa-EXAMPLE 2015-06-29 23:21:42 INFO Created security group named: awseb-e-gbzqc3jcra-stack-AWSEBSecurityGroup-EXAMPLE ...

Eb logs

Utilizza eb logs per estrarre log da un'istanza nel tuo ambiente. Per impostazione predefinita, eb logs estrae log dalla prima istanza lanciata e li visualizza nell'output standard. Puoi specificare un ID istanza con l'opzione --instance per ottenere log da un'istanza specifica.

L'opzione --all estrae log da tutte le istanze e li salva nelle sottodirectory in .elasticbeanstalk/logs.

~/eb$ eb logs --all Retrieving logs... Logs were saved to /home/local/ANT/mwunderl/ebcli/environments/test/.elasticbeanstalk/logs/150630_201410 Updated symlink at /home/local/ANT/mwunderl/ebcli/environments/test/.elasticbeanstalk/logs/latest

Eb open

Per aprire il sito Web del tuo ambiente in un browser, utilizza eb open:

~/eb$ eb open

In un ambiente in modalità finestra, il tuo browser predefinito verrà aperto in una nuova finestra. In un ambiente in modalità terminale, verrà utilizzato un browser a riga di comando (ad esempio w3m), se disponibile.

Eb deploy

Una volta che l'ambiente è operativo, puoi aggiornarlo utilizzando eb deploy.

Questo comando funziona meglio con codice sorgente da integrare in un bundle e distribuire. Pertanto per questo esempio abbiamo creato un Dockerfile nella directory di progetto con il seguente contenuto:

~/eb/Dockerfile

FROM ubuntu:12.04 RUN apt-get update RUN apt-get install -y nginx zip curl RUN echo "daemon off;" >> /etc/nginx/nginx.conf RUN curl -o /usr/share/nginx/www/master.zip -L https://codeload.github.com/gabrielecirulli/2048/zip/master RUN cd /usr/share/nginx/www/ && unzip master.zip && mv 2048-master/* . && rm -rf 2048-master master.zip EXPOSE 80 CMD ["/usr/sbin/nginx", "-c", "/etc/nginx/nginx.conf"]

Questo Dockerfile distribuisce un'immagine di Ubuntu 12.04 e installa il gioco 2048. Esegui eb deploy per caricare l'applicazione nel tuo ambiente:

~/eb$ eb deploy Creating application version archive "app-150630_014338". Uploading elastic-beanstalk-example/app-150630_014338.zip to S3. This may take a while. Upload Complete. INFO: Environment update is starting. -- Events -- (safe to Ctrl+C) Use "eb abort" to cancel the command.

Quando esegui eb deploy, la CLI EB integra i contenuti della tua directory di progetto in un bundle e li distribuisce al tuo ambiente.

Nota

Se hai inizializzato un archivio git nella tua cartella di progetto, l'interfaccia a riga di comando EB distribuirà sempre il commit più recente, anche se sono presenti modifiche in sospeso. Applica le modifiche prima di eseguire eb deploy per distribuirle al tuo ambiente.

Eb config

Controlla le opzioni di configurazione disponibili per l'ambiente in esecuzione con il comando eb config:

~/eb$ eb config ApplicationName: elastic-beanstalk-example DateUpdated: 2015-06-30 02:12:03+00:00 EnvironmentName: elasticBeanstalkExa-env SolutionStackName: 64bit Amazon Linux 2015.03 v1.4.3 running Docker 1.6.2 settings: AWSEBAutoScalingScaleDownPolicy.aws:autoscaling:trigger: LowerBreachScaleIncrement: '-1' AWSEBAutoScalingScaleUpPolicy.aws:autoscaling:trigger: UpperBreachScaleIncrement: '1' AWSEBCloudwatchAlarmHigh.aws:autoscaling:trigger: UpperThreshold: '6000000' ...

Questo comando popola un elenco di opzioni di configurazione disponibili in un editor di testo. Molte delle opzioni visualizzate presentano un valore null. Non sono configurate per impostazione predefinita, ma possono essere modificate per aggiornare le risorse nel tuo ambiente. Per ulteriori informazioni su queste opzioni, consulta Opzioni di configurazione.

Eb terminate

Se per il momento hai finito di utilizzare l'ambiente, usa eb terminate per chiuderlo.

~/eb$ eb terminate The environment "eb-dev" and all associated instances will be terminated. To confirm, type the environment name: eb-dev INFO: terminateEnvironment is starting. INFO: Deleted CloudWatch alarm named: awseb-e-jc8t3pmscn-stack-AWSEBCloudwatchAlarmHigh-1XLMU7DNCBV6Y INFO: Deleted CloudWatch alarm named: awseb-e-jc8t3pmscn-stack-AWSEBCloudwatchAlarmLow-8IVI04W2SCXS INFO: Deleted Auto Scaling group policy named: arn:aws:autoscaling:us-east-2:123456789012:scalingPolicy:1753d43e-ae87-4df6-a405-11d31f4c8f97:autoScalingGroupName/awseb-e-jc8t3pmscn-stack-AWSEBAutoScalingGroup-90TTS2ZL4MXV:policyName/awseb-e-jc8t3pmscn-stack-AWSEBAutoScalingScaleUpPolicy-A070H1BMUQAJ INFO: Deleted Auto Scaling group policy named: arn:aws:autoscaling:us-east-2:123456789012:scalingPolicy:1fd24ea4-3d6f-4373-affc-4912012092ba:autoScalingGroupName/awseb-e-jc8t3pmscn-stack-AWSEBAutoScalingGroup-90TTS2ZL4MXV:policyName/awseb-e-jc8t3pmscn-stack-AWSEBAutoScalingScaleDownPolicy-LSWFUMZ46H1V INFO: Waiting for EC2 instances to terminate. This may take a few minutes. -- Events -- (safe to Ctrl+C)

Per l'elenco completo dei comandi disponibili dell'interfaccia a riga di comando EB, consulta Riferimento ai comandi CLI EB.

Importante

Se un ambiente viene terminato, è necessario anche eliminare eventuali mappature CNAME create, poiché altri clienti possono riutilizzare un nome host disponibile. Assicurati di eliminare i record DNS che puntano al tuo ambiente terminato per evitare una voce DNS inesatta. Una voce DNS inesatta può esporre il traffico Internet destinato al tuo dominio a vulnerabilità di sicurezza. Può presentare anche altri rischi.

Per ulteriori informazioni, consulta l'argomento relativo alla Protezione dai record di delega inesatti in Route 53 nella Guida per sviluppatori di Amazon Route 53. Puoi anche saperne di più sulle voci DNS inesatte in Richieste di protezione del dominio avanzata per Amazon CloudFront nel Blog di sicurezza AWS.