Come impostare un server Amazon AWS per le piccole aziende
Attivare l’immagine di una macchina e scegliere una regione
AWS rende molto semplice lanciare la propria prima istanza di calcolo, offrendo una vasta gamma di Immagini Macchina Amazon (AMI) precompilate e ottimizzate, che è possibile caricare su una istanza appena creata. Esiste anche un Marketplace AWS molto attivo per immagini create da terze parti, e la comunità AWS condivide molte AMI create dagli utenti stessi.
Prima di impostare l’infrastruttura di cloud, è necessario scegliere una posizione o “regione” in cui basare la propria infrastruttura virtuale. L’idea è quella di scegliere una posizione che sia la più vicina possibile alla maggior parte degli utenti, oppure che sia vicina al luogo in cui si trovano fisicamente gli sviluppatori. Per questi ultimi, ciò potrebbe portare a tempi di caricamento più brevi durante la fase di sviluppo del sito web. Gli sviluppatori e gli amministratori di database vorranno sapere che la replica sincrona del database tra diverse regioni non è supportata, anche se la replica asincrona invece lo è. Infine, alcuni servizi, soprattutto se sono nuovi o beta offerte, possono essere disponibili solo in determinate regioni.
Naturalmente, a seconda di come il sito è architettato, l’uso di un buon servizio di Content Delivery Network (CDN) potrebbe in molti casi rendere ininfluente il paese di distribuzione. È possibile utilizzare la CDN CloudFront di AWS, ma si possono scegliere anche altre opzioni. Inoltre, AWS offre strumenti per la migrazione semplificata tra più regioni.
Infine, vale la pena notare che, non sempre mentre il costo della maggior parte di servizi AWS è di solito la uguale tra le diverse regioni, per alcuni servizi questo differisce. Vedere il punto “Controllare i costi” più avanti per ulteriori spiegazioni sulla struttura dei costi di AWS.
Progettare per l’uptime
Se si presume che il cloud computing implichi automaticamente un’elevata affidabilità, ci si sta sbagliando di grosso. Mentre molti servizi interni AWS sono altamente affidabili, e malgrado AWS offra alcune funzioni che rendono più facile ripristinare il sistema dopo un guasto, è necessario pianificare e progettare accuratamente la distribuzione avendo come obiettivo l’affidabilità del servizio.
Per esempio, sono stati recentemente scoperti dei bug nell’hypervisor Xen utilizzato da AWS, e alcune macchine AWS hanno dovuto essere riavviate durante il processo di patching. Inoltre, i server fisici che fanno il lavoro sul backend possono rompersi, e ovviamente ogni tanto lo fanno. Senza precauzioni automatiche integrate, i siti web costruiti su AWS possono comportarsi in modo imprevisto o addirittura non essere disponibili durante gli arresti dei server o riavvii sul backend.
In generale, è necessario assicurarsi che i siti importanti siano distribuiti su più di una zona di disponibilità (Availability Zone o AZ) all’interno di una regione. In genere, questo comporta l’impostazione del database backend per la distribuzione multi-AZ fin dal primo momento. Come nella duplicazione di un server database su un’infrastruttura locale, l’opzione di database multi-AZ comporterà costi maggiori.
La configurazione più tipica prevede l’istituzione di un Elastic Load Balancer (ELB) per distribuire il traffico delle applicazioni in arrivo su più istanze di calcolo. Il traffico può essere deviato automaticamente da istanze problematiche a quelle sane, che potrebbero essere distribuite tra più zone di disponibilità per prevenire il caso di un guasto catastrofico di un particolare AZ.
Non dimentichiamo la sicurezza
AWS prende sul serio la sicurezza, il che non è una sorpresa considerando che si possono configurare letteralmente centinaia di server di produzione o tirarli già con un semplice clic del mouse. Per esempio, almeno una promettente start-up è stata spazzata via dopo che un hacker ha fatto irruzione nel suo pannello di controllo Amazon EC2 e ha cancellato l’intera infrastruttura.
Per gestire al meglio la sicurezza, AWS consiglia la creazione di utenti con autorizzazioni limitate per la gestione delle risorse di cui sono responsabili, e non assegnare a tutti i privilegi di utente “root”, con accesso illimitato. Proprio come in un tipico sistema Linux, gli utenti possono essere assegnati a gruppi, e possono essere creati e assegnati ruoli specifici a singoli utenti o a gruppi.
AWS offre anche l’autenticazione a più fattori (MFA), che è disponibile come opzioni hardware o virtuale. Per l’hardware MFA, AWS supporta i token di sicurezza prodotti da Gemalto, un provider di terze parti. In alternativa, sono supportate applicazioni per la MFA virtuale, come Google Authenticator che è disponibile per Android, iPhone e BlackBerry, e un’app proprietaria di AWS compatibile con Android.
Monitoraggio del costo
L’aspetto del cloud computing di cui probabilmente si sente più parlare è la sua capacità di ridurre i costi di acquisto e configurazione dell’infrastruttura (Capex). Come alcune aziende stanno lentamente scoprendo, tuttavia, il corrispondente aumento dei costi operativi (Opex) può in alcune circostanze superare il costo di una installazione locale, anche in tempi relativamente brevi.
Per aiutare gli utenti a ottenere una conoscenza più approfondita nel costo delle loro infrastrutture cloud, AWS ha ideato un calcolatore mensile da cui gli utenti possono calcolare il costo delle loro implementazioni in base ai servizi che utilizzano, secondo i loro livelli stimati di utilizzo di disco e rete. Questo può aiutare le aziende a decidere se possono fare a meno di determinati livelli di affidabilità o di servizi.
Le aziende che cercano di ottimizzare i costi in base alla loro distribuzione esistente, e sono certe dei loro livelli di utilizzo, possono decidere di acquistare un’istanza di calcolo nelle modalità “spot” o “riservata”. In poche parole, la prima permette alle aziende di sfruttare capacità di elaborazione inutilizzata per un prezzo più basso, mentre la seconda consente alle aziende di prenotare e riservare in anticipo le risorse. Per ovvie ragioni, le istanze “spot” potrebbero non essere sempre disponibili in una determinata regione.
AWS offre un servizio di consulenza certificato per aiutare a impostare i vari aspetti di una distribuzione AWS, compresa la sicurezza e l’ottimizzazione gestione dei costi. E’ tuttavia necessario attivare un piano di supporto a pagamento per sbloccare tutte le raccomandazioni.
Abbiamo coperto fin qui solo la punta di un iceberg in termini di possibilità disponibili su AWS, ma questo articolo dovrebbe orientarvi nella direzione giusta nel decidere se volete scegliere l’approccio di AWS, e per farvi le domande giuste su come procedere in seguito a questo passo.