

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Tutorial: Envio de uma mensagem a uma fila do Amazon SQS pela Amazon Virtual Private Cloud
<a name="sqs-sending-messages-from-vpc"></a>

Este tutorial mostra como enviar mensagens para uma fila do Amazon SQS por uma rede privada e segura. A rede inclui:
+ Uma VPC contendo uma instância do Amazon EC2.
+ Uma interface endpoint da VPC, que permite que a instância do Amazon EC2 se conecte ao Amazon SQS sem usar a Internet pública.

Mesmo em uma rede totalmente privada, você pode se conectar à instância do Amazon EC2 e enviar mensagens para a fila do Amazon SQS. Para obter mais informações, consulte [Endpoints da Amazon Virtual Private Cloud para o Amazon SQS](sqs-internetwork-traffic-privacy.md#sqs-vpc-endpoints).

**Importante**  
Você pode usar a Amazon Virtual Private Cloud somente com endpoints HTTPS do Amazon SQS.
Ao configurar o Amazon SQS para enviar mensagens pela Amazon VPC, habilite o DNS privado e especifique endpoints no formato `sqs.{{us-east-2}}.amazonaws.com` ou `sqs.{{us-east-2}}.api.aws` para o endpoint de pilha dupla.
O Amazon SQS também oferece suporte a endpoints FIPS por meio do PrivateLink uso do serviço de endpoint. `com.amazonaws.region.sqs-fips` Você pode se conectar aos endpoints FIPS no formato `sqs-fips.region.amazonaws.com`.
Ao usar o endpoint de pilha dupla na Amazon Virtual Private Cloud, as solicitações serão enviadas usando e. IPv4 IPv6
O DNS privado não oferece suporte a endpoints legados, como `queue.amazonaws.com` ou `{{us-east-2}}.queue.amazonaws.com`.

## Etapa 1: criar um par de chaves do Amazon EC2
<a name="create-ec2-key-pair"></a>

Um *par de chaves* permite que você se conecte a uma instância do Amazon EC2. Esse par consiste em uma chave pública que criptografa suas informações de login e uma chave privada que as descriptografa.

1. Faça login no [console do Amazon EC2](https://console.aws.amazon.com/ec2/).

1. No menu de navegação, em **Network & Security (Rede e segurança)**, selecione **Key Pairs (Pares de chaves)**.

1. Escolha **Criar par de chaves**.

1. Na caixa de diálogo **Create Key Pair (Criar par de chaves)**, para **Key pair name (Nome do par de chaves)**, insira `SQS-VPCE-Tutorial-Key-Pair` e selecione **Create (Criar)**.

1. O navegador faz download do arquivo da chave privada `SQS-VPCE-Tutorial-Key-Pair.pem` automaticamente. 
**Importante**  
Salve esse arquivo em um lugar seguro. O EC2 não gera um segundo arquivo `.pem` para o mesmo par de chaves.

1. Para permitir que um cliente SSH se conecte à sua instância do EC2, defina as permissões do arquivo da chave privada para que somente o seu usuário possa ter permissões de leitura para ele, por exemplo:

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

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

Para configurar a infraestrutura necessária, você deve usar um CloudFormation *modelo, que é um modelo* para criar uma *pilha* composta por AWS recursos, como instâncias do Amazon EC2 e filas do Amazon SQS.

A pilha deste tutorial inclui os seguintes recursos:
+ Uma VPC e os recursos de rede associados, incluindo uma sub-rede, um grupo de segurança, um gateway da Internet e uma tabela de rotas.
+ Uma instância do Amazon EC2 executada na sub-rede da VPC
+ Uma fila do Amazon SQS

 

1. Baixe o CloudFormation modelo com o nome [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. Faça login no [console do CloudFormation](https://console.aws.amazon.com/cloudformation/).

1. Escolha **Create Stack (Criar pilha)**.

1. Na página **Select Template (Selecionar modelo)**, selecione **Upload a template to Amazon S3 (Fazer upload de um modelo no Amazon S3)**, selecione o arquivo `SQS-VPCE-SQS-Tutorial-CloudFormation.yaml` e, então, selecione **Next (Próximo)**.

1. Na página **Especificar detalhes**, faça o seguinte:

   1. Para **Stack name (Nome da pilha)**, insira `SQS-VPCE-Tutorial-Stack`.

   1. Para **KeyName**, escolha **SQS-VPCE-Tutorial-Key-pair**.

   1. Escolha **Próximo**.

1. Na página **Opções**, escolha **Avançar**.

1. Na página de **revisão**, na seção **Capacidades**, escolha **Eu reconheço que AWS CloudFormation pode criar recursos do IAM com nomes personalizados.** e, em seguida, escolha **Criar**.

CloudFormation começa a criar a pilha e exibe o status **CREATE\_IN\_PROGRESS**. Quando o processo é concluído, o CloudFormation exibe o status **CREATE\_COMPLETE**.

## Etapa 3: confirmar que sua instância do EC2 não é acessível publicamente
<a name="confirm-ec2-instance-is-not-publicly-accessible"></a>

Seu CloudFormation modelo inicia uma instância do EC2 nomeada `SQS-VPCE-Tutorial-EC2-Instance` em sua VPC. Essa instância do EC2 não permite tráfego de saída e não é capaz de enviar mensagens para o Amazon SQS. Para verificar isso, você deve se conectar à instância, tentar se conectar a um endpoint público e, então, tentar enviar uma mensagem para o Amazon SQS.

1. Faça login no [console do Amazon EC2](https://console.aws.amazon.com/ec2/).

1. No menu de navegação, em **Instances (Instâncias)**, selecione **Instances (Instâncias)**.

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

1. Copie o nome de host em **DNS público**, por exemplo, **ec2-203-0-113-0.us-west-2.compute.amazonaws.com**.

1. A partir do diretório que contém [o par de chaves criado anteriormente](#create-ec2-key-pair), conecte-se à instância usando o comando a seguir, por exemplo:

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

1. Tente conectar-se a qualquer endpoint público, por exemplo:

   ```
   ping amazon.com
   ```

   A tentativa de conexão falha, conforme esperado.

1. Faça login no [console do Amazon SQS](https://console.aws.amazon.com/sqs/).

1. Na lista de filas, selecione a fila criada pelo seu CloudFormation modelo, por exemplo, **VPCE-SQS-Tutorial-Stack** - -1 IJK. CFQueue ABCDEFGH2

1. Na tabela **Detalhes**, copie o URL, por exemplo, **https://sqs.us-east-2.amazonaws.com/123456789012/**.

1. A partir de sua instância do EC2, tente publicar uma mensagem na fila usando o comando a seguir, por exemplo:

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

   A tentativa de envio falha, conforme esperado.
**Importante**  
Posteriormente, ao criar um endpoint da VPC para o Amazon SQS, sua tentativa de envio será bem-sucedida.

## Etapa 4: criar um endpoint da Amazon VPC para o Amazon SQS
<a name="create-vpc-endpoint-for-sqs"></a>

Para conectar sua VPC ao Amazon SQS, você precisa definir uma interface de endpoint da VPC. Depois de adicionar o endpoint, você poderá usar a API do Amazon SQS a partir da instância do EC2 em sua VPC. Isso permite que você envie mensagens para uma fila na AWS rede sem cruzar a Internet pública.

**nota**  
A instância do EC2 ainda não tem acesso a outros AWS serviços e endpoints na Internet.

1. Faça login no [console da Amazon VPC](https://console.aws.amazon.com/vpc/).

1. No menu de navegação, selecione **Endpoints**.

1. Escolha **Criar endpoint**.

1. Na página **Create Endpoint** (Criar endpoint), em **Service Name** (Nome do serviço), selecione o nome do serviço para o Amazon SQS.
**nota**  
Os nomes dos serviços variam de acordo com a AWS região atual. Por exemplo, se você estiver no Leste dos EUA (Ohio), o nome do serviço é **com.amazonaws. {{us-east-2}}.sqs**.

1. Para **VPC**, selecione **SQS-VPCE-Tutorial-VPC**.

1. Para **Subnets (Sub-redes)**, selecione a sub-rede cujo **Subnet ID (ID da sub-rede)** contenha **SQS-VPCE-Tutorial-Subnet**.

1. Para **Security group (Grupo de segurança)**, selecione **Select security groups (Selecionar grupos de segurança)** e selecione o grupo de segurança cujo **Group Name (Nome do grupo)** contenha **SQS VPCE Tutorial Security Group**.

1. Escolha **Criar endpoint**.

   O VPC endpoint de interface é criado e o ID dele é exibido, por exemplo, **vpce-0ab1cdef2ghi3j456k**.

1. Escolha **Fechar**. 

   O console da Amazon VPC abre a página **Endpoints**.

A Amazon VPC começa a criar o endpoint e exibe o status **pending** (pendente). Quando o processo é concluído, a Amazon VPC exibe o status **available** (disponível).

## Etapa 5: enviar uma mensagem para sua fila do Amazon SQS
<a name="sqs-vpc-tutorial-publish"></a>

Agora que a VPC inclui um endpoint para o Amazon SQS, você pode se conectar à instância do EC2 e enviar mensagens para a fila.

1. Reconecte-se à instância do EC2, por exemplo:

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

1. Tente publicar uma mensagem na fila novamente usando o comando a seguir, por exemplo:

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

   A tentativa de envio é bem-sucedida e o MD5 resumo do corpo da mensagem e o ID da mensagem são exibidos, por exemplo:

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

Para obter informações sobre como receber e excluir a mensagem da fila criada pelo seu CloudFormation modelo (por exemplo, **VPCE-SQS-Tutorial-Stack** - -1 IJK), consulte. CFQueue ABCDEFGH2 [Receber e excluir uma mensagem no Amazon SQS](step-receive-delete-message.md)

Para obter informações sobre como excluir seus recursos, consulte o seguinte:
+ [Excluir um endpoint da VPC](https://docs.aws.amazon.com/vpc/latest/userguide/delete-vpc-endpoint.html) no *Guia do usuário da Amazon VPC*
+ [Excluir uma fila do Amazon SQS](step-delete-queue.md)
+ [Encerramento de instâncias do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) no *Guia do usuário do Amazon EC2*
+ [Excluir a VPC](https://docs.aws.amazon.com/vpc/latest/userguide/delete-vpc.html) no *Guia do usuário da Amazon VPC*
+ [Excluindo uma pilha no CloudFormation console no Guia](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) *do usuário AWS CloudFormation *
+ [Excluir o par de chaves](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#delete-key-pair) no *Guia do usuário do Amazon EC2*.