Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Gestion des environnements Elastic Beanstalk avec l'interface de ligne de commande EB
Une fois que vous avez installé l'interface de ligne de commande EB et configuré le répertoire de votre projet, vous pouvez créer un environnement Elastic Beanstalk via l'interface de ligne de commande EB, déployer les mises à jour de la source et de la configuration, et extraire les journaux et les événements.
Note
Créer des environnements avec l'interface de ligne de commande (CLI) EB nécessite un rôle de service. Vous pouvez créer un rôle de service en créant un environnement dans la console Elastic Beanstalk. Si vous n'avez pas de rôle de service, l'interface de ligne de commande (CLI) EB essaie d'en créer un lorsque vous exécutez eb create
.
L'interface de ligne de commande EB renvoie un code de sortie zéro (0
) pour toutes les commandes réussies, et un code de sortie autre que zéro lorsqu'il rencontre une erreur.
Les exemples suivants utilisent un dossier de projet vide nommé eb
, qui a été initialisé avec l'interface de ligne de commande EB pour être utilisé avec un exemple d'application Docker.
Eb create
Pour créer votre premier environnement, exécutez eb create et suivez les instructions. Si le répertoire de votre projet comporte du code source, l'interface de ligne de commande EB l'intègre dans un bundle et le déploie dans votre environnement. Sinon, un exemple d'application est utilisé.
~/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.
Plusieurs minutes peuvent s'écouler avant que votre environnement soit prêt. Pour revenir à la ligne de commande pendant la création de l'environnement, appuyez sur Ctrl+C.
Eb status
Exécutez eb status pour afficher l'état actuel de votre environnement. Lorsque l'état correspond à ready
, cela signifie que l'exemple d'application est disponible à l'adresse elasticbeanstalk.com et que l'environnement est prêt à être mis à jour.
~/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
Utilisez la commande eb health pour afficher les informations relatives à l'état des instances de votre environnement ainsi que l'état de votre environnement global. Utilisez l'option --refresh
pour afficher les informations relatives à l'état dans une vue interactive mise à jour toutes les 10 secondes.
~/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
Utilisez eb events pour afficher la liste des événements produits par 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
Utilisez eb logs pour extraire les journaux d'une instance de votre environnement. Par défaut, eb logs extrait les journaux de la première instance lancée et les affiche dans la sortie standard. Vous pouvez spécifier un ID d'instance avec l'option --instance afin d'obtenir les journaux d'une instance spécifique.
L'option --all extrait les journaux de toutes les instances et les enregistre dans des sous-répertoires, sous .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
Pour ouvrir le site Web de votre environnement dans un navigateur, utilisez eb open :
~/eb$ eb open
Dans un environnement en mode fenêtré, votre navigateur par défaut s'ouvre dans une nouvelle fenêtre. Dans un environnement en mode terminal, un navigateur en ligne de commande (par exemple, w3m) est utilisé s'il est disponible.
Eb deploy
Une fois que l'environnement est opérationnel, vous pouvez le mettre à jour à l'aide de la commande eb deploy.
Cette commande fonctionne mieux avec du code source à intégrer dans un bundle et à déployer. Pour cet exemple, nous avons donc créé un Dockerfile
dans le répertoire du projet, avec le contenu suivant :
~/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"]
Ce Dockerfile
déploie une image d'Ubuntu 12.04 et installe le jeu 2048
. Exécutez eb deploy pour charger l'application dans votre environnement :
~/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.
Lorsque vous exécutez eb deploy, l'interface de ligne de commande (CLI) EB crée un bundle avec le contenu de votre répertoire de projet et le déploie dans votre environnement.
Note
Si vous avez initialisé un référentiel git dans votre dossier de projet, l'interface de ligne de commande EB déploie toujours la dernière version validée, même si des modifications sont en attente. Validez vos modifications avant d'exécuter eb deploy pour les déployer dans votre environnement.
Eb config
Examinez les options de configuration disponibles pour votre environnement en cours d'exécution avec la commande 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'
...
Cette commande remplit une liste des options de configuration disponibles dans un éditeur de texte. La plupart des options affichées ont une valeur null
. Elles ne sont pas définies par défaut, mais elles peuvent être modifiées pour mettre à jour les ressources dans votre environnement. Pour de plus amples informations sur ces options, veuillez consulter Options de configuration.
Eb terminate
Si vous avez terminé d'utiliser l'environnement pour l'instant, utilisez la commande eb terminate pour le suspendre.
~/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)
Pour obtenir la liste complète des commandes de l'interface de ligne de commande EB, veuillez consulter Guide de référence des commandes de l'interface de ligne de commande (CLI) EB.
Important
Si vous résiliez un environnement, vous devez également supprimer tous les mappages CNAME que vous avez créés, car d'autres clients peuvent réutiliser un nom d'hôte disponible. Veillez à supprimer les enregistrements DNS qui pointent vers votre environnement résilié, afin d'éviter toute entrée DNS en suspens. Une entrée DNS bloquée peut exposer le trafic Internet destiné à votre domaine à des failles de sécurité. Elle peut également présenter d'autres risques.
Pour de plus amples informations, veuillez consulter Protection contre les enregistrements de délégation suspendus dans Route 53 dans le manuel du développeur Amazon Route 53. Vous pouvez également découvrir davantage le blocage des entrées DNS dans Protections de domaine améliorées pour les requêtes Amazon CloudFront