Création d'un AWS Cloud Map service - AWS Cloud Map

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création d'un AWS Cloud Map service

Pour créer un service, utilisez la procédure suivante.

AWS Management Console
  1. Connectez-vous à la AWS Cloud Map console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/cloudmap/.

  2. Dans le panneau de navigation, choisissez Namespaces (Espaces de noms).

  3. Sur la page Namespaces (Espaces de noms), choisissez l'espace de noms auquel vous souhaitez ajouter le service.

  4. Sur la page Namespace: (Espace de noms :) nom-espace de noms, choisissez Create service (Créer un service).

  5. Sur la page Create service (Créer un service), entrez les valeurs applicables. Pour de plus amples informations, veuillez consulter Valeurs que vous spécifiez lors de la création de services.

  6. Choisissez Créer un service.

AWS CLI
  • Créez un service avec la create-service commande (remplacez la valeur rouge par la vôtre).

    aws servicediscovery create-service \ --name service-name \ --namespace-id ns-xxxxxxxxxxx \ --dns-config "NamespaceId=ns-xxxxxxxxxxx,RoutingPolicy=MULTIVALUE,DnsRecords=[{Type=A,TTL=60}]"

    Sortie :

    { "Service": { "Id": "srv-xxxxxxxxxxx", "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-xxxxxxxxxxx", "Name": "service-name", "NamespaceId": "ns-xxxxxxxxxxx", "DnsConfig": { "NamespaceId": "ns-xxxxxxxxxxx", "RoutingPolicy": "MULTIVALUE", "DnsRecords": [ { "Type": "A", "TTL": 60 } ] }, "CreateDate": 1587081768.334, "CreatorRequestId": "567c1193-6b00-4308-bd57-ad38a8822d25" } }
AWS SDK for Python (Boto3)
  1. Si ce n'est pas déjà Boto3 fait, vous trouverez les instructions d'installation, de configuration et d'utilisation Boto3 ici.

  2. Importez Boto3 et utilisez servicediscovery en tant que service.

    import boto3 client = boto3.client('servicediscovery')
  3. Créez un service avec create_service() (remplacez la valeur rouge par la vôtre).

    response = client.create_service( DnsConfig={ 'DnsRecords': [ { 'TTL': 60, 'Type': 'A', }, ], 'NamespaceId': 'ns-xxxxxxxxxxx', 'RoutingPolicy': 'MULTIVALUE', }, Name='service-name', NamespaceId='ns-xxxxxxxxxxx', )

    Exemple de sortie de réponse

    { 'Service': { 'Arn': 'arn:aws:servicediscovery:us-west-2:123456789012:service/srv-xxxxxxxxxxx', 'CreateDate': 1587081768.334, 'DnsConfig': { 'DnsRecords': [ { 'TTL': 60, 'Type': 'A', }, ], 'NamespaceId': 'ns-xxxxxxxxxxx', 'RoutingPolicy': 'MULTIVALUE', }, 'Id': 'srv-xxxxxxxxxxx', 'Name': 'service-name', 'NamespaceId': 'ns-xxxxxxxxxxx', }, 'ResponseMetadata': { '...': '...', }, }
Note

Pour les services accessibles par des requêtes DNS, vous ne pouvez pas créer plusieurs services dont les noms ne diffèrent que par cas (par exemple et exemple). Dans le cas contraire, ces services porteront le même nom DNS. Si vous utilisez un espace de noms accessible uniquement par des appels d'API, vous pouvez créer des services dont les noms ne diffèrent qu'au cas par cas.

Valeurs que vous spécifiez lors de la création de services

Lorsque vous créez un AWS Cloud Map service, vous spécifiez les valeurs suivantes.

Note

Vous ne pouvez modifier les balises d'un service qu'après l'avoir créé.

Valeurs

Nom du service

Entrez un nom qui décrit les instances que vous enregistrez lorsque vous utilisez ce service. La valeur est utilisée pour découvrir les instances AWS Cloud Map de service soit dans les appels d'API, soit dans les requêtes DNS. Cela dépend de la méthode de découverte d'instance que vous avez choisie lors de la création de l'espace de noms. Vous pouvez choisir l'une des méthodes suivantes :

  • Appels d'API : lorsque votre application appelle DiscoverInstances, l'appel d'API inclut l'espace de noms et les noms de service.

  • Appels d'API et requêtes DNS dans les VPC ou appels d'API et requêtes DNS publiques : lorsque vous enregistrez des instances de service et créez l'espace de noms, vous créez AWS Cloud Map une zone hébergée privée ou publique Amazon Route 53. Il crée également des enregistrements DNS dans cette zone hébergée. Les noms des enregistrements sont au format suivant :

    nom-service.nom-espace de noms

    Lorsque votre application envoie une requête DNS pour découvrir des instances de service, la requête est pour un enregistrement qui comprend le nom du service et le nom de l'enregistrement.

Note

Lorsque vous créez un service dans un espace de noms qui prend en charge les requêtes DNS, vous pouvez choisir de faire en sorte que les instances de service correspondant à ce service ne soient détectables qu'avec des appels à l'opération d'DiscoverInstancesAPI, et non avec des requêtes DNS. veuillez consulter Service discovery configuration.

Si vous AWS Cloud Map souhaitez créer un enregistrement SRV lorsque vous enregistrez une instance et que vous utilisez un système qui nécessite un format SRV spécifique (tel que HAProxy), spécifiez ce qui suit pour le nom du service :

  • Commencez le nom par un trait de soulignement (_), par exemple _exampleservice.

  • Terminez le nom par. _protocol, par exemple. _tcp.

Lorsque vous enregistrez une instance, AWS Cloud Map créez un enregistrement SRV et attribuez un nom en concaténant le nom du service et le nom de l'espace de noms, par exemple :

_exampleservice._tcp.example.com

Note

Pour les services détectables par des requêtes DNS, vous ne pouvez pas créer plusieurs services dont les noms ne diffèrent que par cas (par exemple et exemple). Dans le cas contraire, ces services portent le même nom DNS et ne peuvent pas être distingués.

Description du service

Saisissez une description pour le service. La valeur que vous entrez ici apparaît sur la page Services et sur la page des détails de chaque service.

Configuration de la découverte de services

Si l'espace de noms prend en charge les requêtes DNS, AWS Cloud Map prend en charge les options de découverte de service suivantes :

API et DNS

AWS Cloud Map créera des enregistrements SRV lorsque vous enregistrez une instance pour le service. Les instances de service peuvent également être découvertes à l'aide de l'opération DiscoverInstancesAPI.

API uniquement

AWS Cloud Map ne créera pas d'enregistrements SRV par exemple pour le service. Les instances de service ne peuvent être découvertes qu'à l'aide de DiscoverInstancesl'opération API.

Politique de routage (espaces de noms DNS publics et privés uniquement)

Si vous utilisez un espace de noms DNS public ou privé pour créer le service, choisissez la politique de routage Amazon Route 53 pour les enregistrements DNS AWS Cloud Map créés lorsque vous enregistrez des instances. (Les espaces de noms DNS publics ont la valeur API calls and public DNS queries (Appels d'API et requêtes DNS publiques) pour Instance discovery (Découverte d'instance) et les espaces de noms DNS privés ont la valeur API calls and DNS queries in VPCs (Appels d'API et requêtes DNS dans les VPC).)

Note

Vous ne pouvez pas utiliser la console AWS Cloud Map pour configurer la création d'un enregistrement d'alias Route 53 lorsque vous enregistrez une instance. Si vous AWS Cloud Map souhaitez créer des enregistrements d'alias pour l'équilibreur de charge Elastic Load Balancing lorsque vous enregistrez des instances par programmation, choisissez Weighted routing for Routing policy.

AWS Cloud Map prend en charge les politiques de routage Route 53 suivantes :

Weighted routing (Routage pondéré)

Route 53 renvoie la valeur applicable à partir d'une instance sélectionnée de façon aléatoire parmi les instances que vous avez enregistrées avec le même service. Tous les enregistrements ont la même pondération. Vous ne pouvez donc pas acheminer plus ou moins de trafic vers des instances.

Supposons, par exemple, que le service inclut des configurations pour un enregistrement A et un bilan de santé, et que vous utilisiez le service pour enregistrer 10 instances. Route 53 répond aux requêtes DNS avec l'adresse IP pour une instance sélectionnée de façon aléatoire parmi les instances saines. Si aucune instance n'est saine, Route 53 répond aux requêtes DNS comme si toutes les instances étaient saines.

Si vous ne définissez pas une vérification de l'état pour le service, Route 53 suppose que toutes les instances sont saines et renvoie la valeur applicable pour une instance sélectionnée de façon aléatoire.

Pour plus d'informations, consultez la section Weighted Routing dans le guide du développeur Amazon Route 53.

Multivalue answer routing (Routage de réponse multivaleur)

Si vous définissez un bilan de santé pour le service et que le résultat du bilan de santé est sain, Route 53 renvoie la valeur applicable pour un maximum de huit instances.

Supposons, par exemple, que le service inclut des configurations pour un enregistrement A et un bilan de santé. et que vous utilisez le service pour enregistrer 10 instances. Route 53 répond aux requêtes DNS avec des adresses IP pour un maximum de huit instances saines. Si moins de huit instances sont saines, Route 53 répond à chaque requête DNS avec les adresses IP de toutes les instances saines.

Si vous ne définissez pas une vérification de l'état pour le service, Route 53 suppose que toutes les instances sont saines et renvoie les valeurs pour huit instances maximum.

Pour plus d'informations, consultez la section Routage des réponses à valeurs multiples dans le manuel du développeur Amazon Route 53.

Type d'enregistrement (espaces de noms DNS publics et privés uniquement)

Si vous utilisez un espace de noms DNS public ou privé pour créer le service, choisissez le type d'enregistrement DNS pour les enregistrements AWS Cloud Map créés lorsque vous enregistrez des instances. Amazon Route 53 renvoie la valeur applicable en réponse aux requêtes DNS pour les instances enregistrées.

Les types d'enregistrement suivants sont pris en charge :

A

Lorsque vous enregistrez une instance, vous spécifiez une adresse IP au format IPv4, comme 192.0.2.44.

AAAA

Lorsque vous enregistrez une instance, vous spécifiez une adresse IP au format IPv6, comme 2001:0db8:85a3:0000:0000:abcd:0001:2345.

CNAME

Lorsque vous enregistrez une instance, vous spécifiez le nom de domaine de la ressource (tel que www.exemple.com). Notez ce qui suit :

  • Si vous souhaitez choisir CNAME, vous devez sélectionner Weighted routing (Routage pondéré) pour Routing policy (Stratégie de routage).

  • Si vous choisissez CNAME, vous ne pouvez pas sélectionner Route 53 health check (Vérification de l'état Route 53) pour Health check options (Options de vérification de l'état).

SRV

La valeur pour un enregistrement SRV utilise les valeurs suivantes :

priority weight port service-hostname

Notez les points suivants à propos des valeurs :

  • Les valeurs de priority et weight sont toutes les deux définies sur 1 et ne peuvent pas être modifiées.

  • Pourport, AWS Cloud Map utilise la valeur que vous spécifiez pour Port lorsque vous enregistrez une instance.

  • La valeur de service-hostname est une concaténation des valeurs suivantes :

    • La valeur que vous spécifiez pour Service instance ID (ID d'instance de service) lorsque vous enregistrez une instance

    • Le nom du service

    • Le nom de l'espace de noms

    Supposons, par exemple, que vous spécifiez un test pour l'ID d'instance de service lorsque vous enregistrez une instance. Le nom du service est backend et le nom de l'espace de noms est example.com. AWS Cloud Map attribue la valeur suivante à l'service-hostnameattribut dans l'enregistrement SRV :

    test.backend.example.com

Si vous spécifiez des paramètres pour un enregistrement SRV, notez les points suivants :

  • Si vous spécifiez des valeurs pour Adresse IPv4, pour Adresse IPv6 ou les deux, AWS Cloud Map crée automatiquement des enregistrements A et/ou AAAA ayant le même nom que la valeur de service-hostname dans l'enregistrement SRV.

  • Si vous utilisez un système qui nécessite un format SRV spécifique, tel que HAProxy, veuillez consulter Nom de service pour plus d'informations sur la façon de spécifier le format de nom correct.

Vous pouvez spécifier des types d'enregistrement dans les combinaisons suivantes :

  • A

  • AAAA

  • A et AAAA

  • CNAME

  • SRV

Si vous spécifiez des types d'enregistrement A et AAAA, vous pouvez indiquer une adresse IP IPv4, une adresse IP IPv6 ou les deux lorsque vous enregistrez une instance.

TTL (espaces de noms DNS publics et privés uniquement)

Si vous utilisez un espace de noms DNS public ou privé pour créer le service, entrez une valeur pour TTL, ou time to live. La valeur du TTL détermine la durée pendant laquelle les résolveurs DNS mettent en cache les informations relatives à cet enregistrement avant qu'ils ne transmettent une autre requête DNS à Amazon Route 53 pour obtenir des paramètres mis à jour.

Options de bilan de santé

Aucune vérification de l'état

Si vous ne configurez pas de contrôle de santé, le trafic est acheminé vers les instances de service, qu'elles soient saines ou non.

Contrôle de santé de Route 53 (non pris en charge pour les espaces de noms DNS privés)

Si vous définissez les paramètres d'un bilan de santé d'Amazon Route 53, AWS Cloud Map crée un bilan de santé Route 53 chaque fois que vous enregistrez une instance et supprimez le bilan de santé lorsque vous annulez l'enregistrement de l'instance.

Pour les espaces de noms DNS publics, AWS Cloud Map associe le bilan de santé à l'enregistrement Route 53 AWS Cloud Map créé lorsque vous enregistrez une instance.

Pour les espaces de noms pour lesquels vous utilisez des appels d'API pour découvrir des instances, AWS Cloud Map crée une vérification de l'état de Route 53. Cependant, il n'existe aucun enregistrement DNS AWS Cloud Map auquel associer le bilan de santé. Pour déterminer si un bilan de santé est sain, vous pouvez configurer la surveillance à l'aide de la console Route 53 ou d'Amazon CloudWatch. Pour plus d'informations sur l'utilisation de la console Route 53, consultez Get Notified When a Health Check Fails dans le manuel Amazon Route 53 Developer Guide. Pour plus d'informations sur l'utilisation CloudWatch, consultez PutMetricAlarmle Amazon CloudWatch API Reference.

Pour plus d'informations sur les frais liés aux bilans de santé de la Route 53, consultez la section Tarification de la Route 53.

Custom health check (Vérification de l'état personnalisée)

Si vous configurez AWS Cloud Map pour utiliser un contrôle de santé personnalisé lorsque vous enregistrez une instance, vous devez utiliser un vérificateur de santé tiers pour évaluer l'état de vos ressources. Les vérifications de l'état personnalisées s'avèrent utiles dans les situations suivantes :

  • Vous ne pouvez pas utiliser le bilan de santé de Route 53 car la ressource n'est pas disponible sur Internet. Supposons, par exemple, que vous disposiez d'une instance située dans un Amazon VPC. Vous pouvez utiliser un bilan de santé personnalisé pour cette instance. Toutefois, pour que le bilan de santé fonctionne, votre vérificateur de santé doit également se trouver dans le même VPC que votre instance.

  • Vous souhaitez utiliser un outil de vérification de l'état tiers quel que soit l'emplacement de vos ressources.

Seuil de défaillance (vérification de l'état de la Route 53 uniquement)

Le nombre de contrôles d'état consécutifs de la Route 53 qu'une ressource doit réussir ou échouer pour qu'Amazon Route 53 fasse passer le statut actuel de la ressource de saine à insalubre ou dans le cas contraire. Pour plus d'informations, consultez le guide du développeur Amazon Route 53 intitulé Comment Amazon Route 53 détermine si un bilan de santé est sain.

Protocole de contrôle de santé (contrôle de santé Route 53 uniquement)

La méthode que vous souhaitez qu'Amazon Route 53 utilise pour vérifier l'état de votre ressource :

HTTP

Route 53 essaie d'établir une connexion TCP. En cas de succès, Route 53 envoie une requête HTTP et attend un code d'état HTTP au format 2xx ou 3xx.

HTTPS

Route 53 essaie d'établir une connexion TCP. En cas de succès, Route 53 envoie une requête HTTPS et attend un code d'état HTTP au format 2xx ou 3xx.

Important

Si vous choisissez HTTPS, la ressource doit prendre en charge TLS v1.0 ou une version ultérieure.

Si vous choisissez le protocole HTTPS pour la valeur du protocole Health check, des frais supplémentaires s'appliquent. Pour en savoir plus, consultez Tarification Route 53.

TCP

Route 53 essaie d'établir une connexion TCP.

Pour plus d'informations, consultez Comment Amazon Route 53 détermine si un bilan de santé est sain.

Chemin de vérification de l'état (contrôles de santé HTTP et HTTPS de Route 53 uniquement)

Le chemin que vous souhaitez qu'Amazon Route 53 demande lors des contrôles de santé. Le chemin peut être n'importe quelle valeur, telle que le fichier/docs/route53-health-check.html. Lorsque la ressource est saine, la valeur renvoyée est un code d'état HTTP au format 2xx ou 3xx. Vous pouvez également inclure des paramètres de chaîne de requête, par exemple, /welcome.html?language=jp&login=y. La console AWS Cloud Map ajoute automatiquement une barre oblique (/) au début.

Balises

Vous pouvez spécifier une ou plusieurs balises à ajouter à votre service. Une balise est une étiquette facultative que vous pouvez attribuer à une AWS ressource. Chaque balise se compose d’une clé et d’une valeur. Par exemple, vous pouvez définir une balise avec Key = Environment et Value = Production. L'utilisation de balises pour classer les AWS ressources peut faciliter leur gestion.

Une fois vos balises créées, vous pouvez toujours mettre à jour ou supprimer des balises dans vos espaces de noms. Pour de plus amples informations, veuillez consulter Balisage de vos ressources AWS Cloud Map.