

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 des Netzwerks für Beanstalk Cluster-Umgebungen
<a name="configuring-cluster-networking"></a>

Beanstalk Cluster führt Ihre Umgebung auf einem Amazon EKS-Cluster aus. Die Subnetze, die Sie auswählen, haben zwei Funktionen: Sie bestimmen, wo die Knoten des Clusters laufen, und sie bestimmen, auf welchem Cluster die Umgebung ausgeführt wird. Wenn Sie keine Subnetze auswählen, verwendet Elastic Beanstalk die öffentlichen Subnetze der Standard-VPC.

In diesem Thema werden die Subnetze der Umgebung behandelt, wie der Datenverkehr Ihre Anwendung von außerhalb des Clusters erreicht und wie Ihre Umgebungen innerhalb des Clusters aufeinander reagieren.

## Subnetze der Umgebung
<a name="configuring-cluster-networking-subnets"></a>

Stellen Sie die `subnets` Option im `aws:elasticbeanstalk:eks:environment` Namespace auf eine kommagetrennte Liste von Subnetz-IDs ein.

Da Subnetze den Cluster auswählen, legen Sie sie fest, wenn Sie die Umgebung erstellen:

```
$ aws elasticbeanstalk create-environment \
    --application-name {{my-app}} \
    --environment-name {{my-cluster-env}} \
    --option-settings '[{"Namespace":"aws:elasticbeanstalk:eks:environment","OptionName":"subnets","Value":"{{subnet-abc123,subnet-def456}}"}]'
```

Die Einstellung wird als JSON geschrieben, da die Subnetzliste ein Komma enthält, das in der AWS CLI Kurzform als Trennzeichen zwischen Feldern behandelt wird. Informationen zu den Formularen, die von AWS CLI akzeptiert werden, finden Sie unter [ Verwenden der Abkürzungssyntax im. AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-shorthand.html)

Elastic Beanstalk gruppiert Umgebungen anhand dieser Subnetzgruppe in Clustern, sodass Umgebungen mit demselben Konto, die dieselben Subnetze verwenden, auf demselben Cluster ausgeführt werden und eine Umgebung, die eine andere Gruppe verwendet, auf einem anderen Cluster ausgeführt wird. Die Reihenfolge der Subnetze spielt keine Rolle. Die Gruppierungsregeln und die Ereignisse, die eine Clusterzuweisung melden, finden Sie unter. [Gruppierung der Umgebung](beanstalk-cluster-concepts.md#beanstalk-cluster-clusters-sharing)

## Wie erreicht der Datenverkehr Ihre Anwendung
<a name="configuring-cluster-networking-lb-type"></a>

Die `load-balancer-type` Option im `aws:elasticbeanstalk:eks:environment` Namespace bestimmt, wie der Datenverkehr Ihre Anwendung erreicht. Sie akzeptiert zwei Werte:
+ `ALB`, die Standardeinstellung. Elastic Beanstalk erstellt und betreibt einen Application Load Balancer für die Umgebung. Sie können ihn über den `aws:elasticbeanstalk:eks:alb` Namespace konfigurieren oder einen Application Load Balancer bereitstellen, den Sie bereits besitzen.
+ `None`. Elastic Beanstalk erstellt keinen Load Balancer und die Umgebung ist von außerhalb des Clusters über Elastic Beanstalk nicht erreichbar. Andere Umgebungen auf demselben Cluster können ihn immer noch über seine Clusteradresse erreichen.

## Netzwerkeinstellungen für den Load Balancer
<a name="configuring-cluster-networking-alb"></a>

Der Application Load Balancer der Umgebung hat seine eigenen Netzwerkeinstellungen im `aws:elasticbeanstalk:eks:alb` Namespace.


| Option | Standard | Description | 
| --- | --- | --- | 
| subnets | Keine | Eine durch Kommas getrennte Liste von Subnetzen für den Load Balancer. | 
| scheme | Abgeleitet von Ihren Subnetzen | Ob der Load Balancer über das Internet erreichbar ist, entweder oderinternet-facing. internal Wenn Sie es nicht einrichten, leitet Elastic Beanstalk es von den Subnetzen ab, die Sie auswählen: Öffentliche Subnetze bieten einen mit dem Internet verbundenen Load Balancer, und private Subnetze bieten einen internen. | 
| security-groups | Keine | Eine durch Kommas getrennte Liste von Sicherheitsgruppen für den Load Balancer. | 
| manage-backend-security-group-rules | true | Ob Elastic Beanstalk die Sicherheitsgruppenregeln zwischen dem Load Balancer und Ihrer Anwendung verwaltet. | 

## Listener und HTTPS
<a name="configuring-cluster-networking-listeners"></a>

Die `listen-ports` Option im `aws:elasticbeanstalk:eks:alb` Namespace listet die Listener des Load Balancers als JSON-Array auf, das beispielsweise jedes Protokoll einem Port zuordnet. `[{"HTTPS":443},{"HTTP":80}]`

Elastic Beanstalk stellt sicher, dass der Load Balancer HTTPS irgendwo beendet:
+ Wenn Sie dies nicht festlegen`listen-ports`, konfiguriert Elastic Beanstalk einen HTTPS-Listener auf Port 443.
+ Wenn Sie einen HTTPS-Listener an einem beliebigen Port einrichten `listen-ports` und dieser bereits enthält, verwendet Elastic Beanstalk Ihre Konfiguration unverändert.
+ Wenn Sie `listen-ports` ohne HTTPS-Listener einrichten, fügt Elastic Beanstalk einen an Port 443 hinzu. Wenn Port 443 bereits von einem Listener belegt ist, der ein anderes Protokoll verwendet, schlägt die Anfrage fehl und der Fehler fordert Sie auf, Port 443 freizugeben oder einen expliziten HTTPS-Listener an einem anderen Port hinzuzufügen.

Der Load Balancer öffnet nur die Listener, mit denen er konfiguriert ist. In der Standardkonfiguration ist das HTTPS auf Port 443 und nichts auf Port 80, sodass eine Anfrage an `http://` keine Verbindung herstellt und wartet, bis ein Timeout eintritt. Auf die URL Ihrer Umgebung `https://` folgt der CNAME der Umgebung. `DescribeEnvironments`gibt den CNAME ohne Schema zurück. Fügen Sie ihn also hinzu, `https://` wenn Sie ihn öffnen.

Sie geben kein Zertifikat an, damit das funktioniert. Elastic Beanstalk erstellt ein AWS Certificate Manager (ACM) -Zertifikat für die eigene Domäne der Umgebung, hängt es an den HTTPS-Listener an und erneuert es, sodass ein Browser dem CNAME der Umgebung ohne jegliche Konfiguration vertraut. Elastic Beanstalk erstellt ein Zertifikat für jede Umgebung und löscht es, wenn Sie die Umgebung beenden.

Um die Umgebung von einer eigenen Domain aus zu bedienen, geben Sie den ARN Ihres Zertifikats in die Option ein. `certificate-arn` Der Load Balancer überträgt dann Ihr Zertifikat zusätzlich zu dem, das Elastic Beanstalk erstellt hat, und Sie sind weiterhin dafür verantwortlich, Ihr Zertifikat zu erneuern und zu löschen.

Um auch HTTP-Anfragen zu akzeptieren, fügen Sie einen HTTP-Listener hinzu `listen-ports` und legen Sie ihn auf den Port eines HTTPS-Listeners fest`ssl-redirect`. Elastic Beanstalk leitet Anfragen von HTTP-Listenern an Ihren HTTPS-Listener weiter. Ein HTTP-Listener bedient den Anwendungsdatenverkehr niemals direkt. `ssl-redirect`wählt aus, auf welchen HTTPS-Port die Umleitung abzielt. Wenn Sie ihn nicht festlegen, verwendet Elastic Beanstalk den Port Ihres HTTPS-Listeners. Ein `listen-ports` Wert ist selbst ein JSON-Dokument. Übergeben Sie die Einstellungen also in einer Datei, anstatt sie in die Befehlszeile zu schreiben:

```
$ cat listeners.json
[
  {
    "Namespace": "aws:elasticbeanstalk:eks:alb",
    "OptionName": "listen-ports",
    "Value": "[{\"HTTPS\":443},{\"HTTP\":80}]"
  },
  {
    "Namespace": "aws:elasticbeanstalk:eks:alb",
    "OptionName": "ssl-redirect",
    "Value": "443"
  }
]
$ aws elasticbeanstalk update-environment \
    --environment-name {{my-cluster-env}} \
    --option-settings file://listeners.json
```

Elastic Beanstalk fügt den HTTPS-Listener nicht hinzu`None`, wenn Sie dies einstellen `load-balancer-type` oder wenn Sie Ihren eigenen Load Balancer mit ausstatten. `arn` Da `None` die Umgebung überhaupt keinen Load Balancer hat, hat sie auch keine Listener. Wenn Sie Ihren eigenen Load Balancer bereitstellen, können Sie dessen Listener-Konfiguration selbst verwalten.

## Verwenden Sie einen Load Balancer, den Sie besitzen
<a name="configuring-cluster-networking-byo-alb"></a>

Um einen vorhandenen Load Balancer vor die Umgebung zu stellen, setzen Sie die `arn` Option im `aws:elasticbeanstalk:eks:alb` Namespace auf seinen ARN. Der Wert muss ein Application Load Balancer sein. Elastic Beanstalk lehnt den ARN eines Network Load Balancers ab.

Wenn Sie einen Load Balancer bereitstellen, sind Sie Eigentümer seiner Konfiguration: seiner Listener, seines TLS-Zertifikats und seines Schemas. Elastic Beanstalk registriert Ihre Anwendung als Ziel und meldet Ihren Load Balancer als Load Balancer der Umgebung. Es `DescribeEnvironmentResources` gibt also den von Ihnen angegebenen Load Balancer zurück und nicht einen, den Elastic Beanstalk erstellt hat.

## Umgebungen ohne Load Balancer
<a name="configuring-cluster-networking-no-lb"></a>

Wenn Sie `load-balancer-type` diese Option festlegen`None`, erstellt Elastic Beanstalk keinen Load Balancer für die Umgebung und `DescribeEnvironmentResources` meldet keine Load Balancer. Verwenden Sie dies für eine Umgebung, die nur andere Umgebungen auf demselben Cluster bedient, z. B. eine interne API oder einen Worker, den die Aufrufer direkt erreichen.

Zwei Konsequenzen, die es zu berücksichtigen gilt:
+ Die Integritätssignale des Load Balancers gelten nicht, da es keinen Load Balancer gibt, der eine Anforderungsrate, eine Fehlerrate oder eine Latenz meldet. Verwenden Sie Container-Probes und Ihre Observability-Backends, um zu beurteilen, ob die Anwendung funktioniert. Siehe [Überwachung von Beanstalk Cluster-Umgebungen](monitoring-cluster-environments.md).
+ Aufrufer erreichen die Umgebung über ihre Adresse im Cluster, die im nächsten Abschnitt beschrieben wird.

## Adressierung einer Umgebung von einer anderen aus
<a name="configuring-cluster-networking-service-discovery"></a>

Jede Beanstalk Cluster-Umgebung ist innerhalb ihres Clusters unter einer vorhersehbaren Adresse erreichbar, die sich aus dem Namen der Umgebung zusammensetzt:

```
service-{{environment-name}}.eb-{{environment-name}}.svc.cluster.local:{{service-port}}
```

Der Port gehört der Umgebung. `service-port` Elastic Beanstalk führt jede Umgebung in einem Kubernetes-Namespace aus, dem der Name der Umgebung `eb-` folgt, der zweite Name der Adresse. Übergeben Sie die Adressen, die Ihre Anwendung benötigt, als Umgebungsvariablen, indem Sie die Option im `env-variables` Namespace verwenden: `aws:elasticbeanstalk:eks:environment`

Der Wert von `env-variables` ist selbst ein JSON-Dokument. Übergeben Sie die Optionseinstellungen also in einer Datei und nicht in der Befehlszeile. Speichern Sie Folgendes unter`options.json`:

```
[
  {
    "Namespace": "aws:elasticbeanstalk:eks:environment",
    "OptionName": "env-variables",
    "Value": "{\"NOTIFIER_URL\":\"http://service-{{my-notifier}}.eb-{{my-notifier}}.svc.cluster.local:8080\"}"
  }
]
```

Dann wende es an:

```
$ aws elasticbeanstalk update-environment \
    --environment-name {{my-frontend}} \
    --option-settings file://options.json
```

Diese Adressierung funktioniert nur zwischen Umgebungen, die auf demselben Cluster ausgeführt werden, d. h. Umgebungen, die dieselben Subnetze verwenden. Das Auflösen der Adresse ist nicht dasselbe wie das Herstellen einer Verbindung. Beanstalk Cluster blockiert standardmäßig den Verkehr zwischen Umgebungen auf einem gemeinsam genutzten Cluster, sodass der Name aufgelöst wird und die Verbindung immer noch fehlschlägt, bis Sie dies zulassen. Siehe [Ermöglicht die Kommunikation zwischen Umgebungen](beanstalk-cluster-multi-tenancy.md#beanstalk-cluster-multi-tenancy-groups).

**Anmerkung**  
Da die Adresse den Umgebungsnamen enthält, müssen Sie den Namen einer Umgebung kennen, bevor eine andere Umgebung sie adressieren kann. Planen Sie die Namen einer Reihe von Umgebungen, die sich gegenseitig aufrufen, bevor Sie sie erstellen.

## Einstellungen, die Sie bei der Erstellung auswählen
<a name="configuring-cluster-networking-immutable"></a>

Sie können die Subnetze einer Umgebung nicht mehr ändern, nachdem Sie sie erstellt haben, da sie den Cluster auswählen. Das Gleiche gilt für die Rollen Cluster, Knoten und Observability. Um Ihre Anwendung in verschiedenen Subnetzen auszuführen, erstellen Sie eine neue Umgebung mit den gewünschten Subnetzen und tauschen Sie dann die beiden Umgebungs-CNAMES aus. Siehe [Blue/Green Bereitstellungen mit Elastic Beanstalk](using-features.CNAMESwap.md).