Tutorial: Invio di un messaggio a una coda Amazon SQS da Amazon Virtual Private Cloud - Amazon Simple Queue Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: Invio di un messaggio a una coda Amazon SQS da Amazon Virtual Private Cloud

In questo tutorial viene illustrato come inviare messaggi a una coda Amazon SQS utilizzando una rete privata sicura. Questa rete è costituita da un VPC che contiene un'istanza Amazon EC2. L'istanza si connette a Amazon SQS tramite un endpoint VPC dell'interfaccia, consentendoti di effettuare la connessione all'istanza Amazon EC2 e di inviare messaggi alla coda Amazon SQS anche senza connessione alla rete Internet pubblica. Per ulteriori informazioni, consulta Endpoint Amazon Virtual Private Cloud per Amazon SQS.

Importante
  • Puoi utilizzare Amazon Virtual Private Cloud solo con endpoint Amazon SQS HTTPS.

  • Quando configuri Amazon SQS per inviare messaggi da Amazon VPC, devi abilitare il DNS privato e specificare gli endpoint nel formato sqs.us-east-2.amazonaws.com.

  • Il DNS privato non supporta endpoint precedenti come queue.amazonaws.com o us-east-2.queue.amazonaws.com.

Fase 1: Creazione di una coppia di chiavi di Amazon EC2

Una coppia di chiavi consente di effettuare la connessione a un'istanza Amazon EC2. È costituita da una chiave pubblica per la crittografia delle informazioni di accesso e una chiave privata per decrittografare tali informazioni.

  1. Accedi alla console Amazon EC2.

  2. Nel menu di navigazione, in Network & Security (Rete e sicurezza), scegliere Key Pairs (Coppie di chiavi).

  3. Scegli Crea coppia di chiavi.

  4. Nella finestra di dialogo Create Key Pair (Crea coppia di chiavi), per Key pair name (Nome coppia di chiavi), immettere SQS-VPCE-Tutorial-Key-Pair, quindi scegliere Create (Crea).

  5. Il browser scarica automaticamente il file della chiave privata SQS-VPCE-Tutorial-Key-Pair.pem.

    Importante

    Salvare il file in un percorso sicuro. EC2 non genera un secondo file .pem per la stessa coppia di chiavi.

  6. Per consentire a un client SSH di connettersi all'istanza EC2, impostare le autorizzazioni per il file della chiave privata in modo che solo l'utente specificato abbia le relative autorizzazioni in lettura. Ad esempio:

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

Fase 2: Creare risorse AWS

Per configurare l'infrastruttura necessaria, devi utilizzare un AWS CloudFormation modello, che è un modello per creare uno stack composto da AWS risorse, come istanze Amazon EC2 e code Amazon SQS.

Lo stack per questo tutorial include le risorse seguenti:

  • Un VPC e le risorse di rete associate, tra cui una sottorete, un gruppo di sicurezza, un gateway Internet e una tabella di routing

  • Un'istanza Amazon EC2 avviata nella sottorete VPC

  • Una coda Amazon SQS

  1. Scarica il modello denominato da. AWS CloudFormation SQS-VPCE-Tutorial-CloudFormation.yamlGitHub

  2. Accedere alla console AWS CloudFormation.

  3. Scegli Create Stack (Crea stack).

  4. Nella pagina Select Template (Seleziona modello), scegliere Upload a template to Amazon S3 (Carica un modello in Amazon S3), selezionare il file SQS-VPCE-SQS-Tutorial-CloudFormation.yaml, quindi scegliere Next (Successivo).

  5. Nella pagina Specify Details (Specifica dettagli), procedi come segue:

    1. In Nome stack, immetti SQS-VPCE-Tutorial-Stack.

    2. Per KeyName, scegliete SQS-VPCE-Tutorial-Key-Pair.

    3. Seleziona Avanti.

  6. Nella pagina Opzioni, scegli Avanti.

  7. Nella pagina Revisione, nella sezione Funzionalità, scegli Riconosco che potrebbe creare risorse IAM con nomi personalizzati. AWS CloudFormation , quindi scegli Crea.

AWS CloudFormation inizia a creare lo stack e visualizza lo stato CREATE_IN_PROGRESS. Al termine del processo, AWS CloudFormation mostra lo stato CREATE_COMPLETE.

Fase 3: Verifica del fatto che l'istanza EC2 non è accessibile pubblicamente

Il AWS CloudFormation modello avvia un'istanza EC2 denominata SQS-VPCE-Tutorial-EC2-Instance nel tuo VPC. Tale istanza EC2 non consente il traffico in uscita e non è in grado di inviare messaggi a Amazon SQS. Per verificare ciò, devi connetterti all'istanza, provare a effettuare una connessione a un endpoint pubblico e tentare di inviare un messaggio a Amazon SQS.

  1. Accedi alla console Amazon EC2.

  2. Nel menu di navigazione, in Istanze, scegli Istanze.

  3. Seleziona SQS-VPCE-. Tutorial-EC2Instance

  4. Copiare il nome host visualizzato in Public DNS (IPv4) (DNS pubblico (IPv4)), ad esempio ec2-203-0-113-0.us-west-2.compute.amazonaws.com.

  5. Dalla directory contenente la coppia di chiavi creata in precedenza, effettuare la connessione all'istanza con il seguente comando. Ad esempio:

    ssh -i SQS-VPCE-Tutorial-Key-Pair.pem ec2-user@ec2-203-0-113-0.us-east-2.compute.amazonaws.com
  6. Provare a effettuare la connessione a un qualsiasi endpoint pubblico. Ad esempio:

    ping amazon.com

    Il tentativo di connessione avrà esito negativo, come previsto.

  7. Accedere alla console Amazon SQS.

  8. Dall'elenco delle code, seleziona la coda creata dal AWS CloudFormation modello, ad esempio VPCE-SQS-Tutorial-Stack-CFQueue-1abcdefgh2ijk.

  9. Nella tabella Dettagli, copiare l'URL, ad esempio, https://sqs.us-east-2.amazonaws.com/123456789012/.

  10. Dall'istanza EC2, provare a pubblicare un messaggio nella coda utilizzando il seguente comando. Ad esempio:

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

    Il tentativo di invio avrà esito negativo, come previsto.

    Importante

    Successivamente, una volta creato un endpoint VPC per Aamzon SQS, il tentativo di invio andrà a buon fine.

Fase 4: Creazione di un endpoint Amazon VPC per Amazon SQS

Per collegare il tuo VPC a Amazon SQS, definisci un endpoint VPC dell'interfaccia. Dopo avere aggiunto l'endpoint, sarà possibile utilizzare l'API Amazon SQS dall'istanza EC2 nel VPC. Ciò consente di inviare messaggi a una coda all'interno della AWS rete senza attraversare la rete Internet pubblica.

Nota

L'istanza EC2 non ha ancora accesso ad altri AWS servizi ed endpoint su Internet.

  1. Accedere alla console Amazon VPC.

  2. Nel menu di navigazione, scegliere Endpoints (Endpoint).

  3. Scegliere Create Endpoint (Crea endpoint).

  4. Nella pagina Crea endpoint, per Nome servizio, scegliere il nome del servizio per Amazon SQS.

    Nota

    I nomi dei servizi variano in base alla regione corrente AWS . Ad esempio, negli Stati Uniti orientali (Ohio), il nome del srevizio è com.amazonaws.us-east-2.sqs.

  5. Per VPC, scegliere SQS-VPCE-Tutorial-VPC.

  6. Per Subnets (Sottoreti), scegliere la sottorete il cui Subnet ID (ID sottorete) include SQS-VPCE-Tutorial-Subnet.

  7. Per Security group (Gruppo di sicurezza), scegliere Select security groups (Seleziona gruppi di sicurezza), quindi scegliere il gruppo di sicurezza il cui Group Name (Nome gruppo) include SQS VPCE Tutorial Security Group (Gruppo di sicurezza tutorial SQS VPCE).

  8. Seleziona Crea endpoint.

    Viene creato l'endpoint VPC e ne viene visualizzato il relativo ID. Ad esempio, vpce-0ab1cdef2ghi3j456k.

  9. Scegli Chiudi.

    La console Amazon VPC apre la pagina Endpoints.

Amazon VPC inizia a creare l'endpoint e visualizza lo stato in attesa. Al termine del processo, Amazon VPC visualizza lo stato disponibile.

Fase 5: Invio di un messaggio alla coda Amazon SQS

Il VPC include un endpoint per Amazon SQS. Puoi connetterti all'istanza EC2 e inviare messaggi alla coda.

  1. Effettuare nuovamente la connessione all'istanza EC2. Ad esempio:

    ssh -i SQS-VPCE-Tutorial-Key-Pair.pem ec2-user@ec2-203-0-113-0.us-east-2.compute.amazonaws.com
  2. Provare a pubblicare nuovamente un messaggio nella coda utilizzando il seguente comando. Ad esempio:

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

    Il tentativo di invio andrà a buon fine e verranno visualizzati il digest MD5 del corpo del messaggio e l'ID messaggio.

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

Per informazioni sulla ricezione e l'eliminazione del messaggio dalla coda creata dal AWS CloudFormation modello (ad esempio, VPCE-sqs-tutorial-stack-cfqueue-1abcdefgh2ijk), consulta. Ricezione ed eliminazione di un messaggio in Amazon SQS

Per informazioni sull'eliminazione delle risorse, consulta quanto segue: