Ajuste de opciones de configuración antes de crear el entorno - AWS Elastic Beanstalk

Ajuste de opciones de configuración antes de crear el entorno

AWS Elastic Beanstalk admite un gran número de opciones de configuración que le permiten modificar los valores que se aplican a los recursos de su entorno. Varias de estas opciones tienen valores predeterminados que pueden invalidarse para personalizar su entorno. Otras opciones se pueden configurar para habilitar características adicionales.

Elastic Beanstalk admite dos métodos para guardar valores de opciones de configuración. Se pueden incluir archivos de configuración en formato YAML o JSON en el código fuente de su aplicación en un directorio denominado .ebextensions e implementarse como parte del paquete de código fuente de su aplicación. Los archivos de configuración se crean y administran localmente.

Las configuraciones guardadas son plantillas que crea desde un entorno en ejecución o archivo de opciones JSON y almacena en Elastic Beanstalk. Las configuraciones guardadas existentes también se pueden ampliar para crear una nueva configuración.

nota

Los valores definidos en los archivos de configuración y las configuraciones guardadas tienen menos prioridad que los valores configurados durante o después de la creación del entorno, incluidos los valores recomendados aplicados por la consola de Elastic Beanstalk y la CLI de EB. Para obtener más información, consulte Prioridad.

Las opciones se pueden especificar también en un documento JSON y proporcionarse directamente a Elastic Beanstalk al crear o actualizar un entorno con la CLI de EB o la CLI de AWS. Las opciones proporcionadas directamente a Elastic Beanstalk de esta forma invalidan todos los demás métodos.

Para ver la lista completa de opciones disponibles, consulte Opciones de configuración.

Archivos de configuración (.ebextensions)

Utilice .ebextensions para configurar opciones que sean necesarias para que su aplicación funcione y para proporcionar valores predeterminados para otras opciones que se puedan invalidar en un nivel mayor de prioridad. Las opciones especificadas en .ebextensions tienen el nivel de prioridad más bajo y se invalidan con los valores de cualquier otro nivel.

Para utilizar archivos de configuración, cree una carpeta con el nombre .ebextensions en la parte superior del código fuente de su proyecto. Añada un archivo con la extensión .config y especifique las opciones de la siguiente manera:

option_settings: - namespace: namespace option_name: option name value: option value - namespace: namespace option_name: option name value: option value

Por ejemplo, el siguiente archivo de configuración establece la URL de comprobación de estado de la aplicación en /health:

healthcheckurl.config

option_settings: - namespace: aws:elasticbeanstalk:application option_name: Application Healthcheck URL value: /health

En JSON:

{ "option_settings" : [ { "namespace" : "aws:elasticbeanstalk:application", "option_name" : "Application Healthcheck URL", "value" : "/health" } ] }

Esto configura el balanceador de carga de Elastic Load Balancing de su entorno de Elastic Beanstalk para que realice una solicitud HTTP a la ruta /health a cada instancia EC2 con el fin de determinar si está en buen estado o no.

nota

YAML usa la sangría uniforme. Utilice el mismo nivel de sangría cuando sustituya el contenido en el archivo de configuración de ejemplo y asegúrese de que el editor de texto utiliza espacios para la sangría, no tabuladores.

Incluya el directorio .ebextensions en el paquete de código fuente de la aplicación e impleméntelo en un entorno de Elastic Beanstalk nuevo o existente.

Los archivos de configuración admiten varias secciones además de option_settings para personalizar el software y los archivos que se ejecutan en los servidores de su entorno. Para obtener más información, consulte .Ebextensions.

Configuraciones guardadas

Cree una configuración guardada para guardar los valores que ha aplicado a un entorno existente durante o después de la creación del entorno mediante la consola de Elastic Beanstalk, la CLI de EB o la CLI de AWS. Las configuraciones guardadas pertenecen a una aplicación y se pueden aplicar a entornos nuevos o existentes de dicha aplicación.

Consola de Elastic Beanstalk

Para crear una configuración guardada (consola de Elastic Beanstalk)

  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (Regiones), seleccione su región de AWS.

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. Elija Environment Actions (Acciones de entorno), y, a continuación, seleccione Save configuration (Guardar configuración).

  4. Utilice el cuadro de diálogo en pantalla para completar la acción.

Las configuraciones guardadas se almacenan en el bucket de S3 de Elastic Beanstalk en una carpeta en la que está incluida el nombre de la aplicación. Por ejemplo, las configuraciones de una aplicación llamada my-app en la región us-west-2 para el número de cuenta 123456789012 se encuentran en s3://elasticbeanstalk-us-west-2-123456789012/resources/templates/my-app.

CLI de EB

La CLI de EB proporciona también subcomandos para interactuar con las configuraciones guardadas en eb config:

Para crear una configuración guardada (CLI de EB)

  1. Guarde la configuración actual del entorno asociado:

    ~/project$ eb config save --cfg my-app-v1

    La CLI de EB guarda la configuración en ~/project/.elasticbeanstalk/saved_configs/my-app-v1.cfg.yml

  2. Modifique la configuración guardada localmente en caso necesario.

  3. Cargue la configuración guardada en S3:

    ~/project$ eb config put my-app-v1

CLI de AWS

Creación de una configuración guardada desde un entorno en ejecución con aws elasticbeanstalk create-configuration-template

Para crear una configuración guardada (CLI de AWS)

  1. Identifique el ID de entorno de su entorno de Elastic Beanstalk con describe-environments:

    $ aws elasticbeanstalk describe-environments --environment-name my-env { "Environments": [ { "ApplicationName": "my-env", "EnvironmentName": "my-env", "VersionLabel": "89df", "Status": "Ready", "Description": "Environment created from the EB CLI using \"eb create\"", "EnvironmentId": "e-vcghmm2zwk", "EndpointURL": "awseb-e-v-AWSEBLoa-1JUM8159RA11M-43V6ZI1194.us-west-2.elb.amazonaws.com", "SolutionStackName": "64bit Amazon Linux 2015.03 v2.0.2 running Multi-container Docker 1.7.1 (Generic)", "CNAME": "my-env-nfptuqaper.elasticbeanstalk.com", "Health": "Green", "AbortableOperationInProgress": false, "Tier": { "Version": " ", "Type": "Standard", "Name": "WebServer" }, "HealthStatus": "Ok", "DateUpdated": "2015-10-01T00:24:04.045Z", "DateCreated": "2015-09-30T23:27:55.768Z" } ] }
  2. Guarde la configuración actual del entorno con create-configuration-template:

    $ aws elasticbeanstalk create-configuration-template --environment-id e-vcghmm2zwk --application-name my-app --template-name v1

Elastic Beanstalk guarda la configuración en su bucket de Elastic Beanstalk en Amazon S3.

Documento JSON

Si utiliza la CLI de AWS para crear y actualizar entornos, también puede proporcionar opciones de configuración en formato JSON. Una biblioteca de archivos de configuración en JSON es útil si utiliza la CLI de AWS para crear y administrar entornos.

Por ejemplo, el siguiente documento JSON establece la URL de comprobación de estado de la aplicación en /health:

~/ebconfigs/healthcheckurl.json

[ { "Namespace": "aws:elasticbeanstalk:application", "OptionName": "Application Healthcheck URL", "Value": "/health" } ]

Configuración de la CLI de EB

Además de admitir configuraciones guardadas y la configuración directa del entorno con comandos eb config, la CLI de EB tiene un archivo de configuración con una opción denominada default_ec2_keyname que puede utilizar para especificar un par de claves de Amazon EC2 para el acceso SSH a las instancias de su entorno. La CLI de EB utiliza esta opción para establecer la opción de configuración EC2KeyName en el espacio de nombres aws:autoscaling:launchconfiguration.

~/workspace/my-app/.elasticbeanstalk/config.yml

branch-defaults: master: environment: my-env develop: environment: my-env-dev deploy: artifact: ROOT.war global: application_name: my-app default_ec2_keyname: my-keypair default_platform: Tomcat 8 Java 8 default_region: us-west-2 profile: null sc: git