Quelle est la marche à suivre pour configurer la découverte de services avec AWS Cloud Map via l'interface de ligne de commande AWS ?

Dernière mise à jour : 23/06/2020

Quelle est la marche à suivre pour créer une zone hébergée à l'aide d'AWS Cloud Map via l'interface de ligne de commande AWS (AWS CLI) ?

Brève description

AWS Cloud Map automatise la configuration DNS et simplifie la fourniture d'instances pour des services comme Amazon Elastic Container Service (Amazon ECS), AWS Fargate et Amazon Elastic Kubernetes Service (Amazon EKS).

Vous pouvez créer une zone hébergée avec AWS Cloud Map à l'aide de SDK AWS ou de l'interface de ligne de commande AWS :

1.    Créez un espace de nom DNS (pour lequel une zone hébergée est créée automatiquement) pour définir votre schéma de dénomination de service.

2.    Créez votre service.

3.    Enregistrez une instance pour votre service.

Résolution

Avant de commencer, assurez-vous d'avoir installé la dernière version de l'interface de ligne de commande AWS.

Créer votre espace de nom DNS

1.    Créez l'espace de noms à l'aide de l'interface de ligne de commande AWS, en remplaçant example.com par le nom de domaine que vous voulez utiliser.

Remarque : vous devez choisir entre la création d'un espace de noms public ou privé. Les espaces de noms publics sont visibles sur Internet, à condition que le nom de domaine soit enregistré. Les espaces de noms privés sont uniquement visibles dans le Virtual Private Cloud (VPC). Vous devez spécifier l'ID de VPC lorsque vous créez un espace de noms privé.

Pour créer un espace de noms public :

$ aws servicediscovery create-public-dns-namespace --name example.com

Pour créer un espace de noms privé :

$ aws servicediscovery create-private-dns-namespace --name example.com --vpc vpc-0c92f38bf7db24a05

2.    Notez la valeur de OperationId dans la sortie.

Par exemple :

{
    "OperationId": "igbkufld72o4vbsbwejfi6eyinfprhc3-jkwmz00b"
}

3.    Recherchez plus de détails sur l'opération à l'aide de la commande get-operation . Veillez à remplacer <OperationId value> par la valeur OperationId que vous avez trouvée à l'étape précédente.

aws servicediscovery get-operation --operation-id <OperationId value>

4.    Dans la sortie, vérifiez que la valeur Status (statut) est SUCCESS (succès). Prenez note de la valeur NAMESPACE  qui est l'ID d'espace de noms utilisé pour créer le service et enregistrer l'instance.

Par exemple :

{
    "Operation": {
        "Status": "SUCCESS",
        "CreateDate": 1534428266.699,
        "Id": "igbkufld72o4vbsbwejfi6eyinfprhc3-jkwmz00b",
        "UpdateDate": 1534428267.113,
        "Type": "CREATE_NAMESPACE",
        "Targets": {
            "NAMESPACE": "ns-f2wjnv2p7pqtz5f2"
        }
    }
}

Remarque : lorsque vous créez l'espace de noms, Route 53 crée automatiquement une zone hébergée pour le domaine. Le Domain name (nom de domaine) de la zone hébergée est le même que celui de votre espace de noms. La valeur du champ Comment (commentaire) est Created by Route 53 Auto Naming (créé par la dénomination automatique Route 53). Pour vérifier la zone hébergée :

1.    Ouvrez la console Route 53.

2.    Dans le volet de navigation, sélectionnez Hosted zones (Zones hébergées).

3.    Recherchez votre zone hébergée dans la liste des zones hébergées du volet de contenu.

Créez votre service

1.    Créez le service à l'aide de la commande servicediscovery create-service en syntaxe raccourcie comme suit. Veillez à remplacer les exécutants par le nom de service de votre choix. Route 53 utilise ce nom de service lors de la création d'enregistrements.

$aws servicediscovery create-service --name workers --dns-config 'NamespaceId="ns-f2wjnv2p7pqtz5f2",RoutingPolicy="WEIGHTED",DnsRecords=[{Type="A",TTL="300"}]'

La stratégie de routage par défaut est « MULTIVALUE ». Les stratégies de routage prises en charge sont « MULTIVALUE » et « WEIGHTED ».

2.    Notez la sortie. La valeur Id est l'ID du service que vous venez de créer.

Remarque :  CreatorRequestId est l'ID de la demande. Si l'appel d'API échoue, utilisez CreatorRequestId pour répéter l'opération.

Par exemple :

{
    "Service": {
        "DnsConfig": {
            "NamespaceId": "ns-f2wjnv2p7pqtz5f2",
            "DnsRecords": [
                {
                    "Type": "A",
                    "TTL": 300
                }
            ]
        },
        "CreatorRequestId": "93e0a17a-230b-4c58-b986-f03f3217869f",
        "Id": "srv-iy3d7hhlf5cjciph",
        "Arn": "arn:aws:servicediscovery:eu-west-1:356906700443:service/srv-iy3d7hhlf5cjciph",
        "Name": "workers"
    }
}

Enregistrer de votre instance

1.    Enregistrez votre instance en utilisant la commande servicediscovery register-instance. Veillez à remplacer les espaces réservés <value> par vos valeurs correspondantes. Notez que vous ne pouvez exécuter qu'une seule demande pour enregistrer une instance avec les mêmes options service-id et instance-id à la fois.

Important : l'appel d'API échoue si vous ne fournissez pas les paramètres service-idinstance-id et attributes . Pour plus d'informations, consultez la rubrique « Options » sur la page register-instance.

$ aws servicediscovery register-instance --service-id srv-iy3d7hhlf5cjciph --instance-id i-039444aa1e2932ca3 --attributes=AWS_INSTANCE_IPV4=172.1.1.1

2.    Vérifiez la sortie qui inclut la valeur OperationId. Par exemple :

{
    "OperationId": "z7dfqgeadkvwwid2wa2n5ckicrxs255x-jkwr1x9f"
}

3.    Ouvrez la console Route 53.

4.    Dans le volet de navigation, sélectionnez Hosted zones (Zones hébergées).

5.    Sélectionnez la zone hébergée que vous avez créée précédemment.

6.    Choisissez Go to Record Sets (accéder aux jeux d'enregistrements) et vérifiez que des jeux d'enregistrements ont été créés pour la zone hébergée.

Remarque : lorsque vous enregistrez l'instance, Route 53 crée automatiquement un enregistrement avec le nom du service et le nom de domaine.

Si vous utilisez Amazon ECS et la découverte de services Route 53, vous pouvez utiliser l'espace de noms et le nom de service Route 53 pour configurer vos services. Par la suite, Route 53 crée, supprime ou met à jour automatiquement les enregistrements dans votre zone hébergée en fonction de vos paramètres de conteneur Amazon ECS.


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?