Didacticiel : envoi d'un message à une file d'attente Amazon SQS à partir d'Amazon Virtual Private Cloud - Amazon Simple Queue Service

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.

Didacticiel : envoi d'un message à une file d'attente Amazon SQS à partir d'Amazon Virtual Private Cloud

Dans ce didacticiel, vous apprenez à envoyer des messages à une file d'attente Amazon SQS sur un réseau privé et sécurisé. Ce réseau est composé d'un VPC qui contient une instance Amazon EC2. L'instance se connecte à Amazon SQS via le point de terminaison d'un VPC d'interface, ce qui vous permet de vous connecter à l'instance Amazon EC2 et d'envoyer des messages à la file d'attente Amazon SQS, même si le réseau est déconnecté de l'Internet public. Pour plus d’informations, consultez Points de terminaison Amazon Virtual Private Cloud pour Amazon SQS.

Important
  • Vous pouvez utiliser Amazon Virtual Private Cloud uniquement avec des points de terminaison HTTPS Amazon SQS.

  • Lorsque vous configurez Amazon SQS pour que les messages soient envoyés depuis Amazon VPC, vous devez activer le DNS privé et spécifier les points de terminaison au format sqs.us-east-2.amazonaws.com.

  • Le DNS privé ne prend pas en charge les points de terminaison existants, tels que queue.amazonaws.com ou us-east-2.queue.amazonaws.com.

Étape 1 : Créer une paire de clés Amazon EC2

Une paire de clés vous permet de vous connecter à une instance Amazon EC2. Elle se compose d'une clé publique qui chiffre vos informations de connexion, et d'une clé privée qui déchiffre ces informations.

  1. Connectez-vous à la console Amazon EC2.

  2. Dans le menu de navigation, sous Réseau et sécurité, choisissez Paires de clés.

  3. Choisissez Create Key Pair (Créer une paire de clés).

  4. Dans la boîte de dialogue Créer une paire de clés, pour Nom de la paire de clés, entrez SQS-VPCE-Tutorial-Key-Pair, puis choisissez Créer.

  5. Votre navigateur télécharge automatiquement le fichier de clé privée SQS-VPCE-Tutorial-Key-Pair.pem.

    Important

    Enregistrez ce fichier dans un emplacement sûr. EC2 ne génère pas de fichier .pem pour la même paire de clés une deuxième fois.

  6. Pour autoriser un client SSH à se connecter à votre instance EC2, définissez les autorisations de votre fichier de clé privée de sorte que seul votre utilisateur soit autorisé à lire le fichier. Par exemple :

    chmod 400 SQS-VPCE-Tutorial-Key-Pair.pem

Étape 2 : Créer des ressources AWS

Pour configurer l'infrastructure nécessaire, vous devez utiliser un modèle AWS CloudFormation, qui est un plan pour créer une pile composée de ressources AWS, telles que des instances Amazon EC2 et des files d'attente Amazon SQS.

La pile pour ce didacticiel inclut les ressources suivantes :

  • Un VPC et les ressources de mise en réseau associées, notamment un sous-réseau, un groupe de sécurité, une passerelle Internet et une table de routage

  • Une instance Amazon EC2 lancée dans le sous-réseau VPC

  • Une file d'attente Amazon SQS

  1. Téléchargez le AWS CloudFormation modèle nommé SQS-VPCE-Tutorial-CloudFormation.yamlà partir deGitHub.

  2. Connectez-vous à la console AWS CloudFormation.

  3. Sélectionnez Créer une pile.

  4. Sur la page Sélectionner un modèle, choisissez Télécharger un modèle sur Amazon S3, sélectionnez le fichier SQS-VPCE-SQS-Tutorial-CloudFormation.yaml, puis choisissez Suivant.

  5. Sur la page Spécification de détails de base de données, procédez comme suit :

    1. Dans le champ Nom de la pile, saisissez SQS-VPCE-Tutorial-Stack.

    2. Pour KeyName, choisissez SQS-VPCE-Tutorial-Key-Pair.

    3. Choisissez Suivant.

  6. Dans la page Options, choisissez Suivant.

  7. Sur la page de révision, dans la section Fonctionnalités, choisissez Je reconnais que cela AWS CloudFormation pourrait créer des ressources IAM avec des noms personnalisés. , puis choisissez Create.

AWS CloudFormation commence à créer la pile et affiche le statut CREATE_IN_PROGRESS. Lorsque le processus est terminé, AWS CloudFormation affiche l'état CREATE_COMPLETE.

Étape 3 : Confirmer que votre instance EC2 n'est pas accessible publiquement

Votre modèle AWS CloudFormation lance une instance EC2 nommée SQS-VPCE-Tutorial-EC2-Instance dans votre VPC. Cette instance EC2 n'autorise pas le trafic sortant et n'est pas capable d'envoyer des messages à Amazon SQS. Pour le vérifier, vous devez vous connecter à l'instance, essayer de vous connecter à un point de terminaison public, puis essayer d'envoyer un message à Amazon SQS.

  1. Connectez-vous à la console Amazon EC2.

  2. Dans le menu de navigation, sous Instances, choisissez Instances.

  3. Sélectionnez SQS-VPCE-Tutorial-EC2Instance.

  4. Copiez le nom d'hôte sous DNS public (IPv4). Par exemple, ec2-203-0-113-0.us-west-2.compute.amazonaws.com.

  5. À partir du répertoire contenant la paire de clés que vous venez de créer, connectez-vous à l'instance à l'aide de la commande suivante. Par exemple :

    ssh -i SQS-VPCE-Tutorial-Key-Pair.pem ec2-user@ec2-203-0-113-0.us-east-2.compute.amazonaws.com
  6. Essayez de vous connecter à n'importe quel point de terminaison public. Par exemple :

    ping amazon.com

    La tentative de connexion échoue, comme prévu.

  7. Connectez-vous à la console Amazon SQS.

  8. Dans la liste des files d'attente, sélectionnez la file d'attente créée par votre modèle AWS CloudFormation. Par exemple, VPCE-SQS-Tutorial-Stack-CFQueue-1ABCDEFGH2IJK.

  9. Dans le tableau Détails, copiez l'URL. Par exemple, https://sqs.us-east-2.amazonaws.com/123456789012/.

  10. À partir de votre instance EC2, essayez de publier un message dans la file d'attente à l'aide de la commande suivante. Par exemple :

    aws sqs send-message --region us-east-2 --endpoint-url https://sqs.us-east-2.amazonaws.com/ --queue-url https://sqs.us-east-2.amazonaws.com/123456789012/ --message-body "Hello from Amazon SQS."

    La tentative d'envoi échoue, comme prévu.

    Important

    Plus tard, lorsque vous créerez le point de terminaison d'un VPC pour Amazon SQS, votre tentative d'envoi réussira.

Étape 4 : Création du point de terminaison d'un VPC Amazon pour Amazon SQS

Pour connecter votre VPC à Amazon SQS, vous devez définir le point de terminaison d'un VPC d'interface. Après avoir ajouté le point de terminaison, vous pouvez utiliser l'API Amazon SQS à partir de l'instance EC2 dans votre VPC. Vous pouvez ainsi envoyer des messages à une file d'attente dans le réseau AWS sans passer par l'Internet public.

Note

L'instance EC2 n'a toujours pas accès à d'autres services AWS et à d'autres points de terminaison sur Internet.

  1. Connectez-vous à la console Amazon VPC.

  2. Dans le menu de navigation, choisissez Points de terminaison.

  3. Choisissez Créer un point de terminaison.

  4. Sur la page Créer un point de terminaison, pour Nom du service, choisissez le nom de service pour Amazon SQS.

    Note

    Les noms de service varient en fonction de la région AWS actuelle. Par exemple, si vous vous trouvez dans la région USA Est (Ohio), le nom du service est com.amazonaws.us-east-2.sqs.

  5. Pour VPC, choisissez SQS-VPCE-Tutorial-VPC.

  6. Pour Sous-réseaux, choisissez le sous-réseau dont l'ID de sous-réseau contient SQS-VPCE-Tutorial-Subnet.

  7. Pour Groupe de sécurité, choisissez Select security groups (Sélectionner des groupes de sécurité), puis choisissez le groupe de sécurité dont le Nom du groupe contient SQS VPCE Tutorial Security Group.

  8. Choisissez Créer un point de terminaison.

    Le point de terminaison de VPC d'interface est créé et son ID s'affiche. Par exemple, vpce-0ab1cdef2ghi3j456k.

  9. Choisissez Fermer.

    La console Amazon VPC ouvre la page Points de terminaison.

Amazon VPC commence à créer le point de terminaison et affiche le statut en suspens. Lorsque le processus est terminé, Amazon VPC affiche le statut disponible.

Étape 5 : Envoyer un message à votre file d'attente Amazon SQS

Maintenant que votre VPC inclut un point de terminaison pour Amazon SQS, vous pouvez vous connecter à votre instance EC2 et envoyer des messages à votre file d'attente.

  1. Reconnectez-vous à votre instance EC2. Par exemple :

    ssh -i SQS-VPCE-Tutorial-Key-Pair.pem ec2-user@ec2-203-0-113-0.us-east-2.compute.amazonaws.com
  2. Essayez de publier à nouveau un message dans la file d'attente à l'aide de la commande suivante. Par exemple :

    aws sqs send-message --region us-east-2 --endpoint-url https://sqs.us-east-2.amazonaws.com/ --queue-url https://sqs.us-east-2.amazonaws.com/123456789012/ --message-body "Hello from Amazon SQS."

    La tentative d'envoi aboutit et la valeur de hachage MD5 du corps de message et l'ID de message s'affichent. Par exemple :

    { "MD5OfMessageBody": "a1bcd2ef3g45hi678j90klmn12p34qr5", "MessageId": "12345a67-8901-2345-bc67-d890123e45fg" }

Pour plus d'informations sur la réception et la suppression du message de la file d'attente créée par votre modèle AWS CloudFormation (par exemple, VPCE-SQS-Tutorial-Stack-CFQueue-1ABCDEFGH2IJK), consultez Recevoir et supprimer un message (console).

Pour plus d'informations sur la suppression de vos ressources, consultez ce qui suit :