Amazon Web Services - Architettura di base
Questa è la struttura di base di AWS EC2, dove EC2sta per Elastic Compute Cloud. EC2 consente agli utenti di utilizzare macchine virtuali di diverse configurazioni secondo i loro requisiti. Consente varie opzioni di configurazione, mappatura di singoli server, varie opzioni di prezzo, ecc. Ne discuteremo in dettaglio nella sezione Prodotti AWS. Di seguito la rappresentazione schematica dell'architettura.
Note - Nello schema sopra S3è l'acronimo di Simple Storage Service. Consente agli utenti di archiviare e recuperare vari tipi di dati utilizzando le chiamate API. Non contiene alcun elemento informatico. Discuteremo questo argomento in dettaglio nella sezione dei prodotti AWS.
Bilancio del carico
Load balancingsignifica semplicemente caricare hardware o software sui server web, migliorando l'efficienza del server e dell'applicazione. Di seguito è riportata la rappresentazione schematica dell'architettura AWS con bilanciamento del carico.
Il bilanciamento del carico hardware è un'appliance di rete molto comune utilizzata nelle architetture di applicazioni Web tradizionali.
AWS fornisce il servizio Elastic Load Balancing, distribuisce il traffico alle istanze EC2 su più origini disponibili e aggiunge e rimuove dinamiche di host Amazon EC2 dalla rotazione del bilanciamento del carico.
Elastic Load Balancing può aumentare e ridurre dinamicamente la capacità di bilanciamento del carico per adattarsi alle richieste di traffico e supportare anche sessioni persistenti per soddisfare esigenze di routing più avanzate.
Amazon Cloud-front
È responsabile della consegna del contenuto, ovvero utilizzato per fornire il sito web. Può contenere contenuto dinamico, statico e in streaming utilizzando una rete globale di edge location. Le richieste di contenuto da parte dell'utente vengono indirizzate automaticamente alla edge location più vicina, il che migliora le prestazioni.
Amazon Cloud-front è ottimizzato per funzionare con altri Amazon Web Services, come Amazon S3 e Amazon EC2. Funziona bene anche con qualsiasi server di origine non AWS e archivia i file originali in modo simile.
In Amazon Web Services non ci sono contratti o impegni mensili. Paghiamo solo per la quantità di contenuto che forniamo tramite il servizio.
Elastic Load Balancer
Viene utilizzato per diffondere il traffico ai server Web, migliorando le prestazioni. AWS fornisce il servizio Elastic Load Balancing, in cui il traffico viene distribuito alle istanze EC2 su più zone disponibili, e l'aggiunta e la rimozione dinamiche di host Amazon EC2 dalla rotazione del bilanciamento del carico.
Elastic Load Balancing può aumentare e ridurre dinamicamente la capacità di bilanciamento del carico in base alle condizioni del traffico.
Gestione della sicurezza
Elastic Compute Cloud (EC2) di Amazon fornisce una funzionalità chiamata gruppi di sicurezza, simile a un firewall di rete in entrata, in cui dobbiamo specificare i protocolli, le porte e gli intervalli IP di origine che possono raggiungere le tue istanze EC2.
A ciascuna istanza EC2 può essere assegnato uno o più gruppi di sicurezza, ognuno dei quali instrada il traffico appropriato a ciascuna istanza. I gruppi di sicurezza possono essere configurati utilizzando sottoreti o indirizzi IP specifici che limitano l'accesso alle istanze EC2.
Cache elastiche
Amazon Elastic Cache è un servizio Web che gestisce la cache di memoria nel cloud. Nella gestione della memoria, la cache ha un ruolo molto importante e aiuta a ridurre il carico sui servizi, migliora le prestazioni e la scalabilità sul livello del database memorizzando nella cache le informazioni utilizzate di frequente.
Amazon RDS
Amazon RDS (Relational Database Service) fornisce un accesso simile a quello del motore di database MySQL, Oracle o Microsoft SQL Server. Le stesse query, applicazioni e strumenti possono essere utilizzati con Amazon RDS.
Patch automaticamente il software del database e gestisce i backup secondo le istruzioni dell'utente. Supporta anche il ripristino point-in-time. Non sono richiesti investimenti iniziali e paghiamo solo per le risorse che utilizziamo.
Hosting di RDMS su istanze EC2
Amazon RDS consente agli utenti di installare RDBMS (Relational Database Management System) di tua scelta come MySQL, Oracle, SQL Server, DB2, ecc. Su un'istanza EC2 e possono gestire come richiesto.
Amazon EC2 utilizza Amazon EBS (Elastic Block Storage) in modo simile allo storage collegato alla rete. Tutti i dati e i log in esecuzione sulle istanze EC2 devono essere posizionati su volumi Amazon EBS, che saranno disponibili anche in caso di errore dell'host del database.
I volumi Amazon EBS forniscono automaticamente la ridondanza all'interno della zona di disponibilità, il che aumenta la disponibilità dei dischi semplici. Inoltre, se il volume non è sufficiente per le esigenze dei nostri database, è possibile aggiungere il volume per aumentare le prestazioni del nostro database.
Utilizzando Amazon RDS, il fornitore di servizi gestisce lo storage e noi ci concentriamo solo sulla gestione dei dati.
Archiviazione e backup
Il cloud AWS offre varie opzioni per l'archiviazione, l'accesso e il backup dei dati e delle risorse delle applicazioni Web. Amazon S3 (Simple Storage Service) fornisce una semplice interfaccia di servizi Web che può essere utilizzata per archiviare e recuperare qualsiasi quantità di dati, in qualsiasi momento e da qualsiasi punto del Web.
Amazon S3 archivia i dati come oggetti all'interno delle risorse chiamate buckets. L'utente può archiviare tutti gli oggetti secondo i requisiti all'interno del bucket e può leggere, scrivere ed eliminare oggetti dal bucket.
Amazon EBS è efficace per i dati a cui è necessario accedere come storage a blocchi e richiede persistenza oltre la durata dell'istanza in esecuzione, come partizioni di database e log dell'applicazione.
I volumi di Amazon EBS possono essere massimizzati fino a 1 TB e questi volumi possono essere sottoposti a striping per volumi più grandi e prestazioni migliorate. I volumi di IOPS con provisioning sono progettati per soddisfare le esigenze dei carichi di lavoro del database sensibili alle prestazioni e alla coerenza dello storage.
Amazon EBS attualmente supporta fino a 1.000 IOPS per volume. Possiamo eseguire lo striping di più volumi insieme per fornire migliaia di IOPS per istanza a un'applicazione.
Auto Scaling
La differenza tra l'architettura cloud AWS e il modello di hosting tradizionale è che AWS può scalare dinamicamente la flotta di applicazioni web su richiesta per gestire i cambiamenti nel traffico.
Nel modello di hosting tradizionale, i modelli di previsione del traffico vengono generalmente utilizzati per fornire host prima del traffico previsto. In AWS, è possibile eseguire il provisioning delle istanze al volo in base a una serie di trigger per il ridimensionamento del parco dispositivi. Amazon Auto Scaling può creare gruppi di capacità di server che possono crescere o ridursi su richiesta.
Considerazioni chiave per l'hosting Web in AWS
Di seguito sono riportate alcune delle considerazioni chiave per l'hosting web:
Non sono necessari dispositivi di rete fisici
In AWS, i dispositivi di rete come firewall, router e bilanciatori del carico per le applicazioni AWS non risiedono più su dispositivi fisici e vengono sostituiti con soluzioni software.
Sono disponibili più opzioni per garantire soluzioni software di qualità. Per il bilanciamento del carico scegli Zeus, HAProxy, Nginx, Pound, ecc. Per stabilire una connessione VPN scegli OpenVPN, OpenSwan, Vyatta, ecc.
Nessun problema di sicurezza
AWS fornisce un modello più sicuro, in cui ogni host è bloccato. In Amazon EC2, i gruppi di sicurezza sono progettati per ogni tipo di host nell'architettura ed è possibile creare un'ampia varietà di modelli di sicurezza semplici e su più livelli per consentire un accesso minimo tra gli host all'interno della tua architettura secondo i requisiti.
Disponibilità di data center
Le istanze EC2 sono facilmente disponibili nella maggior parte delle zone di disponibilità nella regione AWS e forniscono un modello per la distribuzione della tua applicazione nei data center per alta disponibilità e affidabilità.