What is Amazon Cloud Map?
Amazon Cloud Map is a cloud resource discovery service. Cloud Map enables you to name your application resources with custom names, and it automatically updates the locations of these dynamically changing resources. This increases your application availability because your applications always discover the most up-to-date locations of its resources.
Why should I use Cloud Map?
Modern applications are typically composed of multiple services that are accessible over an API and perform a specific function. Each service interacts with a variety of other resources such as databases, queues, object stores, and customer-defined microservices, and they also need to be able to find the location of all the infrastructure resources on which it depends, in order to function.
Cloud Map allows you to register any application resources such as databases, queues, microservices, and other cloud resources with custom names. Cloud Map then constantly checks the health of resources to make sure the location is up-to-date. The resources in your application can then query the registry for the location of the exact resources needed based on the application version and deployment environment.
What is a namespace?
A namespace is a logical entity in Amazon Cloud Map that allows for grouping your services and enforcing a common level of visibility—either public (accessible from the public internet) or private (visible in a specific VPC only). You define how your applications should discover services at the namespace level by allowing the discovery via Amazon Web Services SDK and API, or enabling optional discovery via DNS.
What is the difference between a “service” and a “resource” in Amazon Cloud Map?
In Amazon Cloud Map, a service is an application component that serves a particular purpose, such as generating bills or resizing thumbnail images. When a service is deployed, it runs on some type of infrastructure, for example, EC2 instances, ECS tasks, DynamoDB tables, SQS queues, or Lambda functions. In Amazon Cloud Map, these are resources. Your service may require only one resource, or it could be running on thousands of resources that dynamically come and go as it scales.
What is the difference between the answers Amazon Cloud Map returns over DNS vs. HTTPS?
Over DNS, Amazon Cloud Map provides resource locations that consist of IP addresses or IP:port combinations (using either IPv4 or IPv6). Using API-based discovery, Amazon Cloud Map can return all of those types of locations, as well as URLs or ARNs. For resources that have IP or IP:port locations, you can specify whether Amazon Cloud Map should return resources when queried over DNS, API, or both. For resources that have URL or ARN locations, applications must query over API. When clients query Amazon Cloud Map over API, they can narrow down the results by specifying attributes.
How does Amazon Cloud Map perform health checking of my IP-based resources?
When you register a resource in Amazon Cloud Map, you can optionally specify settings for health checks, including: health-checking type (regular or path-based), an optional path to check, and the number of retries to deem the resource unhealthy. As soon as you register IP-based resources, Amazon Cloud Map automatically provisions health checks for these resources based on the settings in the service. Amazon Cloud Map also makes resource health information available via the /describeHealthStatus API.
Will Amazon Cloud Map work with resources in my VPC?
Yes, Amazon Cloud Map allows you to register resources in your VPC and make them discoverable. Amazon Cloud Map also includes a regional API that you can use to register and deregister the resources inside or outside of VPC.
How does integration with Amazon Elastic Container Service (ECS) work?
When you create an ECS service, you can choose to enable service discovery by specifying a custom name, attributes, and optional health-checking settings for the service. As ECS launches tasks for your service, it registers them as resources in the Amazon Cloud Map service registry, which ensures that the tasks become discoverable via API calls and DNS queries.
How does integration with Amazon Elastic Container Service for Kubernetes (EKS) work?
We created a Cloud Map provider in an open-source Kubernetes connector ExternalDNS that automatically propagates internal service locations to the Amazon Cloud Map service registry as Amazon EKS services launch and removes them on termination. All EKS services then become discoverable via Amazon Cloud Map, which provides a unified service registry for all container workloads on EKS.