ElasticBeanstalk: imposta il tipo di istanza e il gruppo di sicurezza dal file di configurazione


10

Ho problemi a definire il tipo di istanza e i gruppi di sicurezza attraverso i .ebextensions/*.configfile nella radice del mio pacchetto di applicazioni.

In breve, ho due file di configurazione che assomigliano a questo:

.ebextensions/01-options.config:

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

e .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

Ora vengono impostate le variabili di ambiente, quindi so che sta leggendo entrambi i file di configurazione, ma il gruppo di sicurezza e il tipo di istanza non vengono impostati - anche quando ricostruisco l'ambiente, le istanze vengono comunque create come t1.microcon i gruppi di sicurezza predefiniti - le mie impostazioni non vengono applicati.

Cosa mi sto perdendo qui? Come posso definire il tipo di istanza usando i .configfile?


Hai controllato i registri dopo che l'app è attiva e in esecuzione? Forse si è lamentato di una delle tue opzioni? Dopo aver letto questo ho avuto l'impressione che solo gli spazi dei nomi elencati in tale tabella è supportato, a causa di questa frase: [...] The following table displays the namespaces that are supported for each container type. [...]. Ma sembra strano se così fosse.
Bazze,

Risposte:


11

Dovresti essere in grado di utilizzare ciò che hai in quel file di configurazione per lo spazio dei nomi launchconfiguration, ma hai bisogno delle virgolette singole intorno allo spazio dei nomi e del valore come quello che hai nei primi 2 che stanno funzionando.

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

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

Inoltre, assicurarsi di controllare gli errori con i registri eb se si utilizza eb cli 3.x. Spero che aiuti.


Ho provato questo sia l'originale che la versione con virgolette. Né ha funzionato per me. Altre impostazioni nel mio .config come MinSize e MaxSize stanno funzionando. Alla fine ho dovuto usare: eb create invece -i 't2.medium' ?!
Charles,

@Charles, sì, non sto più nemmeno facendo funzionare InstanceType, non sono sicuro di quale sia il problema perché, come hai detto, le altre opzioni relative all'istanza funzionano.
Tyler,

Grazie per la conferma. Andando a pubblicare la domanda nel forum AWS ... riporterò indietro se trovo la risposta.
Charles,


1
Quindi penso che potrei essere su quale sia il problema qui, sembra che alcuni elementi siano impostati a livello di API e devi aggiornarli DOPO la creazione dell'ambiente. 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

Come menzionato nei commenti, le impostazioni nei file di configurazione vengono ignorate se vengono impostate anche a livello di ambiente (e l'impostazione per InstanceTypeviene creata automaticamente a livello di ambiente).

Se si preferisce mantenere le impostazioni nei file di configurazione, è necessario rimuoverle dall'ambiente, è possibile farlo InstanceTypecon il seguente comando:

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

Consulta anche i documenti AWS per altri modi per modificare le impostazioni a livello di ambiente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.