Konfigurationsoptionen - AWS Elastic Beanstalk

Konfigurationsoptionen

Elastic Beanstalk definiert eine große Anzahl von Konfigurationsoptionen, mithilfe derer Sie das Verhalten Ihrer Umgebung und die darin enthaltenen Ressourcen konfigurieren können. Die Konfigurationsoptionen sind in Namespaces wie aws:autoscaling:asg unterteilt, die Optionen für die Auto-Scaling-Gruppe einer Umgebung definieren.

Die Elastic-Beanstalk-Konsole und die EB-CLI legen beim Erstellen einer Umgebung Konfigurationsoptionen fest, einschließlich von Ihnen explizit festgelegter Optionen und empfohlener Werte, die vom Client definiert werden. Sie können Konfigurationsoptionen auch in gespeicherten Konfigurationen und Konfigurationsdateien festlegen. Wenn dieselbe Option an mehreren Orten festgelegt wird, wird der zu verwendende Wert durch die Rangfolge bestimmt.

Konfigurationsoptionseinstellungen können im Textformat definiert und vor der Umgebungserstellung gespeichert, während der Umgebungserstellung unter Verwendung eines beliebigen unterstützten Clients übernommen und nach der erfolgten Umgebungserstellung hinzugefügt, geändert oder entfernt werden. Eine detaillierte Aufstellung aller verfügbaren Methoden für die Verwendung von Konfigurationsoptionen in jeder der drei Phasen finden Sie in den folgenden Themen:

Eine vollständige Liste der Namespaces und Optionen einschließlich der Standard- und unterstützten Werte finden Sie unter Allgemeine Optionen für alle Umgebungen und Plattformspezifische Optionen.

Precedence

Während der Umgebungserstellung werden die Konfigurationsoptionen mit folgender Rangfolge (von der höchsten bis zur niedrigsten) aus mehreren Quellen übernommen:

  • Der Umgebung direkt zugewiesene Einstellungen – Einstellungen, die bei der Umgebungserstellung oder -aktualisierung mit der Elastic-Beanstalk-API von einem Client, einschließlich Elastic-Beanstalk-Konsole, EB-CLI, AWS CLI und SDKs angegeben werden. Elastic-Beanstalk-Konsole und EB-CLI weisen außerdem einigen Optionen für dieses Level empfohlene Werte zu, sofern diese nicht überschrieben werden.

  • Gespeicherte Konfigurationen – Optionseinstellungen, die nicht direkt in die Umgebung übernommen, sondern aus einer gespeicherten Konfiguration geladen werden (sofern vorhanden).

  • Konfigurationsdateien (.ebextensions) – Optionseinstellungen, die weder direkt in die Umgebung übernommen noch in einer gespeicherten Konfiguration angegeben, sondern aus Konfigurationsdateien des Ordners .ebextensions im Stamm des Quell-Bundles der Anwendung geladen werden.

    Konfigurationsdateien werden in alphabetischer Reihenfolge ausgeführt. So wird beispielsweise .ebextensions/01run.config vor .ebextensions/02do.config ausgeführt.

  • Standardwerte – Wenn für eine Konfigurationsoption ein Standardwert vorhanden ist, wird dieser nur übernommen, sofern diese Option auf keiner der oben genannten Ebenen festgelegt wurde.

Falls dieselbe Konfigurationsoption an mehreren Orten definiert ist, gilt die Einstellung mit der höchsten Priorität. Eine Einstellung wird als Teil der Umgebungskonfiguration gespeichert, sofern sie aus einer gespeicherten Konfiguration geladen oder direkt in der Umgebung bereitgestellt wird. Diese Einstellungen können mit der AWS CLI oder mit der EB-CLI entfernt werden.

Einstellungen in Konfigurationsdateien werden nicht direkt in die Umgebung übernommen und können nicht ohne Änderung der Konfigurationsdateien und Bereitstellung einer neuen Anwendungsversion entfernt werden. Wenn Sie eine Einstellung, die mit einer der anderen Methoden übernommen wurde, entfernen, wird dieselbe Einstellung aus den Konfigurationsdateien im Quell-Bundle geladen.

Beispiel: Sie legen im Rahmen der Umgebungserstellung mit der Elastic-Beanstalk-Konsole, einer Befehlszeilenoption oder einer gespeicherten Konfiguration die Mindestanzahl der Instances in der Umgebung auf 5 fest. Im Quell-Bundle der Anwendung ist ebenfalls eine Konfigurationsdatei enthalten, in der die Mindestanzahl der Instances mit 2 angegeben wird.

Wenn Sie die Umgebung erstellen, setzt Elastic Beanstalk die Option MinSize im Namespace aws:autoscaling:asg auf 5. Wenn Sie anschließend die Option aus der Umgebungskonfiguration entfernen, wird der Wert aus der Konfigurationsdatei geladen, sodass die Mindestanzahl der Instances auf 2 festgelegt wird. Falls Sie dann die Konfigurationsdatei aus dem Quell-Bundle entfernen und eine neue Bereitstellung ausführen, verwendet Elastic Beanstalk den Standardwert 1.

Empfohlene Werte

Die Elastic-Beanstalk-Befehlszeilenschnittstelle (EB-CLI) und die Elastic-Beanstalk-Konsole stellen für einige Konfigurationsoptionen empfohlene Werte bereit. Diese Werte können von den Standardwerten abweichen und werden im Rahmen der Umgebungserstellung auf API-Ebene festgelegt. Mithilfe der empfohlenen Werte kann Elastic Beanstalk die Standardumgebungskonfiguration optimieren, ohne abwärts inkompatible Änderungen an der API vorzunehmen.

So wird beispielsweise die Konfigurationsoption für den EC2-Instance-Typ sowohl von der EB-CLI als auch von der Elastic-Beanstalk-Konsole festgelegt (InstanceType im Namespace aws:autoscaling:launchconfiguration). Jeder Client bietet eine andere Möglichkeit zur Überschreibung der Standardeinstellung. In der Konsole können Sie über ein Dropdown-Menü auf der Seite Configuration Details (Konfigurationsdetails) im Assistenten Create New Environment (Neue Umgebung erstellen) einen anderen Instance-Typ auswählen. In der EB-CLI verwenden Sie den Parameter --instance_type für eb create.

Da die empfohlenen Werte auf API-Ebene festgelegt werden, überschreiben diese die Werte, die Sie für dieselben Optionen in Konfigurationsdateien oder gespeicherten Konfigurationen definiert haben. Folgende Optionen werden festgelegt:

Elastic-Beanstalk-Konsole

  • Namespace: aws:autoscaling:launchconfiguration

    Optionsnamen: IamInstanceProfile, EC2KeyName, InstanceType

  • Namespace: aws:autoscaling:updatepolicy:rollingupdate

    Optionsnamen: RollingUpdateType und RollingUpdateEnabled

  • Namespace: aws:elasticbeanstalk:application

    Optionsname: Application Healthcheck URL

  • Namespace: aws:elasticbeanstalk:command

    Optionsnamen: DeploymentPolicy, BatchSize und BatchSizeType

  • Namespace: aws:elasticbeanstalk:environment

    Optionsname: ServiceRole

  • Namespace: aws:elasticbeanstalk:healthreporting:system

    Optionsnamen: SystemType und HealthCheckSuccessThreshold

  • Namespace: aws:elasticbeanstalk:sns:topics

    Optionsname: Notification Endpoint

  • Namespace: aws:elasticbeanstalk:sqsd

    Optionsname: HttpConnections

  • Namespace: aws:elb:loadbalancer

    Optionsname: CrossZone

  • Namespace: aws:elb:policies

    Optionsnamen: ConnectionDrainingTimeout und ConnectionDrainingEnabled

EB-CLI

  • Namespace: aws:autoscaling:launchconfiguration

    Optionsnamen: IamInstanceProfile, InstanceType

  • Namespace: aws:autoscaling:updatepolicy:rollingupdate

    Optionsnamen: RollingUpdateType und RollingUpdateEnabled

  • Namespace: aws:elasticbeanstalk:command

    Optionsnamen: BatchSize und BatchSizeType

  • Namespace: aws:elasticbeanstalk:environment

    Optionsname: ServiceRole

  • Namespace: aws:elasticbeanstalk:healthreporting:system

    Optionsname: SystemType

  • Namespace: aws:elb:loadbalancer

    Optionsname: CrossZone

  • Namespace: aws:elb:policies

    Optionsnamen: ConnectionDrainingEnabled