ElasticBeanstalk: establece el tipo de instancia y el grupo de seguridad desde el archivo de configuración

10

Tengo problemas para definir el tipo de instancia y los grupos de seguridad a través de .ebextensions/*.configarchivos en la raíz de mi paquete de aplicaciones.

Brevemente, tengo dos archivos de configuración que se ven así:

.ebextensions/01-options.config:

option_settings:
  [...]
  - namespace: 'aws:elasticbeanstalk:application:environment'
    option_name: CONFIG_FILE_ONE
    value: '01-options.config'
  [...]

y .ebextensions/02-app-test-env.config:

option_settings:
  - namespace: 'aws:elasticbeanstalk:application:environment'
    option_name: NODE_ENV
    value: 'Test'

  - namespace: 'aws:elasticbeanstalk:application:environment'
    option_name: CONFIG_FILE_TWO
    value: '02-app-test-env'

  - namespace: aws:autoscaling:launchconfiguration
    option_name: InstanceType
    value: t2.micro

  - namespace: aws:autoscaling:launchconfiguration
    option_name: SecurityGroups
    value: sg-ys75dfs2

Ahora, las variables de entorno se están configurando, así que sé que está leyendo ambos archivos de configuración, pero el grupo de seguridad y el tipo de instancia no se están configurando, incluso cuando reconstruyo el entorno, las instancias todavía se crean como t1.microcon los grupos de seguridad predeterminados: mi configuración No se están aplicando.

¿Que me estoy perdiendo aqui? ¿Cómo puedo definir el tipo de instancia usando .configarchivos?

Josh Hunt
fuente
¿Revisó los registros una vez que la aplicación está funcionando? Tal vez se quejó de una de sus opciones? Después de leer esto me dio la impresión de que sólo los espacios de nombres que figuran en la tabla que se apoya, debido a esta frase: [...] The following table displays the namespaces that are supported for each container type. [...]. Pero parece extraño si ese fuera el caso.
Bazze

Respuestas:

11

Debería poder usar lo que tiene en ese archivo de configuración para el espacio de nombres de la configuración de lanzamiento, pero necesita las comillas simples alrededor del espacio de nombres y el valor que tiene en los primeros 2 que están funcionando.

- namespace: 'aws:autoscaling:launchconfiguration'
  option_name: InstanceType
  value: 't2.micro'

- namespace: 'aws:autoscaling:launchconfiguration'
  option_name: SecurityGroups
  value: 'sg-ys75dfs2'

Además, asegúrese de estar atento a los errores con los registros de eb si usa eb cli 3.x. Espero que ayude.

Tyler
fuente
Intenté esto, tanto el original como la versión con comillas. Ninguno de los dos trabajó para mí. Otras configuraciones en mi .config como MinSize y MaxSize están funcionando. ¿Terminó teniendo que usar: eb create -i 't2.medium' en su lugar?
Charles
@Charles, sí, ya no estoy haciendo que InstanceType funcione tampoco, no estoy seguro de cuál es el problema porque, como mencionaste, las otras opciones relacionadas con la instancia funcionan.
Tyler
Gracias por la confirmación. Al publicar la pregunta en el foro de AWS ... informaré si encuentro la respuesta.
Charles
Pregunta del foro de AWS: forums.aws.amazon.com/thread.jspa?threadID=218096
Charles
1
Así que creo que podría saber cuál es el problema aquí, parece que ciertos elementos están configurados en el nivel de API y hay que actualizarlos DESPUÉS de la creación del entorno. If you use the Elastic Beanstalk console or EB CLI to create environments, and you want to set these options using configuration files or saved configurations, you can remove the options settings with the AWS CLI or EB CLI after the environment is created.( docs.aws.amazon.com/elasticbeanstalk/latest/dg/… )
Tyler
2

Como se menciona en los comentarios, las configuraciones en los archivos de configuración se ignoran si también se establecen en el nivel del entorno (y la configuración para InstanceTypese crea automáticamente en el nivel del entorno).

Si prefiere mantener su configuración en los archivos de configuración, debe eliminarla del entorno, puede hacerlo InstanceTypecon el siguiente comando:

aws elasticbeanstalk update-environment --environment-name my-env --options-to-remove Namespace=aws:autoscaling:launchconfiguration,OptionName=InstanceType

Consulte también los documentos de AWS para conocer otras formas de cambiar la configuración del nivel del entorno.

Samuel Fekete
fuente