Elastic Beanstalk-Umgebungen mit der EB CLI verwalten - AWS Elastic Beanstalk

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Elastic Beanstalk-Umgebungen mit der EB CLI verwalten

Nachdem Sie die EB CLI installiert und das Projektverzeichnis konfiguriert haben, können Sie nun eine Elastic Beanstalk-Umgebung mit der EB CLI erstellen, Quell- und Konfigurationsaktualisierungen bereitstellen sowie Protokolle und Ereignisse abrufen.

Anmerkung

Zum Erstellen von Umgebungen mit der EB CLI ist eine Servicerolle erforderlich. Eine Servicerolle generieren Sie, indem Sie eine Umgebung in der Elastic-Beanstalk-Konsole erstellen. Falls keine Servicerolle vorhanden ist, versucht die EB CLI eine Rolle zu erstellen, wenn Sie ausführen eb create.

Die EB CLI gibt einen Beendigungscode gleich Null (0) für alle erfolgreichen Befehle zurück und einen Beendigungscode ungleich Null, wenn Fehler aufgetreten sind.

In den folgenden Beispielen wird ein leerer Projektordner mit dem Namen eb verwendet, der mit der EB CLI für eine Docker-Beispielanwendung initialisiert wurde.

Eb create

Zum Erstellen Ihrer ersten Umgebung führen Sie eb create aus und folgen Sie den Anweisungen. Falls das Projektverzeichnis Quellcode enthält, wird dieser von der EB CLI gebündelt und in der Umgebung bereitgestellt. Andernfalls wird eine Beispielanwendung verwendet.

~/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.

Es kann einige Minuten dauern, bis die Umgebung einsatzbereit ist. Drücken Sie Strg+C, um zur Befehlszeile zurückzukehren, während die Umgebung erstellt wird.

Eb status

Führen Sie eb status aus, um den aktuellen Status der Umgebung aufzurufen. Lautet der Status ready, steht die Beispielanwendung unter elasticbeanstalk.com zur Verfügung und die Umgebung kann aktualisiert werden.

~/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

Mit dem Befehl eb health zeigen Sie Zustandsinformationen zu den Instances der Umgebung sowie den allgemeinen Umgebungsstatus an. Verwenden Sie die Option --refresh, um den Zustand in einer aktiven Ansicht anzuzeigen, die alle 10 Sekunden aktualisiert wird.

~/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

Verwenden Sie eb events, um eine Liste der von Elastic Beanstalk ausgegebenen Ereignisse anzuzeigen.

~/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

Verwenden Sie eb logs, um Protokolle von einer Instance der Umgebung abzurufen. Standardmäßig werden mit eb logs Protokolle von der zuerst gestarteten Instance abgerufen und in der Standardausgabe angezeigt. Sie können eine Instance-ID mit der --instance-Option angeben und so Protokolle von einer bestimmten Instance abrufen.

Über die Option --all werden die Protokolle von allen Instances abgerufen und unter .elasticbeanstalk/logs in Unterverzeichnissen gespeichert.

~/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

Verwenden Sie eb open, um die Website der Umgebung in einem Browser zu öffnen:

~/eb$ eb open

In einer Windowed-Umgebung wird der Standardbrowser in einem neuen Fenster geöffnet. In einer Terminal-Umgebung wird ein Befehlszeilen-Browser (z. B. w3m) verwendet (sofern vorhanden).

Eb deploy

Sobald die Umgebung einsatzbereit ist, können Sie diese mit eb deploy aktualisieren.

Dieser Befehl ist besser geeignet, wenn Quellcode gebündelt und bereitgestellt wird, daher wurde in diesem Beispiel eine Dockerfile-Datei mit folgendem Inhalt im Projektverzeichnis erstellt:

~/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"]

Mit der Dockerfile-Datei wird ein Ubuntu 12.04-Image bereitgestellt und das Spiel 2048 installiert. Führen Sie eb deploy aus, um die Anwendung in die Umgebung hochzuladen:

~/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.

Bei Ausführung von eb deploy werden die Inhalte des Projektverzeichnisses von der EB CLI gebündelt und in der Umgebung bereitgestellt.

Anmerkung

Sofern Sie ein Git-Repository im Projektordner initialisiert haben, wird stets der neueste Commit von der EB CLI bereitgestellt, auch im Falle ausstehender Änderungen. Übergeben Sie die Änderungen, bevor Sie diese mit eb deploy in der Umgebung bereitstellen.

Eb config

Zeigen Sie mit dem Befehl eb config die Konfigurationsoptionen an, die für Ihre ausgeführte Umgebung verfügbar sind:

~/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' ...

Mit diesem Befehl wird eine Liste der verfügbaren Konfigurationsoptionen in einem Texteditor angezeigt. Viele der angezeigten Optionen weisen den Wert null auf, das heißt, sie werden nicht standardmäßig gesetzt, sondern können zur Aktualisierung der Umgebungsressourcen geändert werden. Weitere Informationen zu diesen Optionen finden Sie unter Konfigurationsoptionen.

Eb terminate

Falls Sie die Umgebung nicht mehr benötigen, können Sie diese mit eb terminate beenden.

~/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)

Eine vollständige Liste der verfügbaren EB CLI-Befehle finden Sie unter EB-CLI-Befehlsreferenz.

Wichtig

Wenn Sie eine Umgebung beenden, müssen Sie auch alle CNAME-Zuordnungen löschen, die Sie erstellt haben, damit andere Kunden einen verfügbaren Hostnamen wiederverwenden können. Achten Sie darauf, DNS-Einträge zu löschen, die auf Ihre beendete Umgebung verweisen, um zu verhindern, dass ein DNS-Eintrag hängenbleibt. Ein hängender DNS-Eintrag kann den Internetdatenverkehr, der für Ihre Domain bestimmt ist, Sicherheitslücken aussetzen. Er kann auch andere Risiken bergen.

Weitere Informationen finden Sie unter Schutz vor hängenden Delegierungsdatensätzen in Route 53 im Entwicklerhandbuch von Amazon Route 53. Sie können auch mehr über hängende DNS-Einträge in Enhanced Domain Protections for Amazon CloudFront Requests im AWS Security Blog erfahren.