Tutorial: Envio de uma mensagem a uma fila do Amazon SQS pela Amazon Virtual Private Cloud - Amazon Simple Queue Service

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

Neste tutorial, você aprenderá como enviar mensagens para uma fila do Amazon SQS por uma rede privada e segura. Essa rede consiste em uma VPC que contém uma instância do Amazon EC2. A instância se conecta ao Amazon SQS por meio de uma interface de endpoint da VPC, permitindo que você se conecte à instância do Amazon EC2 e envie mensagens para a fila do Amazon SQS mesmo que a rede esteja desconectada da Internet pública. Para ter mais informações, consulte Endpoints da Amazon Virtual Private Cloud para o Amazon SQS.

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.

  • 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

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.

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

  3. Escolha Criar par de chaves.

  4. 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).

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

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

Para configurar a infraestrutura necessária, você deve usar um AWS 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 AWS CloudFormation modelo com o nome SQS-VPCE-Tutorial-CloudFormation.yamldeGitHub.

  2. Faça login no console do AWS CloudFormation.

  3. Escolha Create Stack (Criar pilha).

  4. 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).

  5. Na página Specify Details (Especificar detalhes), faça o seguinte:

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

    2. Para KeyName, escolha SQS-VPCE-Tutorial-Key-pair.

    3. Escolha Próximo.

  6. Na página Options (Opções), escolha Next (Avançar).

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

AWS CloudFormation começa a criar a pilha e exibe o status CREATE_IN_PROGRESS. Quando o processo é concluído, o AWS CloudFormation exibe o status CREATE_COMPLETE.

Etapa 3: confirmar que sua instância do EC2 não é acessível publicamente

Seu AWS 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.

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

  3. Selecione SQS-VPCE-. Tutorial-EC2Instance

  4. Copie o nome de host em Public DNS (IPv4) (DNS público (IPv4)), por exemplo, ec2-203-0-113-0.us-west-2.compute.amazonaws.com.

  5. A partir do diretório que contém o par de chaves criado anteriormente, 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
  6. Tente conectar-se a qualquer endpoint público, por exemplo:

    ping amazon.com

    A tentativa de conexão falha, conforme esperado.

  7. Faça login no console do Amazon SQS.

  8. Na lista de filas, selecione a fila criada pelo seu AWS CloudFormation modelo, por exemplo, VPCE-SQS-Tutorial-Stack-CFQueue-1abcdefgh2ijk.

  9. Na tabela Details (Detalhes), copie o URL, por exemplo, https://sqs.us-east-2.amazonaws.com/123456789012/.

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

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 EC2 ainda não tem acesso a outros AWS serviços e endpoints na Internet.

  1. Faça login no console da Amazon VPC.

  2. No menu de navegação, selecione Endpoints.

  3. Escolha Criar Endpoint.

  4. 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 será com.amazonaws.us-east-2.sqs.

  5. Para VPC, selecione SQS-VPCE-Tutorial-VPC.

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

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

  8. Escolha Criar endpoint.

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

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

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
  2. 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 resumo MD5 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 AWS CloudFormation modelo (por exemplo, VPCE-SQS-Tutorial-Stack-CFQueue-1abcdefgh2ijk), consulte. Recebendo e excluindo uma mensagem no Amazon SQS

Para obter informações sobre como excluir seus recursos, consulte o seguinte: