

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Tutorial: Envío de un mensaje a una cola de Amazon SQS desde Amazon Virtual Private Cloud
<a name="sqs-sending-messages-from-vpc"></a>

En este tutorial se muestra cómo enviar mensajes a una cola de Amazon SQS a través de una red privada y segura. La red incluye:
+ Una VPC que contiene una instancia de Amazon EC2.
+ Un punto de conexión de VPC de interfaz, que permite a la instancia de Amazon EC2 conectarse a Amazon SQS sin utilizar la Internet pública.

Incluso en una red totalmente privada, puede conectarse a la instancia de Amazon EC2 y enviar mensajes a la cola de Amazon SQS. Para obtener más información, consulte [Puntos de conexión de Amazon Virtual Private Cloud para Amazon SQS](sqs-internetwork-traffic-privacy.md#sqs-vpc-endpoints).

**importante**  
Puede usar Amazon Virtual Private Cloud solo con puntos de conexión HTTPS de Amazon SQS.
Al configurar Amazon SQS para enviar mensajes desde Amazon VPC, debe habilitar el DNS privado y especificar los puntos de conexión en el formato `sqs.{{us-east-2}}.amazonaws.com` o `sqs.{{us-east-2}}.api.aws` para el punto de conexión de doble pila.
Amazon SQS también admite puntos de enlace FIPS mediante el PrivateLink uso del servicio de puntos de enlace. `com.amazonaws.region.sqs-fips` Puede conectarse a puntos de conexión FIPS con el formato `sqs-fips.region.amazonaws.com`.
Al utilizar el punto de conexión de doble pila en Amazon Virtual Private Cloud, las solicitudes se enviarán mediante IPv4 y IPv6.
Los DNS privados no admiten los puntos de enlace heredados, como `queue.amazonaws.com` o `{{us-east-2}}.queue.amazonaws.com`.

## Paso 1: Crear un par de claves de Amazon EC2
<a name="create-ec2-key-pair"></a>

Los *pares de claves* permiten conectarse a una instancia de Amazon EC2. Se componen de una clave pública que cifra la información de inicio de sesión y de una clave privada que la descifra.

1. Inicie sesión en la [consola de Amazon EC2](https://console.aws.amazon.com/ec2/).

1. En el menú de navegación, en **Network & Security (Red y seguridad)**, seleccione **Key Pairs (Pares de claves)**.

1. Seleccione **Create Key Pair**.

1. En el cuadro de diálogo **Create Key Pair (Crear par de claves)**, en **Key pair name (Nombre del par de claves)**, escriba `SQS-VPCE-Tutorial-Key-Pair` y haga clic en **Create (Crear)**.

1. El navegador descarga el archivo de clave privada `SQS-VPCE-Tutorial-Key-Pair.pem` automáticamente. 
**importante**  
Guarde este archivo en un lugar seguro. EC2 no generará un archivo `.pem` para el mismo par de claves por segunda vez.

1. Para permitir que un cliente SSH pueda conectarse a una instancia EC2, configure los permisos del archivo de clave privada para que solo el usuario pueda leer los permisos; por ejemplo:

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

## Paso 2: Crear recursos AWS
<a name="create-aws-resources"></a>

Para configurar la infraestructura necesaria, debe usar una CloudFormation *plantilla*, que es un modelo para crear una *pila* compuesta de AWS recursos, como instancias de Amazon EC2 y colas de Amazon SQS.

La pila de este tutorial incluye los siguientes recursos:
+ Una VPC y los recursos de red asociados, como una subred, un grupo de seguridad, una gateway de Internet y una tabla de ruteo.
+ Una instancia de Amazon EC2 lanzada en la subred de VPC
+ Una cola de Amazon SQS

 

1. Descargue la CloudFormation plantilla nombrada [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)desde. GitHub

1. Inicie sesión en la [consola de CloudFormation](https://console.aws.amazon.com/cloudformation/).

1. Elija **Crear pila**.

1. En la página **Select Template (Seleccionar plantilla)**, seleccione **Upload a template to Amazon S3 (Cargar una plantilla en Amazon S3)**, elija el archivo `SQS-VPCE-SQS-Tutorial-CloudFormation.yaml` y haga clic en **Next (Siguiente)**.

1. En la página **Specify Details (Especificar detalles)**, haga lo siguiente:

   1. En **Nombre de pila**, escriba `SQS-VPCE-Tutorial-Stack`.

   1. Para **KeyName**, elija **SQS-VPCE-Tutorial-Key-Pair**.

   1. Elija **Siguiente**.

1. En la página **Opciones**, seleccione **Siguiente**.

1. En la página de **revisión**, en la sección **Capacidades**, elija **Acepto que AWS CloudFormation ** podría crear recursos de IAM con nombres personalizados. y, a continuación, elija **Crear**.

CloudFormation comienza a crear la pila y muestra el **estado CREATE\_IN\_PROGRESS**. Cuando el proceso se haya completado, CloudFormation mostrará el estado **CREATE\_COMPLETE**.

## Paso 3: confirmar que la instancia EC2 no es de acceso público
<a name="confirm-ec2-instance-is-not-publicly-accessible"></a>

La CloudFormation plantilla lanza una instancia EC2 con un nombre `SQS-VPCE-Tutorial-EC2-Instance` en la VPC. Esta instancia de EC2 no permite el tráfico de salida y no puede enviar mensajes a Amazon SQS. Para comprobarlo, debe conectarse a la instancia, intentar conectarse a un punto de conexión público y tratar de enviar un mensaje a Amazon SQS.

1. Inicie sesión en la [consola de Amazon EC2](https://console.aws.amazon.com/ec2/).

1. En el menú de navegación, en **Instances (Instancias)**, haga clic en **Instances (Instancias)**.

1. Seleccione **SQS-VPCE-**. Tutorial-EC2Instance

1. Copie el nombre de host que aparece en **DNS público**; por ejemplo, **ec2-203-0-113-0.us-west-2.compute.amazonaws.com**.

1. En el directorio que contiene [el par de claves que creó anteriormente](#create-ec2-key-pair), conéctese a la instancia utilizando el comando siguiente; por ejemplo:

   ```
   ssh -i SQS-VPCE-Tutorial-Key-Pair.pem ec2-user@{{ec2-203-0-113-0.us-east-2.compute.amazonaws.com}}
   ```

1. Intente conectarse a un punto de enlace público; por ejemplo:

   ```
   ping amazon.com
   ```

   Tal y como se esperaba, se produce un error en el intento de conexión.

1. Inicie sesión en la [consola de Amazon SQS](https://console.aws.amazon.com/sqs/).

1. **En la lista de colas, seleccione la cola creada por la CloudFormation plantilla, por ejemplo, VPCE-SQS-Tutorial-Stack- -1 IJK. CFQueue ABCDEFGH2**

1. En la tabla de **detalles, copie la URL**, por ejemplo,. **https://sqs.us-east-2.amazonaws.com/123456789012/**

1. En la instancia EC2, intente publicar un mensaje en una cola utilizando el comando siguiente; por ejemplo:

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

   Tal y como se esperaba, se produce un error al enviar el mensaje.
**importante**  
Posteriormente, cuando cree un punto de conexión de VPC para Amazon SQS, el envío se realizará correctamente.

## Paso 4: Crear un punto de conexión de VPC para Amazon SQS
<a name="create-vpc-endpoint-for-sqs"></a>

Para conectar su VPC a Amazon SQS, debe definir un punto de conexión de VPC de interfaz. Una vez agregado el punto de conexión, podrá utilizar la API de Amazon SQS desde la instancia de EC2 en su VPC. Esto le permite enviar mensajes a una cola de la AWS red sin tener que cruzar la Internet pública.

**nota**  
La instancia EC2 sigue sin tener acceso a otros AWS servicios y puntos finales de Internet.

1. Inicie sesión en la [consola de Amazon VPC](https://console.aws.amazon.com/vpc/).

1. En el menú de navegación, seleccione **Endpoints (Puntos de enlace)**.

1. Seleccione **Crear punto de conexión**.

1. En la página **Crear punto de conexión**, en **Nombre del servicio**, elija el nombre del servicio para Amazon SQS.
**nota**  
Los nombres de los servicios varían según la región actual AWS . Por ejemplo, si se encuentra en el este de EE. UU. (Ohio), el nombre del servicio es **com.amazonaws. {{us-east-2}}.sqs.**

1. En **VPC**, seleccione **SQS-VPCE-Tutorial-VPC**.

1. En **Subnets (Subredes)**, seleccione la red cuyo **ID de subred** contiene **SQS-VPCE-Tutorial-Subnet**.

1. En **Security group (Grupo de seguridad)**, haga clic en **Select security groups (Seleccionar grupos de seguridad)** y elija el grupo de seguridad cuyo **nombre de grupo** contiene **SQS VPCE Tutorial Security Group**.

1. Seleccione **Crear punto de conexión**.

   Se crea el punto de enlace de la VPC de interfaz y se muestra su ID; por ejemplo, **vpce-0ab1cdef2ghi3j456k**.

1. Seleccione **Cerrar**. 

   En la consola de Amazon VPC, se abre la página **Puntos de enlace**.

Amazon VPC comienza a crear el punto de conexión y muestra el estado **pendiente**. Cuando el proceso se haya completado, Amazon VPC mostrará el estado **disponible**.

## Paso 5: enviar un mensaje a la cola de Amazon SQS
<a name="sqs-vpc-tutorial-publish"></a>

Ahora que la VPC contiene un punto de conexión de Amazon SQS, puede conectarse a la instancia de EC2 y enviar mensajes a la cola.

1. Vuelva a conectarse a la instancia EC2; por ejemplo:

   ```
   ssh -i SQS-VPCE-Tutorial-Key-Pair.pem ec2-user@{{ec2-203-0-113-0.us-east-2.compute.amazonaws.com}}
   ```

1. Intente publicar de nuevo un mensaje en la cola utilizando el comando siguiente; por ejemplo:

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

   El intento de envío se realiza correctamente y se muestran el MD5 resumen del cuerpo del mensaje y el identificador del mensaje, por ejemplo:

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

Para obtener información sobre cómo recibir y eliminar el mensaje de la cola creada por la CloudFormation plantilla (por ejemplo, **VPCE-SQS-Tutorial-Stack- -1 IJK**), consulte. CFQueue ABCDEFGH2 [Recepción y eliminación de mensajes en Amazon SQS](step-receive-delete-message.md)

Para obtener más información sobre la eliminación de recursos, consulte los siguientes temas:
+ [Eliminación de un punto de conexión de VPC](https://docs.aws.amazon.com/vpc/latest/userguide/delete-vpc-endpoint.html) en la *Guía del usuario de Amazon VPC*
+ [Eliminación de una cola de Amazon SQS](step-delete-queue.md)
+ [Terminar su instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) en la *Guía del usuario de Amazon EC2*
+ [Eliminación de la VPC](https://docs.aws.amazon.com/vpc/latest/userguide/delete-vpc.html) en la *Guía del usuario de Amazon VPC*
+ [Eliminar una pila de la consola](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) *en la Guía del usuario CloudFormation AWS CloudFormation *
+ [Eliminación del par de claves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#delete-key-pair) en la *Guía del usuario de Amazon EC2*