Amazon ECS Service Discovery Concepts

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

Internal

Overview

Service discovery uses Amazon Route 53 to create a namespace for an ECS service, which allows it to be discoverable via DNS. Service discovery is supported for tasks that use the Fargate launch type. Amazon ECS does not support registering services into public DNS namespaces. Service discovery requires that tasks specify awsvpc, bridge or host network modes.

Namespace

The service discovery namespace is a logical group of service discovery services that share the same domain name. A hosted zone in Route 53 is created for each private namespace. If a hosted zone with the same name already exists, it is used.

Service Discovery Service

A service discovery service exists within the service discovery namespace and consists of the service name and DNS configuration for the namespace. It provides a "service registry" core component.

Service Registry

Allows to look up a service via DNS or AWS Cloud Map API actions and get back one or more available endpoints that can be used to connect to the service.

Service Discovery Instance

Exists within the service discovery service and consists of the attributes associated with each Amazon ECS service in the service directory. The instance attributes are metadata that is added as custom attributes for each Amazon ECS service that is configured to use service discovery:

AWS_INSTANCE_IPV4

For an A record, the IPv4 address that Route53 returns in response to DNS queries and AWS Cloud Map returns when discovering instance details.

AWS_INSTANCE_PORT

The port value associated with the service discovery service.

AVAILABILITY_ZONE

The availability zone into which the task was launched.

REGION

ECS_SERVICE_NAME

The name of the Amazon ECS service to which the task belongs.

ECS_CLUSTER_NAME

The name of the Amazon ECS cluster to which the task belongs.

EC2_INSTANCE_ID

ECS_TASK_DEFINITION_FAMILY