Amazon AppStream 2.0: pregi, difetti e come sfruttarlo al meglio

Introduzione

Recentemente ci siamo trovati a risolvere l'esigenza di un'azienda di distribuire applicazioni estremamente dispendiose dal punto di vista della GPU in modo facile, scalabile, sicuro ed economico, assicurando ai propri utenti accesso remoto su richiesta affinché potessero svolgere in qualsiasi momento le loro attività quotidiane.

Una volta analizzati i requisiti, ci siamo orientati sull'utilizzo di Amazon AppStream 2.0, il servizio completamente gestito di AWS per la distribuzione di immagini/applicazioni personalizzate agli utenti.

In questo articolo abbiamo raccolto alcune considerazioni fatte alla luce della sua applicazione: cos'è, come si configura e perché preferirlo rispetto ad altri servizi sono solo alcune delle domande a cui risponderemo nelle prossime righe!

Panoramica

Amazon AppStream 2.0 è un servizio di AWS che facilita la gestione di applicazioni centralizzate e la loro condivisione. Essendo un servizio gestito, eliminare la necessità di gestire l'infrastruttura sottostante. Un enorme vantaggio per un amministratore di sistema che, ogni giorno, è chiamato a gestire centinaia di macchine da solo.

Per utilizzare Amazon AppStream 2.0 avremo bisogno solo di una flotta (fleet) e uno stack, due semplici componenti principali, che spiegherò tra poco.

In questo articolo, vedremo come funziona Amazon AppStrea focalizzandoci su alcuni dettagli e considerazioni dettati dalla nostra esperienza di utilizzo.

Come funziona

Lo "Stack"

Lo Stack una parte dell'intera architettura di Amazon AppStream che gestisce le impostazioni dell'utente, ad esempio se i dati devono essere salvati durante ogni sessione o occorre partire da una situazione "pulita" ogni volta.

La "Flotta" (Fleet)

La flotta può essere configurata con il tipo di istanza che meglio si adatta alle nostre esigenze, dalle istanze ad uso generico, fino ad istanze specifiche per tipo di workload come la grafica professionale.

Dopo la scelta del tipo di istanze, il passo successivo sarà impostare la capacità della flotta e la politica di scalabilità necessaria; entrambi gli aspetti sono molto importanti poiché, se configurate in modo errato, potreste incorrere in un'interruzione del servizio o in picchi di spesa inaspettati.

A questo punto, potremo creare e assegnare un ruolo IAM, in modo che gli utenti che si connetteranno alle istanze abbiano autorizzazioni ben definite (parleremo più avanti della sicurezza).

Dopo aver impostato il ruolo IAM, la configurazione principale della flotta è completata. Ora abbiamo solo bisogno di un'immagine e della configurazione di rete!

L'immagine può essere selezionata dall'elenco predefinito di immagini fornite da AWS, oppure possiamo personalizzarne una nostra. 

Questo è il principale vantaggio del servizio: configurare un'immagine e lo streaming delle applicazioni da essa.

L'ultimo passo riguarda la rete; poiché l'infrastruttura sottostante è un'istanza EC2 con un auto-scaling Group, dovremo fornire ad Amazon AppStream una VPC, 3 subnet (non necessariamente dedicate al servizio) e un security group. Puoi implementarlo con il servizio AWS Directory Service se trovi più facile gestire le autorizzazioni da lì.

Una volta configurati tutti questi parametri, la flotta di Amazon AppStream sarà pronta per l'uso. Ma cosa succede se vuoi creare un'immagine specifica con un programma specifico?

Image Builder

Innanzitutto, dovrai avviare un'istanza di Image Builder, la cui configurazione non è altro che una versione ridotta dell'intera flotta, quindi non preoccuparti!

Una volta avviato l'Image Builder, dovrai connetterti all'istanza e personalizzare l'immagine per ottenere un'immagine con le tue applicazioni preferite configurate su di essa.

Potrai cambiare l'immagine predefinita della flotta come desideri; i cambiamenti apportati all'immagine non interferiranno con l'attività degli utenti già connessi a una sessione attiva, ma solo le nuove connessioni stabilite dopo il cambiamento avranno l'immagine aggiornata.

Amazon AppStream: i PRO

  • È possibile federare Amazon AppStream 2.0 utilizzando SAML con IAM Identity Center, semplificando la gestione del pool degli utenti;
  • È conforme alla maggior parte delle normative HIPAA, PCI e SOC, grazie alle impostazioni di sicurezza flessibilità. Queste normative sono davvero importanti, soprattutto nell'ambito dell'end-user computing; questo anche grazie ai security group;
  • Personalizzando i security group, è possibile consentire agli utenti di condividere o accedere solo a dati specifici, rispettando il principio del least privilege;
  • Amazon AppStream è utilizzabile in modo trasparente ovunque facilitando il lavoro remoto grazie al metodo di connessione che consiste in un semplice link URL;
  • Permette di avere un'unica immagine da configurare, riducendo così gli oneri di configurazione o patching di tutte le applicazioni installate su diversi client;
  • In caso di lavoro in diverse filiali in tutto il mondo, è possibile utilizzare l'hardware "a turno", riducendo notevolmente i costi. Ciò è possibile grazie al fatto che mentre un fuso orario è operativo, l'altro avrà già terminato e non avrà più bisogno della sessione attiva.

Amazon AppStream: i contro

Come sempre, anche i migliori hanno dei difetti. Anche Amazon AppStream 2.0! Vediamo quindi le cose che potrebbero dissuaderci dall'usare questo servizio:

  • Non è molto rapido nelle operazioni di scaling;
  • In caso in cui si necessiti di ambienti veloci e volatili, Amazon AppStream potrebbe non essere la scelta migliore a causa del tempo significativo necessario per portare una nuova istanza EC2 nello stato di esecuzione all'interno della Flotta. A meno che l'impostazione della Flotta non sia "Sempre attiva". In tal caso avrai certamente un ambiente più veloce, ma decisamente più costoso;
  • Amazon AppStream non è progettato per supportare più applicazioni. Una flotta avrà sempre una singola immagine; se avrai bisogno di un'altra applicazione, anche se molto leggera, dovrai configurare un altro ambiente completo;
  • Le applicazioni con finestre o pop-up multipli possono rendere l'esperienza non ottimale, poiché il servizio è progettato intorno a un'applicazione e una finestra singola;
  • Il primo approccio alla configurazione dell'infrastruttura non è immediato, soprattutto per chi non lavora sul Cloud tutti i giorni. Per sfruttarlo al meglio serve un po' di pratica.

Cosa occorre tenere presente prima di implementare Amazon AppStream 2.0?

Le immagini che puoi utilizzare come immagini di partenza sono esclusivamente immagini server. Non essendo disponibili immagini client, se l'applicazione non è compatibile con un sistema operativo server, non sarà possibile utilizzare questo servizio;

Puoi accedere alle applicazioni anche da tablet, l'unico requisito che AWS richiede è una risoluzione di almeno 768x1028. Bisogna tuttavia considerare la larghezza di banda che si possiede, poiché si trattandosi comunque di un servizio di streaming;

È possibile utilizzare la licenza BYOL (Bring Your Own License) su Amazon AppStream. Aspetto spesso determinante nella scelta della miglior soluzione.

Amazon AppStream 2.0 VS Amazon Workspaces

Amazon AppStream 2.0 e Amazon Workspaces a primo impatto possono sembrare molto simili, ma dopo un'analisi più approfondita si possono facilmente vedere le differenze nei casi d'uso di ciascuno di essi.

Amazon AppStream ti consente di effettuare lo streaming di un'applicazione all'interno di un ambiente chiuso senza possibilità di intervenire sul sistema operativo sottostante, anche senza ulteriori passaggi.

Amazon Workspaces, invece, effettua lo streaming di un intero ambiente desktop offrendo maggiore libertà, ma una minor personalizzazione nelle configurazioni, ad esempio per quanto riguarda la sicurezza.

Se hai bisogno di diverse applicazioni o se devi modificare ad esempio alcune chiavi del Registro di sistema in Windows, dovrai quindi lavorare necessariamente con Amazon Workspaces. Questo perché Amazon AppStream 2.0 non permette alcuna modifica una volta completata l'immagine.

Il metodo di connessione ad Amazon AppStream tramite un singolo URLè più diretto e semplificato, mentre Amazon Workspaces richiede una connessione tramite una connessione RDP.

In conclusione, perché utilizzare Amazon AppStream invece di Amazon Workspaces o delle alternative di altri fornitori di servizi?

La risposta è nell'obiettivo che vogliamo raggiungere: Amazon AppStream è stato creato per risolvere il problema specifico dello streaming di singole applicazioni personalizzate, mentre non si presta bene allo streaming di interi ambienti desktop; si può configurare per farlo, ma il risultato non sarà equiparabile a quello ottenuto tramite tool concorrenti.

Un caso d'uso concreto: CAD

Una delle applicazioni per cui Amazon AppStream è particolarmente consigliato ed indicato è quando si lavora con software CAD. Grazie alla facilità con cui è possibile selezionare tipo e dimensioni ottimali delle istanze, permette di ottimizzare notevolmente il costo dei workload notoriamente più "pesanti", risultando più economico rispetto all'acquisto diretto dell'hardware necessario per eseguire alcune delle applicazioni più GPU-intensive.

Le applicazioni CAD sono un tipico esempio di applicazioni di con altissima richiesta di GPU il cui prezzo medio per GB è relativamente alto.

Non ha senso configurare e riservare un'intera istanza desktop se l'unica cosa che utilizzerai è un'applicazione.

Inoltre, è possibile salvare senza problemi i file all'interno di un bucket S3, dove, se configurato correttamente, puoi utilizzare un endpoint VPC e spostare solo i file CAD (che altrove costerebbero molto a livello di traffico in uscita) all'interno della regione AWS, riducendo ulteriormente i costi!

Conclusione

Complessivamente, Amazon AppStream è un'opzione solida che può essere presa in considerazione quando si affronta la necessità di distribuire applicazioni in modo facile, scalabile, sicuro ed economico, rispettando anche l'ambiente degli utenti finali.

Personalmente ho trovato l'utilizzo relativamente semplice; non richiede molto sforzo nella configurazione dell'ambiente e dell'applicazione e la gestione delle immagini e delle flotte è ottimizzata e ben documentata.

Ci sono sicuramente alternative simili ad Amazon AppStream, come Citrix, VMWare e Microsoft, ma ognuna di queste ha i propri casi d'uso preferiti. Il consiglio è quindi quello di valutare attentamente i pro e i contro di ciascun fornitore alla luce del nostro obiettivo finale.

Se siete interessati ad approfondire lo streaming delle applicazioni, questo è il posto giusto! Saremo felici di dedicare uno dei nostri prossimi articoli a questo tema.

A presto con un nuovo post su Proud2beCloud!


About Proud2beCloud

Proud2beCloud è il blog di beSharp, APN Premier Consulting Partner italiano esperto nella progettazione, implementazione e gestione di infrastrutture Cloud complesse e servizi AWS avanzati. Prima di essere scrittori, siamo Solutions Architect che, dal 2007, lavorano quotidianamente con i servizi AWS. Siamo innovatori alla costante ricerca della soluzione più all'avanguardia per noi e per i nostri clienti. Su Proud2beCloud condividiamo regolarmente i nostri migliori spunti con chi come noi, per lavoro o per passione, lavora con il Cloud di AWS. Partecipa alla discussione!

Stefano Salvaneschi
DevOps Engineer @ beSharp. Sono la classica persona che non accetta che una domanda possa rimanere senza risposta. Sia quando ne faccio (molto spesso!), sia quando ne ricevo. Appassionato di IT fin da quando ero un bambino, sono da poco approdato nel mondo del Cloud. Nel tempo libero amo giocare ai videogames, a dungeons & dragons e ad altri giochi di ruolo tipicamente "nerd"... il tutto accompagnato da una buona birra!

Lascia un commento

Ti potrebbero interessare

Sviluppo remoto su AWS: da Cloud9 a VS Code