Considerazioni chiave per l'uso di AWS per l'hosting Web - Hosting di applicazioni Web in AWS Cloud

Considerazioni chiave per l'uso di AWS per l'hosting Web

Ci sono alcune differenze fondamentali tra AWS Cloud e un modello di hosting di applicazioni Web tradizionale. Nella sezione precedente sono state illustrate molte delle aree chiave da considerare quando si distribuisce un'applicazione Web nel cloud. Questa sezione illustra alcuni dei principali cambiamenti nell'architettura che è necessario considerare quando si sposta un'applicazione nel cloud.

Nessuna appliance di rete fisica

Non è possibile distribuire appliance di rete fisiche in AWS. Ad esempio, firewall, router e bilanciatori del carico per le applicazioni AWS non possono più trovarsi nei dispositivi fisici, ma devono essere sostituiti con soluzioni software. Sono disponibili molte soluzioni software di livello aziendale, sia per il bilanciamento del carico che per la creazione di una connessione VPN. Questa non è una limitazione a ciò che è possibile eseguire in AWS Cloud, ma rappresenta solo una modifica dell'architettura dell'applicazione se attualmente usi questi dispositivi.

Firewall ovunque

Dove un tempo era presente una semplice rete perimetrale (DMZ) con comunicazioni aperte tra gli host in un modello di hosting tradizionale, AWS applica un modello più sicuro, in cui ogni host è bloccato. Uno dei passaggi nella pianificazione di una distribuzione AWS è l'analisi del traffico tra gli host. Questa analisi permetterà di stabilire esattamente quali porte è necessario aprire. È possibile creare gruppi di sicurezza per ogni tipo di host nell'architettura. È anche possibile creare una vasta gamma di modelli di sicurezza semplici e a più livelli per consentire l'accesso minimo tra gli host all'interno dell'architettura. L'uso di liste di controllo accessi di rete in Amazon VPC può aiutare a bloccare la rete a livello di sottorete.

Considerazioni sulla disponibilità di più data center

Le zone di disponibilità in una regione AWS possono essere paragonate a data center multipli. Le istanze EC2 in zone di disponibilità diverse sono separate sia logicamente che fisicamente e forniscono un modello facile da usare per la distribuzione dell'applicazione tra diversi data center, per disponibilità e affidabilità elevate. Amazon VPC è un servizio regionale che permette di usufruire delle zone di disponibilità mantenendo tutte le risorse nella stessa rete logica.

Host effimeri e dinamici

Probabilmente il cambiamento più importante nella progettazione dell'applicazione AWS riguarda il fatto che gli host Amazon EC2 devono essere considerati effimeri e dinamici. Qualsiasi applicazione costruita per AWS Cloud non deve presumere che un host sia sempre disponibile e deve essere progettata con la consapevolezza che tutti i dati negli archivi delle istanze EC2 andranno persi in caso di errore di un'istanza EC2.

Quando viene attivato un nuovo host, non si devono fare supposizioni sull'indirizzo IP o sulla posizione dell'host all'interno di una zona di disponibilità. Il modello di configurazione deve essere flessibile e l'approccio al processo di bootstrap di un host deve tenere conto della natura dinamica del cloud. Queste tecniche sono fondamentali per la costruzione e l'esecuzione di un'applicazione con scalabilità elevata e tolleranza ai guasti.

Considerazioni su container ed elaborazione serverless

Questo whitepaper è incentrato principalmente su un'architettura web più tradizionale. Considera tuttavia la possibilità di modernizzare le applicazioni Web passando a container e tecnologie serverless, usando servizi come AWS Fargate e AWS Lambda per astrarre l'uso di macchine virtuali per l'esecuzione di attività di calcolo. Grazie all'elaborazione serverless, le attività di gestione dell'infrastruttura come il provisioning della capacità e l'applicazione di patch sono gestite da AWS, permettendoti così di costruire applicazioni più agili per innovare e rispondere ai cambiamenti più velocemente.

Considerazioni sulla distribuzione automatica

  • Amazon Lightsail è un server privato virtuale di semplice utilizzo che offre tutto il necessario per costruire un'applicazione o un website con un piano mensile conveniente. Lightsail è ideale per i carichi di lavoro più semplici, per le distribuzioni veloci e per iniziare a lavorare con AWS. È un servizio progettato per iniziare in piccolo con la possibilità di dimensionare le risorse man mano che si cresce.

  • AWS Elastic Beanstalk è un servizio di facile utilizzo per distribuire e dimensionare applicazioni e servizi Web sviluppati con Java, .NET, PHP, Node.js, Python, Ruby, Go e Docker su server comuni come Apache, NGINX, Passenger e IIS. Caricando semplicemente il codice, Elastic Beanstalk gestisce automaticamente l'implementazione, il provisioning della capacità, il bilanciamento del carico, la scalabilità automatica e il monitoraggio dell'integrità dell'applicazione. Al contempo, l'utente mantiene il controllo completo sulle risorse AWS su cui si basa la sua applicazione e può accedere in qualsiasi momento alle risorse sottostanti.

  • AWS App Runner è un servizio completamente gestito che facilita agli sviluppatori l'implementazione rapida di API e applicazioni Web in container, su larga scala e senza necessità di esperienza precedente relativa all'infrastruttura. Inizia con il codice sorgente o con l’immagine di container. App Runner crea e distribuisce automaticamente l’applicazione Web e bilancia il carico del traffico mediante la crittografia. App Runner si ricalibra anche automaticamente per soddisfare le esigenze di traffico.

  • AWS Amplify è un set di strumenti e servizi che è possibile usare insieme o separatamente per aiutare gli sviluppatori di applicazioni mobili e Web front-end a costruire applicazioni complete e scalabili, con tecnologia AWS. Con Amplify è possibile configurare back-end di app e connettere le app in pochi minuti, distribuire app Web statiche con pochi clic e gestire facilmente i contenuti delle app al di fuori della AWS Management Console.