View a markdown version of this page

Considerazioni di progettazione per le tue applicazioni Elastic Beanstalk - AWS Elastic Beanstalk

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

Considerazioni di progettazione per le tue applicazioni Elastic Beanstalk

Poiché le applicazioni distribuite utilizzando AWS Elastic Beanstalk Run on Cloud AWS Resources, è necessario tenere a mente diversi fattori di configurazione per ottimizzare le applicazioni: scalabilità, sicurezza, storage persistente, tolleranza ai guasti, distribuzione dei contenuti, aggiornamenti e patch del software e connettività. Ognuno di questi concetti è trattato separatamente in questo argomento. Per un elenco completo dei AWS white paper tecnici, che trattano argomenti come l'architettura, la sicurezza e l'economia, consulta i white paper sul cloud computing. AWS

Scalabilità

Quando si lavora in un ambiente hardware fisico, a differenza di un ambiente cloud, è possibile avvicinarsi alla scalabilità in due modi diversi. È possibile dimensionare verso l'alto attraverso un dimensionamento verticale o aumentare orizzontalmente attraverso il dimensionamento orizzontale. L'approccio di dimensionamento verso l'alto richiede un investimento in hardware potente in grado di supportare le crescenti esigenze dell'azienda. L'approccio di aumento orizzontale richiede di seguire un modello di investimento distribuito. Pertanto, le acquisizioni di hardware e applicazioni possono essere più mirate, i set di dati sono federati e la progettazione è orientata ai servizi. L'approccio del dimensionamento verso l'alto può essere costoso ed espone comunque al rischio di non riuscire a soddisfare la domanda. A questo proposito, l'approccio di aumento orizzontale è generalmente più efficace. Tuttavia, quando lo si utilizza, è necessario essere in grado di prevedere la domanda a intervalli regolari e implementare l'infrastruttura in blocchi per soddisfare tale domanda. Questo approccio spesso porta a capacità inutilizzate e impone un attento monitoraggio.

Grazie alla migrazione al cloud, è possibile allineare bene l'infrastruttura alla domanda sfruttando l'elasticità del cloud. L'elasticità aiuta a semplificare l'acquisizione e il rilascio delle risorse. Con questo sistema, l'infrastruttura può essere ridotta e aumentata rapidamente in orizzontale con il variare della domanda. Per utilizzarlo, configurare le impostazioni di Auto Scaling per aumentare o ridurre le dimensioni in base ai parametri dalle risorse dell'ambiente. Ad esempio, puoi impostare metriche come l'utilizzo del server o la rete. I/O È possibile utilizzare Auto Scaling per aggiungere automaticamente la capacità di calcolo ogni volta che l'utilizzo aumenta e per rimuoverla ogni volta che l'utilizzo diminuisce. Puoi pubblicare le metriche di sistema (ad esempio CPU, memoria I/O, disco e rete I/O) su Amazon. CloudWatch Quindi, puoi utilizzarlo CloudWatch per configurare gli allarmi per attivare azioni di Auto Scaling o inviare notifiche in base a queste metriche. Per le istruzioni su come configurare Auto Scaling, consultare Ridimensionamento automatico delle istanze dell'ambiente Elastic Beanstalk.

Consigliamo anche di progettare tutte le applicazioni Elastic Beanstalk il più possibile stateless, grazie all'utilizzo di componenti con legami deboli e tolleranza ai guasti che possono essere dimensionati orizzontalmente in base alle esigenze. Per ulteriori informazioni sulla progettazione di architetture applicative scalabili per, vedere Framework. AWSAWS Well-Architected

Sicurezza

La sicurezza AWS è una responsabilità condivisa. Amazon Web Services protegge le risorse fisiche nel proprio ambiente e garantisce che il cloud sia un luogo sicuro per l'esecuzione delle applicazioni. L'utente è responsabile della sicurezza dei dati in entrata e in uscita dell'ambiente Elastic Beanstalk e della sicurezza dell'applicazione.

Configurare SSL per proteggere il flusso di informazioni tra l'applicazione e i client. Per configurare SSL, è necessario un certificato gratuito da AWS Certificate Manager (ACM). Se si dispone già di un certificato di un'autorità di certificazione esterna (CA), è possibile utilizzare ACM per importarlo. Altrimenti, puoi importarlo utilizzando AWS CLI.

Se ACM non è disponibile nel tuo Regione AWS, puoi acquistare un certificato da una CA esterna, come VeriSign Entrust. Quindi, usa AWS Command Line Interface (AWS CLI) per caricare un certificato di terze parti o autofirmato e una chiave privata su AWS Identity and Access Management (IAM). La chiave pubblica del certificato consente di autenticare il server con il browser. Serve anche come base per la creazione di chiavi di sessione condivise che eseguono la crittografia dei dati in entrambe le direzioni. Per le istruzioni su come creare, caricare e assegnare un certificato SSL all'ambiente, consultare Configurazione del protocollo HTTPS per l'ambiente Elastic Beanstalk.

Quando si configura un certificato SSL per l'ambiente, i dati tra il client e il load balancer Elastic Load Balancing dell'ambiente vengono crittografati. Per impostazione predefinita, la crittografia viene terminata nel sistema di bilanciamento del carico e il traffico tra il sistema di bilanciamento del carico e le istanze di Amazon EC2 non è crittografato.

Storage persistente

Le applicazioni Elastic Beanstalk vengono eseguite sulle istanze Amazon EC2 che non sono dotate di storage locale persistente. Questo vale per Beanstalk Standard e per Beanstalk Cluster, in cui le istanze Amazon EC2 vengono eseguite all'interno di un cluster Amazon EKS. Quando le istanze di Amazon EC2 terminano, il file system locale non viene salvato. Le nuove istanze Amazon EC2 iniziano con un file system di default. Consigliamo di configurare l'applicazione in modo da archiviare i dati in un'origine dati persistente. AWS offre una serie di servizi di archiviazione persistente che è possibile utilizzare per l'applicazione. Tali versioni sono elencate nella tabella seguente.

Nota

Elastic Beanstalk Standard crea un utente webapp da configurare come proprietario delle directory delle applicazioni sulle istanze EC2. Per le versioni della piattaforma Amazon Linux 2 rilasciate il o dopo il 3 febbraio 2022, Elastic Beanstalk assegna all'utente webapp un valore uid (ID utente) e gid (ID gruppo) pari a 900 per i nuovi ambienti. Lo stesso vale per gli ambienti esistenti dopo un aggiornamento della versione della piattaforma. Questo approccio mantiene coerente l'autorizzazione di accesso per l'utente webapp nell'archiviazione del file system permanente.

Nell'improbabile situazione in cui un altro utente o processo stia già utilizzando il valore 900, il sistema operativo utilizzerà un altro valore di uid e gid dell'utente webapp. Eseguire il comando Linux id webapp sulle istanze EC2 per verificare i valori uid e gid assegnati all'utente webapp.

Tolleranza ai guasti

In linea generale, devi essere pessimista quando progetti l'architettura per il cloud. Sfruttare l'elasticità che offre. Progetta, implementa e distribuisci sempre includendo il ripristino automatizzato in seguito a errori. Utilizza più zone di disponibilità per le tue risorse di calcolo e storage. Le zone di disponibilità sono concettualmente simili ai data center logici. Usa Amazon CloudWatch per avere maggiore visibilità sullo stato della tua applicazione Elastic Beanstalk e intraprendere le azioni appropriate in caso di guasto dell'hardware o peggioramento delle prestazioni. Con Beanstalk Standard, configura le impostazioni di Auto Scaling per mantenere il tuo parco di istanze Amazon EC2 in modo che le istanze non integre vengano sostituite da nuove. Con Beanstalk Cluster, Amazon EKS ripianifica i carichi di lavoro lontano dai nodi non integri e li sostituisce automaticamente. Se si utilizza Amazon RDS, configurare il periodo di conservazione per i backup in modo che Amazon RDS possa eseguire i backup automatici.

Distribuzione di contenuti

Quando gli utenti si connettono al tuo sito Web, le loro richieste potrebbero essere instradate attraverso una serie di reti individuali. In questo modo gli utenti possono riscontrare una riduzione delle prestazioni a causa di una latenza elevata. Amazon CloudFront può aiutarti a risolvere i problemi di latenza distribuendo i tuoi contenuti web, come immagini e video, su una rete di edge location in tutto il mondo. Le richieste degli utenti vengono indirizzate all'edge location più vicina, in modo che i contenuti vengano distribuiti con le migliori prestazioni possibili. CloudFront funziona perfettamente con Amazon S3, che archivia in modo duraturo le versioni originali e definitive dei tuoi file. Per ulteriori informazioni su Amazon CloudFront, consulta la Amazon Developer Guide. CloudFront

Applicazione di patch e aggiornamenti software

Elastic Beanstalk Standard rilascia regolarmente aggiornamenti della piattaforma per fornire correzioni, aggiornamenti software e nuove funzionalità. Elastic Beanstalk offre diverse opzioni per gestire gli aggiornamenti della piattaforma. Gli aggiornamenti gestiti della piattaforma aggiornano automaticamente l'ambiente alla versione più recente della piattaforma durante una finestra di manutenzione pianificata mentre l'applicazione rimane operativa. Per gli ambienti creati il 25 novembre 2019 o successivamente tramite la console Elastic Beanstalk, gli aggiornamenti gestiti sono abilitati per impostazione predefinita (quando possibile). È inoltre possibile avviare manualmente gli aggiornamenti utilizzando la console di Elastic Beanstalk o la CLI EB.

Elastic Beanstalk Cluster aggiorna automaticamente i cluster Amazon EKS e i componenti aggiuntivi Kubernetes in esecuzione in tali cluster per fornire correzioni, aggiornamenti software e nuove funzionalità.

Connettività

Elastic Beanstalk deve essere in grado di connettersi alle istanze del tuo ambiente per completare le distribuzioni. Quando distribuisci un'applicazione Elastic Beanstalk all'interno di un Amazon VPC, la configurazione necessaria per abilitare la connettività dipende dal tipo di ambiente Amazon VPC che crei:

  • Per gli ambienti standard a istanza singola, non è richiesta alcuna configurazione aggiuntiva. Ciò perché, con questi cambienti, Elastic Beanstalk assegna a ogni istanza Amazon EC2 un indirizzo IP elastico pubblico che le consente all'istanza di comunicare direttamente con Internet.

  • Per gli ambienti dimensionabili e con bilanciamento del carico in un Amazon VPC con sottoreti sia pubbliche che private, devi completare le attività seguenti:

    • Creare un load balancer nella sottorete pubblica per instradare il traffico in entrata da Internet alle istanze Amazon EC2.

    • Creare un dispositivo Network Address Translation (NAT) per instradare il traffico in uscita dalle istanze Amazon EC2 alle sottoreti private su Internet.

    • Crea le regole di instradamento in entrata e in uscita per le istanze Amazon EC2 all'interno della sottorete privata.

    • Se si utilizza un'istanza NAT, configurare i gruppi di sicurezza per l'istanza NAT e le istanze Amazon EC2 in modo da consentire la comunicazione Internet.

  • Per un ambiente scalabile con bilanciamento del carico in un Amazon VPC con una sottorete pubblica, non è richiesta alcuna configurazione aggiuntiva. Questo perché con questo ambiente le istanze di Amazon EC2 sono configurate con un indirizzo IP pubblico che ne consente la comunicazione con Internet.

Per ulteriori informazioni sull'utilizzo di Elastic Beanstalk con Amazon VPC, consulta Utilizzo di Elastic Beanstalk con Amazon VPC.