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
Tópicos
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.
-
Faça login no console do Amazon EC2
. -
No menu de navegação, em Network & Security (Rede e segurança), selecione Key Pairs (Pares de chaves).
-
Escolha Criar par de chaves.
-
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). -
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. -
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
-
Baixe o AWS CloudFormation modelo com o nome
SQS-VPCE-Tutorial-CloudFormation.yaml
deGitHub. -
Faça login no console do AWS CloudFormation
. -
Escolha Create Stack (Criar pilha).
-
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). -
Na página Specify Details (Especificar detalhes), faça o seguinte:
-
Para Stack name (Nome da pilha), insira
SQS-VPCE-Tutorial-Stack
. -
Para KeyName, escolha SQS-VPCE-Tutorial-Key-pair.
-
Escolha Próximo.
-
-
Na página Options (Opções), escolha Next (Avançar).
-
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.
-
Faça login no console do Amazon EC2
. -
No menu de navegação, em Instances (Instâncias), selecione Instances (Instâncias).
-
Selecione SQS-VPCE-. Tutorial-EC2Instance
-
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.
-
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
-
Tente conectar-se a qualquer endpoint público, por exemplo:
ping amazon.com
A tentativa de conexão falha, conforme esperado.
-
Faça login no console do Amazon SQS
. -
Na lista de filas, selecione a fila criada pelo seu AWS CloudFormation modelo, por exemplo, VPCE-SQS-Tutorial-Stack-CFQueue-1abcdefgh2ijk.
-
Na tabela Details (Detalhes), copie o URL, por exemplo, https://sqs.us-east-2.amazonaws.com/123456789012/.
-
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-urlhttps://sqs.us-east-2.amazonaws.com/
--queue-urlhttps://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.
-
Faça login no console da Amazon VPC
. -
No menu de navegação, selecione Endpoints.
-
Escolha Criar Endpoint.
-
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. -
Para VPC, selecione SQS-VPCE-Tutorial-VPC.
-
Para Subnets (Sub-redes), selecione a sub-rede cujo Subnet ID (ID da sub-rede) contenha SQS-VPCE-Tutorial-Subnet.
-
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.
-
Escolha Criar endpoint.
O VPC endpoint de interface é criado e o ID dele é exibido, por exemplo, vpce-0ab1cdef2ghi3j456k.
-
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.
-
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
-
Tente publicar uma mensagem na fila novamente usando o comando a seguir, por exemplo:
aws sqs send-message --region
us-east-2
--endpoint-urlhttps://sqs.us-east-2.amazonaws.com/
--queue-urlhttps://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:
-
Excluir um endpoint da VPC no Guia do usuário da Amazon VPC
-
Encerre sua instância no Guia do usuário do Amazon EC2
-
Excluir a VPC no Guia do usuário da Amazon VPC
-
Excluindo uma pilha no AWS CloudFormation console no Guia do usuário AWS CloudFormation
-
Excluindo seu par de chaves no Guia do usuário do Amazon EC2