Konfiguration von Amazon EC2-Sicherheitsgruppen und Instance-Typen mit dem AWS CLI - AWS Elastic Beanstalk

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfiguration von Amazon EC2-Sicherheitsgruppen und Instance-Typen mit dem AWS CLI

Sie können die AWS Befehlszeilenschnittstelle (AWS CLI) verwenden, um die Amazon EC2 EC2-Instances in Ihren Elastic Beanstalk Beanstalk-Umgebungen zu konfigurieren.

Konfiguration von EC2-Sicherheitsgruppen mit dem AWS CLI

Dieses Thema enthält Beispiele für verschiedene EC2-Sicherheitsgruppenkonfigurationen sowohl für Einzelinstanzen als auch für Umgebungen mit Lastenausgleich (mehrere Instanzen). Weitere Informationen zu den Optionen in diesen Beispielen finden Sie unter aws:autoscaling:launchconfiguration.

Hinweise

Der Vorgang „Umgebung erstellen“ stellt standardmäßig eine EC2-Sicherheitsgruppe bereit. Außerdem wird standardmäßig eine Umgebung mit einem Application Load Balancer erstellt.

Der Vorgang zur Aktualisierung der Umgebung kann verwendet werden, um die standardmäßige EC2-Sicherheitsgruppe für Ihre Umgebung mit der booleschen Option entweder zu deaktivieren oder zu aktivieren. DisableDefaultEC2SecurityGroup Beispiel 5 zeigt, wie Sie Ihre Umgebung auf die Standardsicherheitskonfiguration zurücksetzen, wenn Sie sie zuvor geändert haben.

Die folgenden Beispiele zeigen einen Befehl create-environment, der die standardmäßige EC2-Sicherheitsgruppe deaktiviert und stattdessen benutzerdefinierte Sicherheitsgruppen bereitstellt. Da die DisableDefaultEC2SecurityGroup Option auf gesetzt isttrue, wird die standardmäßige EC2-Sicherheitsgruppe, die Elastic Beanstalk normalerweise den EC2-Instances zuordnet, nicht erstellt. Daher müssen Sie anderen Sicherheitsgruppen diese Option zur Verfügung stellen. SecurityGroups

Beachten Sie, dass die aws:elasticbeanstalk:environment EnvironmentType Option auf gesetzt istSingleInstance. Um eine Einzelinstanzumgebung zu erstellen, müssen Sie diese Option angeben, da dies die Standardoption LoadBalanced istEnvironmentType. Da diese Umgebung keinen Load Balancer enthält, müssen wir keine Load Balancer-Sicherheitsgruppe angeben.

Beispiel 1 — Neue Einzelinstanzumgebung mit benutzerdefinierten EC2-Sicherheitsgruppen (Inline-Namespace-Optionen)
aws elasticbeanstalk create-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2023 v6.5.0 applrunning Node.js 22" \ --option-settings \ Namespace=aws:elasticbeanstalk:environment,OptionName=EnvironmentType,Value=SingleInstance \ Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role \ Namespace=aws:autoscaling:launchconfiguration,OptionName=DisableDefaultEC2SecurityGroup,Value=true \ Namespace=aws:autoscaling:launchconfiguration,OptionName=SecurityGroups,Value=sg-abcdef01, sg-abcdef02 \ Namespace=aws:autoscaling:launchconfiguration,OptionName=EC2KeyName,Value=my-keypair

Verwenden Sie alternativ eineoptions.json-Datei, um die Namespace-Optionen anzugeben, anstatt sie einzubinden.

Beispiel 2 — Neue Einzelinstanzumgebung mit benutzerdefinierten EC2-Sicherheitsgruppen (Namespace-Optionen in der Datei) options.json
aws elasticbeanstalk create-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2023 v6.5.0 running Node.js 22" \ --option-settings file://options.json
Beispiel
### example options.json ### [ { "Namespace" : "aws:elasticbeanstalk:environment", "OptionName" : "EnvironmentType", "Value" : "SingleInstance" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "DisableDefaultEC2SecurityGroup", "Value": "true" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "SecurityGroups", "Value": "sg-abcdef01, sg-abcdef02" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "EC2KeyName", "Value": "my-keypair" } ]

Das folgende Beispiel erstellt eine Umgebung mit Lastenausgleich. Es gibt die aws:elasticbeanstalk:environment Namespace-Option an, die LoadBalancerType auf gesetzt ist. application Da wir die standardmäßige EC2-Sicherheitsgruppe mit dieser DisableDefaultEC2SecurityGroup Option deaktivieren, müssen wir wieder unsere eigenen benutzerdefinierten Sicherheitsgruppen für die EC2-Instances bereitstellen, und zwar mit der aws:autoscaling:launchconfiguration SecurityGroups Option, wie im vorherigen Beispiel. Da diese Umgebung über einen Load Balancer zur Weiterleitung des Datenverkehrs verfügt, müssen wir auch Sicherheitsgruppen für den Load Balancer bereitstellen.

Um eine Umgebung mit einem klassischen Load Balancer, aber ansonsten derselben Konfiguration zu erstellen, aktualisieren Sie die Konfiguration für die aws:elasticbeanstalk:environment Namespace-Option auf. LoadBalancerType classic

Die verschiedenen Load Balancer-Typen haben unterschiedliche Namespaces, die die Optionen zur Angabe der Sicherheitsgruppen enthalten:

Beispiel 3 — Neue Multi-Instanzen-Umgebung mit benutzerdefinierten EC2-Sicherheitsgruppen (Namespace-Optionen in der Datei) options.json
aws elasticbeanstalk create-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2023 v6.5.0 running Node.js 22" \ --option-settings file://options.json
Beispiel
### example options.json ### [ { "Namespace" : "aws:elasticbeanstalk:environment", "OptionName" : "EnvironmentType", "Value" : "LoadBalanced" }, { "Namespace" : "aws:elasticbeanstalk:environment", "OptionName" : "LoadBalancerType", "Value" : "application" }, { "Namespace" : "aws:elbv2:loadbalancer", "OptionName" : "SecurityGroups", "Value" : "sg-abcdefghikl012345" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "DisableDefaultEC2SecurityGroup", "Value": "true" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "SecurityGroups", "Value": "sg-abcdef01, sg-abcdef02" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "EC2KeyName", "Value": "my-keypair" } ]

Sie können die standardmäßige EC2-Sicherheitsgruppe für eine bestehende Umgebung mit dem Befehl update-environment deaktivieren. Der folgende Beispielbefehl deaktiviert die standardmäßige EC2-Sicherheitsgruppe und weist den EC2-Instances der Umgebung benutzerdefinierte EC2-Sicherheitsgruppen zu.

Verwenden Sie die options.jason Beispieldateien in den Beispielen 4 (a), 4 (b) oder 4 (c), je nachdem, ob die Umgebung über einen Lastenausgleich verfügt und welche Art von Load Balancer verwendet wird. Die Konfigurationsdatei 4 (a) spezifiziert die Sicherheitsgruppen für eine Einzelinstanzumgebung. Da kein Load Balancer erforderlich ist, stellen wir nur die Sicherheitsgruppe für die EC2-Instances bereit. Die Konfigurationsdateien 4 (b) und 4 (c) spezifizieren die Sicherheitsgruppen für einen Application Load Balancer und einen klassischen Load Balancer. In diesen Fällen müssen wir auch Sicherheitsgruppen für den Load Balancer angeben.

Beispiel 4 — Aktualisieren Sie eine bestehende Umgebung, um die standardmäßige EC2-Sicherheitsgruppe zu deaktivieren (Namespace-Optionen in der Datei) options.json
aws elasticbeanstalk update-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2023 v6.5.0 running Node.js 22" \ --option-settings file://options.json
Beispiel 4 (a) — Konfigurationsdatei für eine Einzelinstanzumgebung (kein Load Balancer)
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "DisableDefaultEC2SecurityGroup", "Value": "true" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "SecurityGroups", "Value": "sg-abcdef01, sg-abcdef02" } ]

Um eine Umgebung zu aktualisieren, die einen Application Load Balancer verwendet, verwenden Sie den aws:elbv2:loadbalancer Namespace, um die Sicherheitsgruppen für den Load Balancer anzugeben.

Beispiel 4 (b) — Konfigurationsdatei für eine Umgebung mit einem Application Load Balancer
### example options.json ### [ { "Namespace" : "aws:elbv2:loadbalancer", "OptionName" : "SecurityGroups", "Value" : "sg-abcdefghikl012345" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "DisableDefaultEC2SecurityGroup", "Value": "true" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "SecurityGroups", "Value": "sg-abcdef01, sg-abcdef02" } ]

Um eine Umgebung zu aktualisieren, die einen klassischen Load Balancer verwendet, verwenden Sie den aws:elb:loadbalancer Namespace, um die Sicherheitsgruppen für den Load Balancer anzugeben.

Beispiel 4 (c) — Konfigurationsdatei für eine Umgebung mit einem klassischen Load Balancer
### example options.json ### [ { "Namespace" : "aws:elb:loadbalancer", "OptionName" : "SecurityGroups", "Value" : "sg-abcdefghikl012345" }, { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "DisableDefaultEC2SecurityGroup", "Value": "true" }, { "Namespace": "aws:autoscaling:launchconfiguration",n "OptionName": "SecurityGroups", "Value": "sg-abcdef01, sg-abcdef02" } ]

Um Ihre Umgebung auf das Standardverhalten und die Standardkonfiguration mit der von Elastic Beanstalk zugewiesenen Standardsicherheitsgruppe zurückzusetzen, verwenden Sie den Befehl update-environment, um den Wert auf zu setzen. DisableDefaultEC2SecurityGroup false In einer Umgebung mit mehreren Instanzen verwaltet Elastic Beanstalk auch die Sicherheitsgruppen und Netzwerkverkehrsregeln für den Load Balancer Ihrer Umgebung.

Das folgende Beispiel gilt sowohl für eine Einzelinstanz- als auch für eine Multi-Instance-Umgebung (Load Balancing):

Beispiel 5 — Aktualisieren Sie eine Umgebung, sodass sie wieder die Standardsicherheitsgruppe verwendet (Namespace-Optionen in der Datei) options.json
aws elasticbeanstalk update-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2023 v6.5.0 running Node.js 22" \ --option-settings file://options.json
Beispiel
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "DisableDefaultEC2SecurityGroup", "Value": "false" } ]

Konfiguration von EC2 mit Instance-Typen unter Verwendung von AWS CLI

Dieses Thema enthält Beispiele für die Konfiguration der Instance-Typen der EC2-Instances in Ihrer Umgebung.

Die ersten beiden Beispiele erstellen eine neue Umgebung. Der Befehl gibt einen Amazon EC2-Instance-Typ, t4g.small, der auf der arm64-Prozessorarchitektur basiert, an. Elastic Beanstalk verwendet die Image ID (AMI) für die EC2-Instances basierend auf Region, Plattformversion und Instance-Typ standardmäßig. Der Instance-Typ entspricht einer Prozessorarchitektur. Der solution-stack-name-Parameter gilt für die Plattformversion.

Beispiel 1 — Erstellen Sie eine neue arm64-basierte Umgebung (eingebundene Namespace-Optionen)
aws elasticbeanstalk create-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2 v3.4.7 running Docker" \ --option-settings \ Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role \ Namespace=aws:ec2:instances,OptionName=InstanceTypes,Value=t4g.small

Verwenden Sie alternativ eineoptions.json-Datei, um die Namespace-Optionen anzugeben, anstatt sie einzubinden.

Beispiel 2 — Erstellen Sie eine neue arm64-basierte Umgebung (Namespace-Optionen in options.json-Datei)
aws elasticbeanstalk create-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2 v3.4.7 running Docker" \ --option-settings file://options.json
Beispiel
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" }, { "Namespace": "aws:ec2:instances", "OptionName": "InstanceTypes", "Value": "t4g.small" } ]

Die nächsten beiden Beispiele aktualisieren die Konfiguration für eine vorhandene Umgebung mit dem Befehl update-environment. In diesem Beispiel fügen wir einen weiteren Instance-Typ hinzu, der auch auf der arm64-Prozessorarchitektur basiert. Für vorhandene Umgebungen müssen alle hinzugefügten Instance-Typen dieselbe Prozessorarchitektur haben. Wenn Sie die vorhandenen Instance-Typen durch Instance-Typen aus einer anderen Architektur ersetzen möchten, können Sie dies tun. Stellen Sie jedoch sicher, dass alle Instanztypen im Befehl denselben Architekturtyp haben.

Beispiel 3 — aktualisiert eine vorhandene arm64-basierte Umgebung (eingebundene Namespace-Optionen)
aws elasticbeanstalk update-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2 v3.4.7 running Docker" \ --option-settings \ Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role \ Namespace=aws:ec2:instances,OptionName=InstanceTypes,Value=t4g.small,t4g.micro

Verwenden Sie alternativ eineoptions.json-Datei, um die Namespace-Optionen anzugeben, anstatt sie einzubinden.

Beispiel 4 — aktualisiert eine vorhandene arm64-basierte Umgebung (Namespace-Optionen in options.json-Datei)
aws elasticbeanstalk update-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2 v3.4.7 running Docker" \ --option-settings file://options.json
Beispiel
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" }, { "Namespace": "aws:ec2:instances", "OptionName": "InstanceTypes", "Value": "t4g.small, t4g.micro" } ]

Die nächsten beiden Beispiele zeigen weitere Befehle create-environment. Diese Beispiele enthalten keine Werte für InstanceTypes. WannInstanceTypes-Werte werden nicht angegeben, Elastic Beanstalk verwendet standardmäßige die x86-basierte Prozessorarchitektur. Die Image-ID (AMI) für die EC2-Instances der Umgebung wird gemäß der Region, der Plattformversion und dem Standard-Instance-Typ standardmäßig ausgeführt. Der Instance-Typ entspricht einer Prozessorarchitektur.

Beispiel 5 — Erstellen Sie eine neue x86-basierte Umgebung (eingebundene Namespace-Optionen)
aws elasticbeanstalk create-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2 v3.4.7 running Docker" \ --option-settings \ Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role

Verwenden Sie alternativ eineoptions.json-Datei, um die Namespace-Optionen anzugeben, anstatt sie einzubinden.

Beispiel 6 — Erstellen Sie eine neue x86-basierte Umgebung (Namespace-Optionen in options.json-Datei)
aws elasticbeanstalk create-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --solution-stack-name "64bit Amazon Linux 2 v3.4.7 running Docker" \ --option-settings file://options.json
Beispiel
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" } ]