Verwenden Sie Service Discovery, um ECS Amazon-Services mit DNS Namen zu verbinden - Amazon Elastic Container Service

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.

Verwenden Sie Service Discovery, um ECS Amazon-Services mit DNS Namen zu verbinden

Ihr ECS Amazon-Service kann optional für die Verwendung von Amazon ECS Service Discovery konfiguriert werden. Service Discovery verwendet AWS Cloud Map API Aktionen zur Verwaltung HTTP und DNS Namespaces für Ihre Amazon-Services. ECS Weitere Informationen finden Sie unter Was ist AWS Cloud Map? im AWS Cloud Map -Entwicklerhandbuch.

Service Discovery ist in den folgenden Regionen verfügbar: AWS

Name der Region Region

USA Ost (Nord-Virginia)

us-east-1

USA Ost (Ohio)

us-east-2

USA West (Nordkalifornien)

us-west-1

USA West (Oregon)

us-west-2

Afrika (Kapstadt)

af-south-1

Asien-Pazifik (Hongkong)

ap-east-1

Asien-Pazifik (Mumbai)

ap-south-1

Asien-Pazifik (Hyderabad)

ap-south-2

Asien-Pazifik (Tokio)

ap-northeast-1

Asien-Pazifik (Seoul)

ap-northeast-2

Asien-Pazifik (Osaka)

ap-northeast-3

Asien-Pazifik (Singapur)

ap-southeast-1

Asien-Pazifik (Sydney)

ap-southeast-2

Asien-Pazifik (Jakarta)

ap-southeast-3

Asien-Pazifik (Melbourne)

ap-southeast-4

Kanada (Zentral)

ca-central-1

Kanada West (Calgary)

ca-west-1

China (Beijing)

cn-north-1

China (Ningxia)

cn-northwest-1

Europe (Frankfurt)

eu-central-1

Europa (Zürich)

eu-central-2

Europa (Irland)

eu-west-1

Europa (London)

eu-west-2

Europa (Paris)

eu-west-3

Europa (Mailand)

eu-south-1

Europa (Stockholm)

eu-north-1

Israel (Tel Aviv)

il-central-1

Europa (Spanien)

eu-south-2

Naher Osten (UAE)

me-central-1

Naher Osten (Bahrain)

me-south-1

Südamerika (São Paulo)

sa-east-1

AWS GovCloud (US-Ost)

us-gov-east-1

AWS GovCloud (US-West)

us-gov-west-1

Konzepte für Service Discovery

Die Serviceerkennung umfasst folgende Komponenten:

  • Service Discovery-Namespace: Eine logische Gruppe von Service Discovery-Services, die den gleichen Domain-Namen haben, zum Beispiel example.com. Dies ist der Domain-Name, an den Sie den Datenverkehr weiterleiten möchten. Sie können einen Namespace mit einem Aufruf des aws servicediscovery create-private-dns-namespace Befehls oder in der ECS Amazon-Konsole erstellen. Sie können den aws servicediscovery list-namespaces-Befehl zum Anzeigen der zusammenfassenden Informationen über die Namespaces, die vom aktuellen Konto erstellt wurden, verwenden. Weitere Informationen zu den Service Discovery-Befehlen finden Sie unter create-private-dns-namespace und list-namespaces im AWS CLI Referenzhandbuch AWS Cloud Map (Service Discovery).

  • Service Discovery Service: Existiert im Service Discovery-Namespace und besteht aus dem Dienstnamen und der DNS Konfiguration für den Namespace. Er stellt die folgende Kernkomponente bereit:

    • Dienstregistrierung: Ermöglicht es Ihnen, über DNS oder AWS Cloud Map API -Aktionen nach einem Dienst zu suchen und einen oder mehrere verfügbare Endpunkte wiederherzustellen, die für die Verbindung mit dem Dienst verwendet werden können.

  • Service Discovery-Instance: Existiert innerhalb des Service Discovery Service und besteht aus den Attributen, die jedem ECS Amazon-Service im Service-Verzeichnis zugeordnet sind.

    • Instance-Attribute: Die folgenden Metadaten werden als benutzerdefinierte Attribute für jeden ECS Amazon-Service hinzugefügt, der für die Verwendung von Service Discovery konfiguriert ist:

      • AWS_INSTANCE_IPV4— Für einen A Datensatz die IPv4 Adresse, die Route 53 als Antwort auf DNS Anfragen zurückgibt und die AWS Cloud Map zurückgibt, wenn Instance-Details gefunden werden, zum Beispiel192.0.2.44.

      • AWS_INSTANCE_PORT: Der Port-Wert, der dem Service Disovery-Service zugeordnet ist.

      • AVAILABILITY_ZONE: Die Availability Zone, in der die Aufgabe gestartet wurde. Bei Aufgaben, die den EC2 Starttyp verwenden, ist dies die Availability Zone, in der sich die Container-Instance befindet. Bei Aufgaben, die den Starttyp Fargate verwenden, ist dies die Availability Zone, in der die Elastic-Network-Schnittstelle besteht.

      • REGION: Die Region, in der sich die Aufgabe befindet.

      • ECS_SERVICE_NAME— Der Name des ECS Amazon-Dienstes, zu dem die Aufgabe gehört.

      • ECS_CLUSTER_NAME— Der Name des ECS Amazon-Clusters, zu dem die Aufgabe gehört.

      • EC2_INSTANCE_ID: Die ID der Container-Instance, in der die Aufgabe platziert wurde. Dieses benutzerdefinierte Attribut wird nicht hinzugefügt, wenn die Aufgabe den Starttyp Fargate verwendet.

      • ECS_TASK_DEFINITION_FAMILY: Die Aufgabendefinitionsfamilie, die die Aufgabe verwendet.

      • ECS_TASK_SET_EXTERNAL_ID: Wenn eine Aufgabe für eine externe Bereitstellung erstellt und einer Service Discovery-Registrierung zugeordnet wird, dann enthält das Attribut ECS_TASK_SET_EXTERNAL_ID die externe ID des Aufgabensatzes.

  • ECSAmazon-Gesundheitschecks: Amazon ECS führt regelmäßig Gesundheitschecks auf Containerebene durch. Wenn ein Endpunkt die Zustandsprüfung nicht besteht, wird er aus dem DNS Routing entfernt und als fehlerhaft markiert.

Überlegungen zu Service Discovery

Bei der Verwendung der Serviceerkennung sollte Folgendes berücksichtigt werden:

  • Service Discovery wird für Aufgaben auf Fargate unterstützt, die Plattform-Version v1.1.0 oder höher verwenden. Weitere Informationen finden Sie unter Fargate-Plattformversionen für Amazon ECS.

  • Services, die für die Verwendung von Service Discovery konfiguriert sind, haben ein Limit von 1000 Aufgaben pro Service. Dies ist auf eine Service-Quote der Route 53 zurückzuführen.

  • Der Create Service Workflow in der ECS Amazon-Konsole unterstützt nur die Registrierung von Services in privaten DNS Namespaces. Wenn ein AWS Cloud Map privater DNS Namespace erstellt wird, wird automatisch eine private gehostete Route 53-Zone erstellt.

  • Die VPC DNS Attribute müssen für eine erfolgreiche DNS Lösung konfiguriert werden. Informationen zur Konfiguration der Attribute finden Sie unter DNSSupport VPC in Ihrem VPC Amazon-Benutzerhandbuch.

  • Die für einen Service Discovery Service erstellten DNS Datensätze werden immer mit der privaten IP-Adresse für die Aufgabe und nicht mit der öffentlichen IP-Adresse registriert, selbst wenn öffentliche Namespaces verwendet werden.

  • Service Discovery erfordert, dass Aufgaben entweder Netzwerkmodus awsvpc, bridge oder host angeben (none wird nicht unterstützt).

  • Wenn die Service-Task-Definition den awsvpc Netzwerkmodus verwendet, können Sie für jede Service-Task eine beliebige Kombination von A oder SRV Datensätzen erstellen. Wenn Sie SRV Datensätze verwenden, ist ein Port erforderlich.

  • Wenn die Service-Task-Definition den host Netzwerkmodus bridge oder verwendet, ist der SRV Datensatz der einzige unterstützte DNS Datensatztyp. Erstellen Sie einen SRV Datensatz für jede Serviceaufgabe. Der SRV Datensatz muss eine Kombination aus Containername und Container-Port aus der Aufgabendefinition enthalten.

  • DNSDatensätze für einen Service Discovery Service können in Ihrem abgefragt werden. VPC Sie verwenden das folgende Format: <service discovery service name>.<service discovery namespace>.

  • Wenn Sie den Dienstnamen DNS abfragen, geben die A Datensätze eine Reihe von IP-Adressen zurück, die Ihren Aufgaben entsprechen. SRVDatensätze geben eine Reihe von IP-Adressen und Ports für jede Aufgabe zurück.

  • Wenn Sie acht oder weniger fehlerfreie Datensätze haben, beantwortet Route 53 alle DNS Abfragen mit allen fehlerfreien Datensätzen.

  • Wenn alle Datensätze fehlerhaft sind, beantwortet Route 53 DNS Abfragen mit bis zu acht fehlerhaften Datensätzen.

  • Sie können die Serviceerkennung für einen Service konfigurieren, der sich hinter einem Load Balancer befindet, aber der Serviceerkennungsverkehr wird immer an die Aufgabe und nicht an den Load Balancer weitergeleitet.

  • Service Discovery unterstützt die Verwendung von Classic Load Balancers nicht.

  • Wir empfehlen Ihnen, ECS für Ihren Service Discovery Service die von Amazon verwalteten Gesundheitschecks auf Containerebene zu verwenden.

    • HealthCheckCustomConfig—Amazon ECS verwaltet Gesundheitschecks in Ihrem Namen. Amazon ECS verwendet Informationen aus Container- und Zustandsprüfungen sowie Ihren Aufgabenstatus, um den Zustand zu aktualisieren AWS Cloud Map. Dies wird beim Erstellen Ihres Service Discovery-Service mit dem Parameter --health-check-custom-config festgelegt. Weitere Informationen finden Sie HealthCheckCustomConfigin der AWS Cloud Map APIReferenz.

  • Die AWS Cloud Map Ressourcen, die bei der Verwendung von Service Discovery erstellt werden, müssen manuell bereinigt werden.

  • Aufgaben und Instanzen werden solange registriert, UNHEALTHY bis die Container-Integritätsprüfungen einen Wert zurückgeben. Wenn die Integritätsprüfungen erfolgreich sind, wird der Status auf aktualisiertHEALTHY. Wenn die Container-Integritätsprüfungen fehlschlagen, wird die Registrierung der Service Discovery-Instance aufgehoben.

Service Discovery-Preisgestaltung

Kunden, die Amazon ECS Service Discovery nutzen, zahlen Gebühren für Route 53-Ressourcen und AWS Cloud Map API Discovery-Operationen. Dies umfasst die Kosten für das Erstellen der von Route 53 gehosteten Zonen und Abfragen der Service-Registry. Weitere Informationen finden Sie unter AWS Cloud Map -Preisgestaltung im AWS Cloud Map -Entwicklerhandbuch.

Amazon ECS führt Zustandsprüfungen auf Containerebene durch und setzt sie AWS Cloud Map benutzerdefinierten Zustandsprüfungen ausAPI. Dies wird den Kunden derzeit ohne Mehrkosten zur Verfügung gestellt. Wenn Sie zusätzliche Zustandsprüfungen für öffentlich zugängliche Aufgaben konfigurieren, werden Ihnen diese Zustandsprüfungen in Rechnung gestellt.