Implementa un Applicazione Web su Amazon EC2

GUIDA ALLE OPERAZIONI DI BASE

Modulo 2 Configurazione automatizzata

In questo modulo, imparerai a usare i dati dell'utente per configurare un'istanza EC2 e installare i pacchetti software sull'istanza EC2.

Introduzione

Quando avvii un'istanza in Amazon EC2, hai l'opzione di passare i dati utente su Amazon EC2 che possono essere utilizzati per effettuare comuni processi di configurazione automatizzata e anche eseguire script dopo l'avvio dell'istanza. Userai questa caratteristica per semplificare l'implementazione della tua applicazione specificando quale software installare e configurare al primo avvio, nonché per copiare un campione dell'applicazione sull'istanza. Questo modulo descriverà la creazione dei dati utente e la loro aggiunta all'istanza EC2 creata nel modulo precedente.

Cosa imparerai

  • Come i dati utente vengono aggiunti all'istanza EC2
  • Creare i dati utente per installare e configurare tutti i pacchetti richiesti sull'OS
  • Implementare la tua applicazione Web copiandola sull'istanza

 Tempo richiesto per il completamento

5 minuti

 Prerequisiti del modulo

  • Account AWS con accesso da amministratore**
  • Browser consigliato: l'ultima versione di Chrome o Firefox

[**]Gli account creati nelle ultime 24 ore potrebbero non avere ancora accesso a tutti servizi richiesti per questo tutorial.

Implementazione

Aggiungere i dati utente alla tua istanza EC2

Il campione dell'applicazione Web ospitata nella cartellaSampleApp è un applicazione Python che implementerai. Richiede NginxeuWSGI per funzionare. C'è una quantità di passaggi da seguire per installare queste componenti. Innanzitutto, bisogna installare tutti i pacchetti OS, configurare nginx e uwsgi, assicurarsi che funzionino e copiare il campione dell'applicazione sull'istanza. Un file script che configura tutti questi passaggi del setup è fornito daSampleapp/configure_amz_linux_sample_app.sh- ti preghiamo di dare un'occhiata ai passaggi descritti se vuoi saperne di più su come un'istanza viene configurata.

Per implementare un applicazione Web, bisogna aggiungere un codice al CDK che copierà la i file e gli script della configurazione e il campione dell'app su S3. Configurerai gli script della configurazione. A tal fine, aggiungi il seguente codice ec2-cdk-stack.ts sotto il codice precedente:

// Use an asset to allow uploading files to S3, and then download it to the EC2 instance as part of the user data

    // --- Sample App ---
    // Upload the sample app  to S3
    const sampleAppAsset = new s3assets.Asset(this, "SampleAppAsset", {
      path: path.join(__dirname, "../../SampleApp"),
    });

    // Allow EC2 instance to read the file
    sampleAppAsset.grantRead(role);

    // Download the file from S3, and store the full location and filename as a variable
    const sampleAppFilePath = ec2Instance.userData.addS3DownloadCommand({
      bucket: sampleAppAsset.bucket,
      bucketKey: sampleAppAsset.s3ObjectKey,
    });

    // --- Sample App ---

    // --- Configuration Script ---
    // Upload the configuration file to S3
    const configScriptAsset = new s3assets.Asset(this, "ConfigScriptAsset", {
      path: path.join(__dirname, "../../SampleApp/configure_amz_linux_sample_app.sh"),
    });

    // Allow EC2 instance to read the file
    configScriptAsset.grantRead(ec2Instance.role);

    // Download the file from S3, and store the full location and filename as a variable
    const configScriptFilePath = ec2Instance.userData.addS3DownloadCommand({
      bucket: configScriptAsset.bucket,
      bucketKey: configScriptAsset.s3ObjectKey,
    });

    // Add a line to the user data to executy the downloaded file
    ec2Instance.userData.addExecuteFileCommand({
      filePath: configScriptFilePath,
      arguments: sampleAppFilePath,
    });

    // --- Configuration Script ---

Tutti questi passaggi saranno aggiunti agli script dei dati utente della tua istanza e eseguiti quando si avvia. C'è un altro ulteriore passaggio prima che tu possa implementare tutto: aggiungere l'output alla pila CDK per facilitare l'SSH all'istanza. Nell'infrastruttura superiore, hai creato una chiave SSH che è memorizzata in AWS Secret Manager. Per scaricarla sulla tua postazione di lavoro, devi recuperala. Avrai bisogno anche dell'IP pubblico dell'istanza e il comando dell'SSH per eseguire. 

Aggiungi il codice seguente in basso alla pila:

// Create outputs for connecting

    // Output the public IP address of the EC2 instance
    new cdk.CfnOutput(this, "IP Address", {
      value: ec2Instance.instancePublicIp,
    });

    // Command to download the SSH key
    new cdk.CfnOutput(this, "Download Key Command", {
      value:
        "aws secretsmanager get-secret-value --secret-id ec2-ssh-key/cdk-keypair/private --query SecretString --output text > cdk-key.pem && chmod 400 cdk-key.pem",
    });

    // Command to access the EC2 instance using SSH
    new cdk.CfnOutput(this, "ssh command", {
      value:
        "ssh -i cdk-key.pem -o IdentitiesOnly=yes ec2-user@" +
        ec2Instance.instancePublicIp,
    });

Questi tre output ti mostreranno quanto segue:

  • Come scaricare la chiave SSH per accedere all'istanza
  • L'IP pubblico dell'istanza
  • Un comando SSH per accedere all'istanza.

Adesso sei pronto per implementare la pila.

Conclusione

In questo modulo, hai imparato come aggiungere i dati utente in un'istanza EC2 per permettere la sua configurazione quando si avvia per la prima volta. Ciò ti ha permesso di installare tutte le dipendenze, configurare nginxeuwsgi e implementare il campione dell'applicazione. Nel modulo successivo, implementerai la pila e il campione dell'applicazione.

A seguire: Implementare la pila CDK

Facci sapere com'è andata.

Grazie per il tuo feedback
Siamo contenti che questa pagina ti sia stata d’aiuto. Vuoi condividere ulteriori dettagli per aiutarci a continuare a migliorare?
Chiudi
Grazie per il tuo feedback
Ci dispiace che questa pagina non ti sia stata d'aiuto. Vuoi condividere ulteriori dettagli per aiutarci a continuare a migliorare?
Chiudi