

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
<a name="sqs-sending-messages-from-vpc"></a>

Ce didacticiel explique comment envoyer des messages à une file d'attente Amazon SQS via un réseau privé sécurisé. Le réseau inclut :
+ VPC contenant une instance Amazon EC2.
+ Un point de terminaison VPC d'interface, qui permet à l'instance Amazon EC2 de se connecter à Amazon SQS sans utiliser l'Internet public.

Même dans un réseau entièrement privé, vous pouvez vous connecter à l'instance Amazon EC2 et envoyer des messages à la file d'attente Amazon SQS. Pour de plus amples informations, veuillez consulter [Points de terminaison Amazon Virtual Private Cloud pour Amazon SQS](sqs-internetwork-traffic-privacy.md#sqs-vpc-endpoints).

**Important**  
Vous pouvez utiliser Amazon Virtual Private Cloud uniquement avec des points de terminaison HTTPS Amazon SQS.
Lorsque vous configurez Amazon SQS pour envoyer des messages depuis Amazon VPC, vous devez activer le DNS privé et spécifier les points de terminaison au format `sqs.{{us-east-2}}.amazonaws.com` ou `sqs.{{us-east-2}}.api.aws` pour le point de terminaison à double pile.
Amazon SQS prend également en charge les points de terminaison FIPS PrivateLink via le service de point de terminaison. `com.amazonaws.region.sqs-fips` Vous pouvez vous connecter aux points de terminaison FIPS au format suivant. `sqs-fips.region.amazonaws.com`
Lorsque vous utilisez le point de terminaison à double pile dans Amazon Virtual Private Cloud, les demandes seront envoyées à l'aide de IPv4 et IPv6.
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
<a name="create-ec2-key-pair"></a>

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](https://console.aws.amazon.com/ec2/).

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

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

1. 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**.

1. 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.

1. 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éation de AWS ressources
<a name="create-aws-resources"></a>

Pour configurer l'infrastructure nécessaire, vous devez utiliser un CloudFormation *modèle, qui est un modèle* pour créer une *pile* composée de AWS ressources, 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 CloudFormation modèle nommé [https://github.com/aws-samples/amazon-sqs-samples/blob/master/templates/SQS-VPCE-Tutorial-CloudFormation.yaml](https://github.com/aws-samples/amazon-sqs-samples/blob/master/templates/SQS-VPCE-Tutorial-CloudFormation.yaml)deGitHub.

1. Connectez-vous à la [console CloudFormation](https://console.aws.amazon.com/cloudformation/).

1. Sélectionnez **Créer une pile**.

1. 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**.

1. 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`.

   1. Pour **KeyName**, choisissez **SQS-VPCE-Tutorial-Key-Pair**.

   1. Choisissez **Suivant**.

1. Dans la page **Options**, choisissez **Suivant**.

1. 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**.

CloudFormation commence à créer la pile et affiche le statut **CREATE\_IN\_PROGRESS**. Lorsque le processus est terminé, CloudFormation affiche l'état **CREATE\_COMPLETE**.

## Étape 3 : Confirmer que votre instance EC2 n'est pas accessible publiquement
<a name="confirm-ec2-instance-is-not-publicly-accessible"></a>

Votre CloudFormation modèle 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](https://console.aws.amazon.com/ec2/).

1. Dans le menu de navigation, sous **Instances**, choisissez **Instances**.

1. Sélectionnez **SQS-VPCE-**. Tutorial-EC2Instance

1. Copiez le nom d'hôte sous **DNS public**, par exemple **ec2-203-0-113-0.us-west-2.compute.amazonaws.com**.

1. À partir du répertoire contenant [la paire de clés que vous venez de créer](#create-ec2-key-pair), 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}}
   ```

1. Essayez de vous connecter à n'importe quel point de terminaison public. Par exemple :

   ```
   ping amazon.com
   ```

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

1. Connectez-vous à la [console Amazon SQS](https://console.aws.amazon.com/sqs/).

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

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

1. À 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
<a name="create-vpc-endpoint-for-sqs"></a>

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. Cela vous permet d'envoyer des messages à une file d'attente du AWS réseau sans passer par l'Internet public.

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

1. Connectez-vous à la [console Amazon VPC](https://console.aws.amazon.com/vpc/).

1. Dans le menu de navigation, choisissez **Points de terminaison**.

1. Choisissez **Créer un point de terminaison**.

1. Sur la page **Créer un point de terminaison**, pour **Nom du service**, choisissez le nom de service pour Amazon SQS.
**Note**  
Les noms des services varient en fonction de la AWS région actuelle. Par exemple, si vous vous trouvez dans l'est des États-Unis (Ohio), le nom du service est **com.amazonaws. {{us-east-2}}.sqs**.

1. Pour **VPC**, choisissez **SQS-VPCE-Tutorial-VPC**.

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

1. 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**.

1. 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**.

1. 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
<a name="sqs-vpc-tutorial-publish"></a>

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}}
   ```

1. 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 réussit et le MD5 résumé du corps du message ainsi que l'ID du message sont affichés, 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 CloudFormation modèle (par exemple, **VPCE-SQS-Tutorial-Stack--1 CFQueue** IJK), consultez. ABCDEFGH2 [Réception et suppression d'un message dans Amazon SQS](step-receive-delete-message.md)

Pour plus d'informations sur la suppression de vos ressources, consultez ce qui suit :
+ [Suppression du point de terminaison d'un VPC](https://docs.aws.amazon.com/vpc/latest/userguide/delete-vpc-endpoint.html) dans le *Guide de l'utilisateur Amazon VPC*
+ [Supprimer une file d'attente Amazon SQS](step-delete-queue.md)
+ [Mettez fin à votre instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) dans le guide de l'*utilisateur Amazon EC2*
+ [Suppression de votre VPC](https://docs.aws.amazon.com/vpc/latest/userguide/delete-vpc.html) dans le *Guide de l'utilisateur Amazon VPC*
+ [Supprimer une pile sur la CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) dans le *guide de AWS CloudFormation l'utilisateur*
+ [Suppression de votre paire de clés](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#delete-key-pair) dans le guide de l'*utilisateur Amazon EC2*