Serviceerkennung - 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.

Serviceerkennung

Ihr Amazon-ECS-Service kann optional so konfiguriert werden, dass er die Amazon-ECS-Serviceerkennung verwendet. Service Discovery verwendet AWS Cloud Map API-Aktionen, um HTTP- und DNS-Namespaces für Ihre Amazon-ECS-Services zu verwalten. Weitere Informationen finden Sie unter Was ist AWS Cloud Map? im AWS Cloud Map -Entwicklerhandbuch.

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

Name der Region Region

USA Ost (Nord-Virginia)

us-east-1

USA Ost (Ohio)

us-east-2

USA West (Nordkalifornien)

us-west-1

US 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

Asia Pacific (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

Europe (London)

eu-west-2

Europe (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 (VAE)

me-central-1

Naher Osten (Bahrain)

me-south-1

South America (São Paulo)

sa-east-1

AWS GovCloud (USA-Ost)

us-gov-east-1

AWS GovCloud (USA-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 Amazon-ECS-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 Cloud Map AWS CLI Referenzhandbuch für (Service Discovery).

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

    • Service Registry : Ermöglicht es Ihnen, einen Service über DNS- oder AWS Cloud Map API-Aktionen nachzuschlagen und einen oder mehrere verfügbare Endpunkte abzurufen, die für die Verbindung mit dem Service verwendet werden können.

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

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

      • AWS_INSTANCE_IPV4 – Für einen -ADatensatz die IPv4-Adresse, die Route 53 als Antwort auf DNS-Abfragen zurückgibt und bei der Erkennung von Instance-Details AWS Cloud Map zurückgibt, z. B. 192.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 Starttyp EC2 verwenden, ist dies die Availability Zone, in der die Container-Instance besteht. 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 Amazon-ECS-Services, zu dem die Aufgabe gehört.

      • ECS_CLUSTER_NAME: Der Name des Amazon ECS-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.

  • Amazon ECS-Zustandsprüfungen: Amazon ECS führt regelmäßige Zustandsprüfungen auf Container-Ebene 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-Linux-Plattformversionen.

  • 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 Amazon ECS-Konsole unterstützt nur die Registrierung von Services in private DNS-Namespaces. Wenn ein AWS Cloud Map privater DNS-Namespace erstellt wird, wird automatisch eine privat gehostete Route-53-Zone erstellt.

  • Die VPC DNS-Attribute müssen für eine erfolgreiche DNS-Auflösung konfiguriert werden. Weitere Informationen zum Konfigurieren der Attribute finden Sie unter DNS-Support für Ihre VPC im Amazon VPC-Benutzerhandbuch.

  • Die für einen Service Discovery-Service erstellten DNS-Datensätze werden auch bei Verwendung von öffentlichen Namespaces immer mit der privaten IP-Adresse für die Aufgabe anstelle der öffentlichen IP-Adresse registriert.

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

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

  • Wenn die Service-Aufgabendefinition den Netzwerkmodus bridge oder host verwendet, wird nur der SRV-Datensatz als DNS-Datensatztyp unterstützt. Erstellen Sie einen SRV-Datensatz für jede Serviceaufgabe. Der SRV-Datensatz muss eine Kombination aus Containername und Container-Port aus der Aufgabendefinition angeben.

  • DNS-Datensätze für einen Service zur Serviceerkennung können innerhalb Ihrer VPC abgefragt werden. Sie verwenden das folgende Format: <service discovery service name>.<service discovery namespace>.

  • Wenn Sie eine DNS-Abfrage nach dem Namen des Services durchführen, geben A-Datensätze eine Reihe von IP-Adressen zurück, die Ihren Aufgaben entsprechen. SRV-Datensätze geben einen Satz von IP-Adressen und Ports für jede Aufgabe zurück.

  • Wenn Sie über acht oder weniger fehlerfreie Datensätze verfügen, 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, Zustandsprüfungen auf Containerebene zu verwenden, die von Amazon ECS für Ihren Service zur Service Discovery verwaltet werden.

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

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

  • Aufgaben und Instances werden als registriert, UNHEALTHY bis die Container-Zustandsprüfungen einen Wert zurückgeben. Wenn die Zustandsprüfungen erfolgreich sind, wird der Status auf aktualisiertHEALTHY. Wenn die Container-Zustandsprüfungen fehlschlagen, wird die Service Discovery-Instance abgemeldet.

Service Discovery-Preisgestaltung

Den Kunden, die Amazon-ECS-Service Discovery nutzen, werden die Route 53-Ressourcen und die AWS Cloud Map -Discovery API-Operationen berechnet. 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 stellt sie AWS Cloud Map benutzerdefinierten API-Operationen für Zustandsprüfungen zur Verfügung. 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.