Skip to content

Wie kann ich Probleme mit VPC-Endpunkten in der Netzwerkkonfiguration meiner privaten Elastic Beanstalk-Umgebung beheben?

Lesedauer: 5 Minute
0

Ich möchte Netzwerkprobleme in meiner vollständig privaten AWS Elastic Beanstalk-Umgebung beheben.

Kurzbeschreibung

Vollständig private Umgebungen haben die folgenden Einstellungen und ermöglichen den Zugriff auf deine Webanwendung nur von derselben Amazon Virtual Private Cloud (Amazon VPC) aus.

  • Sichtbarkeit des Load Balancers: Privat
  • Load Balancer-Subnetze: Beide private Subnetze
  • Öffentliche IP der Instance: Deaktiviert
  • Instance-Subnetze: Beide private Subnetze

Die gesamte Kommunikation innerhalb der VPC erfolgt über konfigurierte VPC-Endpunkte. Außerdem erfolgt die gesamte Kommunikation innerhalb der VPC über die lokale Route in der Routing-Tabelle. Im Folgenden findest du häufig auftretende Fehler, die aufgrund von Netzwerkkonfigurationen in der Umgebung auftreten können:

  • Die Amazon Elastic Compute Cloud (Amazon EC2)-Instances konnten nicht mit Elastic Beanstalk kommunizieren. Ein Kommunikationsfehler ist auf Konfigurationsprobleme mit der VPC oder auf eine ausgefallene EC2-Instance zurückzuführen. Überprüfe deine VPC-Konfiguration und versuche erneut, die Umgebung zu starten.
  • Die Instances haben nicht innerhalb der zulässigen Befehls-Timeout-Zeit geantwortet.

Lösung

Wenn du eine vollständig private Elastic Beanstalk-Umgebung erstellst, stelle sicher, dass du die folgenden Konfigurationen eingerichtet hast:

  • Du benötigst eine VPC mit mindestens zwei privaten Subnetzen in verschiedenen Availability Zones.
  • Für die VPC müssen DNS-Hostnamen und DNS-Auflösungen aktiviert sein. Wenn diese aktiviert sind, wird in deiner VPC ein DNS-Eintrag hinzugefügt, der den Endpunkt des öffentlichen Services dem VPC-Endpunkt der Schnittstelle zuordnet.
  • Du musst VPC-Endpunkte erstellen, damit AWS-Services außerhalb der VPC und die Instance innerhalb der VPC über diese Endpunkte kommunizieren können.

VPC-Endpunkte überprüfen

Eine standardmäßige Elastic Beanstalk-Umgebung muss für eine erfolgreiche Erstellung über die folgenden VPC-Endpunkte verfügen:

  • com.amazonaws.your-region.elasticbeanstalk (Endpunkt der Elastic Beanstalk-Schnittstelle)
  • com.amazonaws.your-region.elasticbeanstalk-health (Endpunkt der Elastic Beanstalk-Zustandsschnittstelle)
  • ccom.amazonaws.your-region.cloudformation (Endpunkt der AWS CloudFormation-Schnittstelle)
  • com.amazonaws.your-region.logs (Endpunkt der Protokoll-Schnittstelle)
  • com.amazonaws.your-region.sqs (Endpunkt der Amazon Simple Queue Service (Amazon SQS)-Schnittstelle)
  • com.amazonaws.your-region.s3 (Gateway-Endpunkt des Amazon Simple Storage Service (Amazon S3))

Umgebungen, die auf Docker ausgeführt werden (wird auf 64-Bit-Amazon Linux 2 ausgeführt), müssen über die folgenden zusätzlichen VPC-Endpunkte verfügen:

  • com.amazonaws.your-region.ecr.dkr
  • com.amazonaws.your-region.ecr.api

Umgebungen, die auf Amazon Elastic Container Service (Amazon ECS) ausgeführt werden (wird auf 64-Bit-Amazon Linux 2 ausgeführt), müssen über die folgenden zusätzlichen VPC-Endpunkte verfügen:

  • com.amazonaws.your-region.ecs
  • com.amazonaws.your-region.ecr.api
  • com.amazonaws.your-region.ecr.dkr

Hinweis: Stelle ein privates Docker-Image bereit, um sicherzustellen, dass die Docker- und Multi-Docker-Umgebung ordnungsgemäß funktioniert.

Sicherheitsgruppe überprüfen

Beim Erstellen des Schnittstellen-VPC-Endpunkts musst du die Subnetze und die Sicherheitsgruppe für deinen VPC-Endpunkt auswählen. Stelle sicher, dass du private Subnetze und die Sicherheitsgruppe mit den entsprechenden Regeln für eingehenden Datenverkehr auswählst.

Die ** Sicherheitsgruppe, die an die Schnittstellen-VPC-Endpunkte angehängt ist**, muss eine Regel für eingehenden Datenverkehr für Port 443 (HTTPS) haben:

Regel für eingehenden Datenverkehr:

TypProtokollPortbereichQuelle
HTTPSTCP443IP-Adresse des Clients (siehe Hinweis)

Hinweis: Um eingehenden Datenverkehr über den VPC-Endpunkt zu schützen, solltest du erwägen, nur die IP-Adresse oder das Netzwerk des Clients in der Quelle anzugeben.

Stelle außerdem sicher, dass die Sicherheitsgruppe, die der Instance zugeordnet ist, HTTP-Datenverkehr aus der Sicherheitsgruppe des Load Balancers zulässt:

Regel für eingehenden Datenverkehr:

TypProtokollPortbereichQuelle
HTTPTCP80Sicherheitsgruppe des Load Balancers

Stelle sicher, dass die Sicherheitsgruppe, die dem Load Balancer zugeordnet ist, den gesamten HTTP-Datenverkehr in der Regel für eingehenden Datenverkehr zulässt:

Regel für eingehenden Datenverkehr:

TypProtokollPortbereichQuelle
HTTPTCP800.0.0.0/0

Hinweis: Du musst den ausgehenden Datenverkehr in keiner der vorherigen Sicherheitsgruppen einschränken.

Nach Routing-Tabelleneinträgen suchen

Beim Erstellen von Gateway-Endpunkten hast du die Möglichkeit, eine Routing-Tabelle auszuwählen. Stelle sicher, dass du die Routing-Tabelle auswählst, die dem privaten Subnetz der VPC zugeordnet ist. Die Routing-Tabelle, die dem privaten Subnetz zugeordnet ist, muss eine Route für jeden Gateway-VPC-Endpunkt enthalten. Beispielsweise benötigst du eine Route für jeden Gateway-VPC-Endpunkt, der Amazon Simple Storage Service (Amazon S3) oder Amazon DynamoDB zugeordnet ist.

Einträge in der Routing-Tabelle:

ZielortZiel
172.xx.x.0/16lokal
pl-63a5xxxvpce-04xxx

Überprüfung der VPC-Endpunktrichtlinien

Die VPC-Endpunktrichtlinien müssen es der Elastic Beanstalk-Umgebung ermöglichen, privat mit dem Service zu kommunizieren. Wenn du eine Schnittstelle oder einen Gateway-Endpunkt erstellst, kannst du eine Endpunktrichtlinie anhängen. Die Endpunktrichtlinie steuert, welche AWS-Prinzipale den VPC-Endpunkt verwenden können, um auf den Endpunktservice zuzugreifen. Zu den AWS-Prinzipalen gehören AWS-Konten, AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmananagement)-Benutzer und IAM-Rollen. Wenn du beim Erstellen eines Endpunkts keine Endpunktrichtlinie angibst, hat der Endpunkt standardmäßig Vollzugriff.

Im Folgenden findest du ein Beispiel für eine Mindestrichtlinie für S3-Gateway-VPC-Endpunkte, die für einen S3-Endpunkt bei der Arbeit mit Elastic Beanstalk erforderlich ist.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "EBBucketAccess",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:DeleteObject",
                "s3:PutBucketPolicy",
                "s3:PutObjectVersionAcl"
            ],
            "Resource": [
                "arn:aws:s3:::elasticbeanstalk-*",
                "arn:aws:s3:::elasticbeanstalk-*/*",
                "arn:aws:s3:::cloudformation*/*"
            ]
        }
    ]
}

Ähnliche Informationen

Über einen Schnittstellen-VPC-Endpunkt auf einen AWS-Service zugreifen

AWS OFFICIALAktualisiert vor 8 Monaten