Componenti chiave di un'architettura di hosting Web AWS - Hosting di applicazioni Web in AWS Cloud

Componenti chiave di un'architettura di hosting Web AWS

Le sezioni seguenti illustrano alcuni dei componenti chiave di un'architettura di hosting Web distribuita in AWS Cloud, illustrandone le differenze da un'architettura di hosting Web tradizionale.

Gestione delle reti

In AWS Cloud la possibilità di segmentare la rete rispetto a quella di altri clienti offre un'architettura più sicura e scalabile. Mentre i gruppi di sicurezza forniscono sicurezza a livello di host (vedi la sezione Sicurezza dell'host), Amazon Virtual Private Cloud (Amazon VPC) permette di avviare le risorse in una rete virtuale e isolata dal punto di vista logico, che è possibile definire.

Amazon VPC è un servizio che offre il controllo completo sui dettagli della configurazione di rete in AWS. È ad esempio possibile creare sottoreti pubbliche per i server Web e sottoreti private senza accesso a Internet per i database. Amazon VPC ti permette inoltre di creare architetture ibride usando reti private virtuali (VPN) hardware, nonché di usare AWS Cloud come estensione del tuo data center.

Amazon VPC include inoltre il supporto per IPv6 oltre al tradizionale supporto di IPv4 per la rete.

Distribuzione di contenuti

Quando il traffico Web è distribuito in aree geografiche diverse, non è sempre fattibile né conveniente replicare l'intera infrastruttura in tutto il mondo. Una rete per la distribuzione di contenuti (CDN, Content Delivery Network) offre la possibilità di impiegare la rete globale di posizioni edge per offrire ai clienti una copia cache di contenuti Web tra cui video, pagine Web, immagini e così via. Per ridurre il tempo di risposta, la rete CDN utilizza la posizione edge più vicina al cliente o la posizione da cui ha avuto origine la richiesta. La velocità effettiva risulta notevolmente migliore, perché le risorse Web provengono dalla cache. Per quanto riguarda i dati dinamici, molte reti CDN possono essere configurate per recuperare i dati dai server di origine.

È possibile usare CloudFront per distribuire il website, inclusi contenuti dinamici, statici e in streaming, usando una rete globale di posizioni edge. CloudFront instrada automaticamente le richieste di contenuti alla posizione edge più vicina, in modo da offrire il miglior livello possibile di prestazioni per la distribuzione dei contenuti. CloudFront è ottimizzato per il funzionamento con altri servizi AWS come Amazon S3 e Amazon Elastic Compute Cloud (Amazon EC2). CloudFront funziona inoltre in modo ottimale con qualsiasi server di origine non AWS in cui sono archiviate le versioni originali e definitive dei file.

Come altri servizi AWS, non sono previsti contratti o impegni mensili per l'uso di CloudFront: paghi solo in base alla quantità di contenuti effettivamente distribuiti attraverso il servizio.

Inoltre, tutte le soluzioni esistenti per la memorizzazione nella cache edge nell'infrastruttura delle applicazioni Web dovrebbero funzionare bene in AWS Cloud.

Gestione dei nomi DNS pubblici

Lo spostamento di un'applicazione Web in AWS Cloud richiede alcune modifiche al sistema Domain Name System (DNS). Per offrire supporto per la gestione del routing DNS, AWS fornisce Amazon Route 53, un servizio Web DNS cloud con disponibilità e scalabilità elevate. Route 53 è un servizio concepito per fornire a sviluppatori e aziende un modo estremamente affidabile e conveniente per instradare gli utenti finali alle applicazioni Internet convertendo nomi come "www.esempio.com" in indirizzi IP numerici come 192.0.2.1, che i computer usano per connettersi tra loro. Route 53 è inoltre completamente conforme a IPv6.

Sicurezza dell'host

Oltre a filtrare il traffico di rete in entrata nell'ambiente edge, AWS consiglia anche che le applicazioni Web applichino filtri del traffico di rete a livello di host. Amazon EC2 offre una caratteristica denominata gruppi di sicurezza. Un gruppo di sicurezza è analogo a un firewall di rete in entrata, per il quale è possibile specificare i protocolli, le porte e gli intervalli IP di origine autorizzati a raggiungere le istanze EC2.

È possibile assegnare uno o più gruppi di sicurezza a ogni istanza EC2. Ogni gruppo di sicurezza permette il flusso del traffico appropriato verso ogni istanza. È possibile configurare i gruppi di sicurezza in modo che solo sottoreti, risorse e indirizzi IP specifici abbiano accesso a un'istanza EC2. In alternativa, è possibile fare riferimento ad altri gruppi di sicurezza per limitare l'accesso alle istanze EC2 che si trovano in gruppi specifici.

Nell'architettura di hosting Web AWS nella Figura 3, il gruppo di sicurezza per il cluster di server Web può permettere l'accesso solo dal bilanciatore del carico a livello Web e solo tramite TCP sulle porte 80 e 443 (HTTP e HTTPS). Il gruppo di sicurezza del server applicazioni, d'altra parte, può permettere l'accesso solo dal bilanciatore del carico a livello di applicazione. In questo modello, i tecnici del supporto necessitano anche di accesso alle istanze EC2, che è possibile ottenere con AWS Systems Manager Session Manager. Per una discussione più approfondita sulla sicurezza, consulta Sicurezza in AWS Cloud, che contiene bollettini sulla sicurezza, informazioni sulle certificazioni e whitepaper sulla sicurezza che spiegano le funzionalità di sicurezza di AWS.

Bilanciamento del carico tra cluster

I bilanciatori del carico hardware sono appliance di rete comuni in uso nelle architetture delle applicazioni Web tradizionali. AWS fornisce questa funzionalità tramite il servizio Elastic Load Balancing (ELB). ELB distribuisce automaticamente il traffico in entrata dell'applicazione tra più destinazioni, come istanze EC2, container, indirizzi IP, funzioni AWS Lambda e applicazioni virtuali. Permette di gestire i diversi carichi di traffico di un'applicazione in una o più zone di disponibilità. Elastic Load Balancing offre quattro tipi di bilanciatori del carico, tutti dotati di disponibilità elevata, scalabilità automatica e sicurezza affidabile, elementi necessari per permettere la tolleranza ai guasti delle applicazioni.

Ricerca di altri host e servizi

Nella tradizionale architettura di hosting Web, la maggior parte degli host ha indirizzi IP statici. In AWS Cloud, la maggior parte degli host ha indirizzi IP dinamici. Sebbene ogni istanza EC2 possa avere voci DNS sia pubbliche che private e possa essere indirizzabile in Internet, le voci DNS e gli indirizzi IP vengono assegnati dinamicamente all'avvio dell'istanza. Non possono essere assegnati manualmente. Gli indirizzi IP statici (indirizzi IP elastici nella terminologia AWS) possono essere assegnati alle istanze in esecuzione dopo l'avvio. È consigliabile usare indirizzi IP elastici per le istanze e i servizi che richiedono endpoint coerenti, come database primari, file server centrali e bilanciatori del carico ospitati da EC2.

Memorizzazione nella cache all'interno dell'applicazione Web

Le cache delle applicazioni in memoria permettono di ridurre il carico sui servizi e migliorare le prestazioni e la scalabilità a livello di database memorizzando le informazioni usate di frequente. Amazon ElastiCache è un servizio Web che permette di distribuire, gestire e dimensionare una cache in memoria nel cloud con la massima semplicità. È possibile configurare la cache in memoria creata per ottenere scalabilità automatica in base al carico e sostituire automaticamente i nodi in cui si verificano errori. ElastiCache è conforme ai protocolli Memcached e Redis, il che semplifica la migrazione dalla soluzione On-Premise corrente.