Opciones de configuración - AWS Elastic Beanstalk

Opciones de configuración

Elastic Beanstalk define un gran número de opciones de configuración que puede utilizar para configurar el comportamiento del entorno y los recursos que contiene. Las opciones de configuración se organizan en espacios de nombres como, por ejemplo, aws:autoscaling:asg, que define opciones para un grupo de Auto Scaling del entorno.

La consola de Elastic Beanstalk y la CLI de EB establecen las opciones de configuración al crear un entorno, incluidas las opciones que establece explícitamente y valores recomendados definidos por el cliente. También puede establecer opciones de configuración en las configuraciones guardadas y en los archivos de configuración. Si se ha establecido la misma opción en varias ubicaciones, el valor utilizado se determina según el orden de prioridad.

Los valores de las opciones de configuración están en formato de texto y se guardan antes de que se cree el entorno, se aplican durante la creación del entorno mediante cualquier cliente compatible y se añaden, modifican o eliminan después de crear el entorno. Para obtener un listado detallado de todos los métodos disponibles para trabajar con opciones de configuración en cada una de estas tres fases, consulte los siguientes temas:

Para obtener una lista completa de espacios de nombres y opciones, incluidos los valores predeterminados y admitidos para cada uno, consulte Opciones generales para todos los entornos y Opciones específicas de la plataforma.

Prioridad

Durante la creación del entorno, las opciones de configuración se aplican desde diferentes orígenes con la siguiente prioridad, de mayor a menor:

  • Settings applied directly to the environment (Configuración aplicada directamente al entorno): configuración especificada durante una operación de creación o actualización del entorno en la API de Elastic Beanstalk por cualquier cliente, incluida la consola de Elastic Beanstalk, la CLI de EB, la CLI de AWS y los SDK. La consola de Elastic Beanstalk y la CLI de EB aplican también los valores recomendados para algunas opciones que se aplican en este nivel a menos que se invaliden.

  • Configuraciones guardadas: los valores de las opciones que no se aplican directamente el entorno se cargan desde una configuración guardada, si se ha especificado.

  • Archivos de configuración (.ebextensions): los valores de las opciones que no se aplican directamente al entorno y que tampoco se han especificado en una configuración guardada se cargan de los archivos de configuración de la carpeta .ebextensions en la raíz del paquete de código fuente de la aplicación.

    Los archivos de configuración se ejecutan en orden alfabético. Por ejemplo, .ebextensions/01run.config se ejecuta antes que .ebextensions/02do.config.

  • Valores predeterminados: si una opción de configuración tiene un valor predeterminado, este solo se aplica cuando la opción no se ha configurado en ninguno de los niveles anteriores.

Si la misma opción de configuración se define en más de una ubicación, se aplica el valor con la prioridad más alta. Cuando se aplica un valor de una configuración guardada o cuando se aplica un valor directamente al entorno, el valor se almacena como parte de la configuración del entorno. Estos valores pueden eliminarse con la CLI de AWS o con la CLI de EB.

Los valores de los archivos de configuración no se aplican directamente al entorno y no pueden eliminarse sin modificar los archivos de configuración e implementar una nueva versión de la aplicación. Si un valor aplicado con uno de los otros métodos se elimina, el mismo valor se carga de los archivos de configuración del paquete de código fuente.

Suponga, por ejemplo, que establece el número mínimo de instancias en su entorno en 5 durante la creación del entorno, usando la consola de Elastic Beanstalk, una opción de la línea de comandos o una configuración guardada. El paquete de código fuente de su aplicación también incluye un archivo de configuración que establece el número mínimo de instancias en 2.

Cuando cree el entorno, Elastic Beanstalk establece la opción MinSize del espacio de nombres aws:autoscaling:asg en 5. Si a continuación elimina la opción del entorno de configuración, se carga el valor del archivo de configuración y el número mínimo de instancias se establece en 2. Si después elimina el archivo de configuración del paquete de código fuente y lo vuelve a implementar, Elastic Beanstalk utiliza el valor predeterminado de 1.

Valores recomendados

La interfaz de línea de comandos de Elastic Beanstalk (CLI de EB) y la consola de Elastic Beanstalk proporcionan valores recomendados para algunas opciones de configuración. Estos valores pueden ser diferentes de los valores predeterminados y se establecen en el nivel de API cuando se crea el entorno. Los valores recomendados permiten a Elastic Beanstalk mejorar la configuración del entorno predeterminada sin realizar cambios incompatibles con versiones anteriores en la API.

Por ejemplo, la CLI de EB y la consola de Elastic Beanstalk definen la opción de configuración del tipo de instancia EC2 (InstanceType en el espacio de nombres aws:autoscaling:launchconfiguration). Cada cliente proporciona una forma diferente de invalidar la configuración predeterminada. En la consola puede elegir un tipo de instancia diferente en un menú desplegable de la página Configuration Details del asistente Create New Environment. Con la CLI de EB, puede utilizar el parámetro --instance_type para eb create.

Como los valores recomendados se establecen en el nivel de API, estos valores invalidarán los valores de las mismas opciones que defina en archivos de configuración o configuraciones guardadas. Se definen las siguientes opciones:

Consola de Elastic Beanstalk

  • Espacio de nombres: aws:autoscaling:launchconfiguration

    Nombres de opción: IamInstanceProfile, EC2KeyName, InstanceType

  • Espacio de nombres: aws:autoscaling:updatepolicy:rollingupdate

    Nombres de opción: RollingUpdateType y RollingUpdateEnabled

  • Espacio de nombres: aws:elasticbeanstalk:application

    Nombre de la opción: Application Healthcheck URL

  • Espacio de nombres: aws:elasticbeanstalk:command

    Nombre de opción: DeploymentPolicy, BatchSize y BatchSizeType

  • Espacio de nombres: aws:elasticbeanstalk:environment

    Nombre de la opción: ServiceRole

  • Espacio de nombres: aws:elasticbeanstalk:healthreporting:system

    Nombre de opción: SystemType y HealthCheckSuccessThreshold

  • Espacio de nombres: aws:elasticbeanstalk:sns:topics

    Nombre de la opción: Notification Endpoint

  • Espacio de nombres: aws:elasticbeanstalk:sqsd

    Nombre de la opción: HttpConnections

  • Espacio de nombres: aws:elb:loadbalancer

    Nombre de la opción: CrossZone

  • Espacio de nombres: aws:elb:policies

    Nombres de opción: ConnectionDrainingTimeout y ConnectionDrainingEnabled

CLI de EB

  • Espacio de nombres: aws:autoscaling:launchconfiguration

    Nombres de opción: IamInstanceProfile, InstanceType

  • Espacio de nombres: aws:autoscaling:updatepolicy:rollingupdate

    Nombres de opción: RollingUpdateType y RollingUpdateEnabled

  • Espacio de nombres: aws:elasticbeanstalk:command

    Nombre de opción: BatchSize y BatchSizeType

  • Espacio de nombres: aws:elasticbeanstalk:environment

    Nombre de la opción: ServiceRole

  • Espacio de nombres: aws:elasticbeanstalk:healthreporting:system

    Nombre de la opción: SystemType

  • Espacio de nombres: aws:elb:loadbalancer

    Nombre de la opción: CrossZone

  • Espacio de nombres: aws:elb:policies

    Nombres de opción: ConnectionDrainingEnabled