Dazu werden die zwei Varianten „Virtual Desktop“ und „Application Streaming“ anhand der AWS Implementierung vorgestellt und verglichen. Das Augenmerk liegt dabei auf den infrastrukturellen Voraussetzungen. Die Verwaltung der virtuellen Umgebungen und der Software würde den Rahmen eines einzelnen Artikels weit übersteigen.
Desktop
Virtuelle Desktops heißen “WorkSpaces” bei AWS.
Wer glaubt, bei WorkSpaces handelt es sich nur um das Starten eines virtuellen Rechners und der Verbindung per Browser dorthin, täuscht sich. Bevor man die eigentlichen virtuellen Desktops aufsetzen kann, sind einige Vorbereitungen notwendig: Netzwerke müssen angelegt, Zugiffsbeschränkungen und Freigaben vorbereitet sowie der spätere Internet-Access der WorkSpaces, so denn gewünscht, sichergestellt werden.
Voraussetzung: Netzwerk
Zunächst sollte man prüfen, ob die Virtual Private Cloud (VPC), in der die WorkSpaces laufen sollen, die notwendigen Voraussetzungen erfüllt und wenn nicht, diese einpflegen. Dabei geht es konkret um drei Punkte: Netzwerk-Design, Internet-Access und Sicherheit/Zugriffbeschränkung.
Die virtuellen Desktops werden netzwerktechnisch später Subnetzen zugeordnet werden. Um ihnen bei Bedarf im weiteren Verlauf Zugriff auf das Internet zu gewähren, gibt es drei Varianten:
- NAT
- Dynamische IP
- Manuelle IP
Empfohlen wird NAT. Für eine Handvoll oder gar nur einen einzelnen WorkSpace wäre das natürlich übertrieben, jedoch macht es durchaus Sinn, eine ganze Farm von WorkSpaces via NAT mit dem Internet zu verbinden, da so IPv4 Adressen eingespart werden. Also genau so, wie es bei realen Desktops im Unternehmen auch gehandhabt würde. Grundsätzlich ist auch IPv6 möglich, jedoch gibt es da noch (?) Beschränkungen was die Ausstattungsvarianten der Virtuellen Desktops angeht: die beiden leistungsfähigsten Bundles „Performance“ und „Graphics“ unterstützen keine automatische IPv6-Zuweisung.
Abbildung 1 zeigt, wie das Design mittels NAT-Gateway aussieht. Die in der Abbildung dargestellten Tabellen entsprechen den Routingtabellen der Subnetze: während die WorkSpaces das NAT-Gateway als Default Gateway eingestellt haben, nutzt das Default Gateway selbst natürlich das Internet Gateway des VPC.
Abbildung 1: WorkSpaces Design mit NAT
Gemäß der Sicherheitsmaxim „Microsegmentierung“ legt man als nächstes die Access-Listen und Security Groups für die WorkSpaces an. Dabei müssen eine Reihe von Ports geöffnet werden, damit die verschiedenen Remote-Zugänge funktionieren. Der Remote-Client benötigt für das PCoIP den Port 4172 für UDP und TCP, für den Webzugang braucht man die UDP (!) und TCP Ports 80 und 443. Hinzu kommt noch inbound der TCP Port 8200 für das Management und UDP Port 55002 für PCoIP Streaming.
Zu diesen Sicherheitsregeln, die nur für die Verwaltung und den Zugriff auf die WorkSpaces benötigt werden, kommen natürlich noch sämtliche Sicherheitsregeln, die man für andere Systemdienste innerhalb der Subnetze benötigt (bspw. für das Active Directory, bzw. den AD-Connector, DNS, NTP, etc.). Außerdem muss man ggf. Ports für die Anwendungen freigeben, die später auf den virtuellen Desktops laufen.
Abbildung 2 zeigt ein Beispiel für eine ausgehende Access-Liste. Man kann schon an diesem minimalistischen Beispiel sehen, dass das sehr schnell sehr unübersichtlich werden kann. Insbesondere wenn man sowohl mit Access-Listen als auch mit Security Groups arbeitet. Eine aktuelle und übersichtliche Dokumentation ist hier Pflicht!
Abbildung 2: Beispiel für eine ausgehende ACL für WorkSpaces
Will man die Sicherheit weiter erhöhen, so kann man den Zugriff auf die WorkSpaces einschränken. Per Default ist der Zugriff von allen Geräten mittels Client aus möglich, der Zugriff über Webbrowser hingegen nicht. Das kann jedoch leicht auf bestimmte Clients eingeschränkt werden. Insb. ist es ratsam, Tablets und erst recht Smartphones auszuschließen, da die meisten Windows Anwendungen dafür nicht geeignet sind. Das spart dann jede Menge Nerven beim Support. Ein wirklicher Sicherheitsgewinn ist das jedoch noch nicht. Der nächste Schritt ist die Arbeit mit Zertifikaten: man kann den Zugriff auf die WorkSpaces so beschränken, dass der Client beim Verbindungsaufbau ein gültiges, bekanntes Zertifikat vorweisen muss, dessen Gegenpart zuvor im Directory hinterlegt wurde. So kann man sicherstellen, dass nur „zertifizierte“ Clients Zugriff auf die eigenen WorkSpaces haben. Insbesondere für mobile User, bei denen eine Zugriffsbeschränkung über die IP Adressen mittels Access-Listen oder Security Group nicht möglich ist, ist das eine gute Alternative.
Voraussetzung: Directory Service
Wer Workspaces betreiben möchte, muss die späteren User der virtuellen Desktops in einem Active Directory speichern und dort deren Zugriffsrechte verwalten. Hat man für AWS noch keine AD-Funktionalitäten konfiguriert, muss man das zwingend tun, bevor man mit den WorkSpaces beginnen kann. Dafür stehen einem mehrere Varianten zur Verfügung:
- „Microsoft AD“
Damit meint Amazon ein bei AWS gehostetes AD.
- „AD Connector“
Wer ein eigenes, on-premise AD betreibt, kann dieses mit der AWS Cloud verknüpfen und so seine User im eigenen RZ pflegen.
- „Cross trust“
In diesem Fall betreibt man zwei Microsoft AD, eines on-premise, eines in der Cloud. Zwischen beiden kann dann ein Vertrauensverhältnis etabliert werden, so dass man letztlich wieder die lokalen User für die WorkSpaces nutzen kann.
- „Simple AD“
Hinter „Simple AD“ verbirgt sich ein Microsoft kompatibles AD, das jedoch auf Samba 4 gehostet wird. Dieses läuft dann ebenso wie das Microsoft AD in der AWS Cloud.
Vorteil des Simple AD ist, dass es kostengünstiger ist, der Nachteil ist, dass es zur Zeit in Frankfurt nicht zur Verfügung steht.
Wer WorkSpaces zunächst einmal ausprobieren möchte, ohne großen Aufwand in das AD zu stecken, sollte die Simple AD Variante nutzen. Innerhalb der EU kann man das Stand heute allerdings nur in der Region Irland. Die Performance dürfte auch für den Realbetrieb in den meisten Fällen völlig ok sein. Unsere eigene Erfahrung ist, dass das für Tests allemal ausreicht.
Legt man seinen ersten WorkSpace an, so hat man die Option Quick und Advanced. Wie schon in einem anderen Artikel zum Thema Netzwerkdesign in der Cloud erwähnt, sollte man keinesfalls auf den Gedanken kommen, die Quick Variante zu nutzen, die ist nämlich wirklich „dirty“. Egal ob man schon eigene Subnetze, VPCs oder ein AD eingerichtet hat, bei Quick wird all das nochmal angelegt. Damit braucht man nachher viel Zeit, um all das wieder los zu werden, außerdem zahlt man für den Nutzungszeitraum doppelt: für das Test AD und für das bereits in Betrieb genommene.
Wer also noch kein AD oder AD Verküpfung für AWS angelegt hat, sollte damit beginnen, ein Simple-AD anzulegen. Um ein AD erfolgreich in Betrieb zu nehmen, benötigt man mindestens zwei Subnetze jeweils in einer anderen Availability Zone. Auch diese Subnetze sollte man, falls nicht bereits vorhanden, besser vorher bereits angelegt haben. Die User kann man später noch hinzufügen.
Anlegen der WorkSpaces
Ist alles vorbereitet, kann man seinen ersten WorkSpace anlegen: zunächst wählt man das AD aus, dem der virtuelle Client zugeordnet werden soll. Anschließend bestimmt man einen oder mehrere User als Nutzer des Clients. Dabei ist es sowohl möglich neue User anzulegen als auch bestehende aus dem AD-Verzeichnis auszuwählen. Danach wählt man das Betriebssystem des Clients und dessen virtuelle Hardwareumgebung aus. Zur Verfügung stehen Stand heute nur die Betriebssysteme Windows 7 und Windows 10. Windows 8 sucht man vergebens, ebenso wie Linux. Bei der virtuellen Hardwareumgebung werden verschiedene Klassen unterschieden:
- Standard
2 virtuelle CPUs, 4 GB RAM, 80 GB Root-Partition, 50 GB User-Partition
- Value
1 virtuelle CPUs, 2 GB RAM, 80 GB Root-Partition, 10 GB User-Partition
- Performance
2 virtuelle CPUs, 7.5 GB RAM, 80 GB Root-Partition, 100 GB User-Partition
- Graphic
8 virtuelle CPUs, 15 GB RAM, 1 GPU, 4 GB Videospeicher, 100 GB Root-Partition, 100 GB User-Partition
- Power
4 virtuelle CPUs, 16 GB RAM, 175 GB Root-Partition, 100 GB User-Partition
Die Preise reichen von 8 USD pro Monat zzgl. 0,23 USD pro Stunde für die kleinste „Value“ Variante bis hin zu 23 USD pro Monat zzgl. 1,97 USD pro Stunde für die Graphikvariante. Die Preise gelten für Dublin, in Frankfurt ist die Monatsgebühr jeweils 1 USD höher und auch die Nutzungsgebühr pro Stunde ist einige Cent teurer. Wem der Root- oder User-Speicherplatz nicht reicht, kann diesen erhöhen – kostenpflichtig versteht sich.
Neben dem Betriebssystem und der Hardware kann man bei Bedarf auch gleich noch ein Microsoft Office mit installieren lassen.
Als Nächstes legt man den „Running Mode“ fest. Es stehen zwei zur Auswahl:
- AlwaysOn
Das bedeutet, dass der Client jederzeit sofort zur Verfügung steht.
- AutoStop
In diesem Modus wird der Client nach einiger Zeit Nicht-Benutzung heruntergefahren und erst bei Bedarf wieder neu gestartet. Die Zeit zwischen letzter Nutzung und Herunterfahren gibt man beim Anlegen des WorkSpaces vor. Möglich sind dabei Zeiten zwischen einer Stunde und zwei Tagen, allerdings können nur volle Stunden definiert werden.
Die Vor- und Nachteile beider Running Modes liegen auf der Hand. Bei AlwaysOn können die User ohne Zeitverzug auf die Ressourcen des WorkSpaces zugreifen. Das sorgt für glückliche User, allerdings auch für hohe Kosten, da die Nutzungskosten durchgehend gezahlt werden müssen. AutoStop hat den Vorteil, dass die Betriebskosten deutlich niedriger sind, allerdings muss der Nutzer darauf warten, dass das System erstmal bootet, bevor er auf die Ressourcen zugreifen kann. Der Start eines virtuellen Deskops dauert durchaus mehrere Minuten.
Zuletzt legt man fest, ob die Festplattenpartition verschlüsselt werden sollen oder nicht. Für den Fall, dass das gewünscht ist, gibt man den Schlüssel an, der genutzt werden soll und ob das sowohl für die User- als auch für die Root-Partition oder nur für eine der beiden gelten soll.
Nun kann der WorkSpace initialisiert werden.
Clients
Dem User stehen anschließend verschiedene Zugangsmöglichkeiten zur Verfügung. Für die Betriebssysteme Windows, Mac OS und Chromebook sowie den Tablets iPad, Android und wenig überraschend auch dem Fire Tablet stehen Clients zur Verfügung. Diese lädt man herunter und installiert sie auf den jeweiligen Systemen. Zusätzlich gibt es noch die Option eines Zugriffs über einen Web-Browser. Welche Clients man zulassen möchte, kann man einstellen. Das gilt auch für den Web-Browser-Zugriff, der per default Einstellung zunächst nicht möglich ist.
Als Client kommen neben den von Amazon bereit gestellten Client-Anwendungen alle PCoIP-Clients infrage. Amazon stellt eine Liste kompatibler Geräte zur Verfügung. Es wird jedoch empfohlen diese vor Anschaffung zu testen.
Interessant ist die Auflösung, die sich mit den Clients erreichen lässt:
- Bis zu zwei 4K Monitore (3840 x 2160) oder
- Bis zu vier Full-HD Monitore (1920 x 1200)
Dabei ist allerdings zu beachten, dass diese hohe Auflösung nur mit den Power Paketen zu realisieren ist. Ferner steigt natürlich der Bandbreitenbedarf pro Arbeitsplatz je größer die Auflösung ist. Dazu später mehr.
Unternehmensfirewall
Bevor man die User nun aber wirklich einladen kann, muss man noch eine ganze Reihe von Sicherheitseinstellungen auf der Firewall vornehmen.
Zum einen wären da die entsprechenden Portfreigaben. Die Ports entsprechen dabei denen, die zuvor für die Access-Listen und Security Groups für das AWS Netz schon genannt wurden.
Jedoch können die sich je nach Zugangsvariante unterscheiden: die Workspace-Clients benötigen erheblich mehr an Firewall Regeln als es der Browser Zugriff tut. Das muss man je nach eigener Firewall beachten. Arbeitet man bspw. mit einer Next Generation Firewall, die User identifizieren kann, müssen für die User die richtigen Regeln definiert werden. Grundsätzlich liegt der Unterschied darin, dass der Client für das Streaming PCoIP als Protokoll nutzen. PC over IP (kurz PCoIP) streamt bevorzugt über UDP 4172, es kann aber als Backup auch TCP. Wie dem auch sei, dieser Port muss auf jeden Fall bei Nutzung des Clients frei gegeben werden. Wer diese Freigabe weiter einschränken will, kann im AWS Administration Guide nachlesen, welche IP-Adressen und welche DNS-Namen für welche Dienste freigegeben werden müssen, damit der Zugriff funktioniert. Diese sind naturgemäß für die verschiedenen AWS-Regionen unterschiedlich.
Doch auch der Zugriff über Web-Browser gestaltet sich nicht unkompliziert. Zunächst einmal werden nur Chrome und Firefox unterstützt und diese verhalten sich auch noch unterschiedlich: für den Web-Access werden die Ports 53 (DNS) sowie 80 und 443 benötigt. Für das DNS kann natürlich wie gehabt der Firmen-DNS-Server genutzt werden, so dass dafür keine Firewall-Regeln erforderlich werden. Spannender werden die Ports 80 für http und 443 für https, denn der Streaming-Server möchte statt wie gewohnt TCP lieber UDP nutzen. Falls UDP nicht funktioniert, steht grundsätzlich TCP zur Verfügung. Das funktioniert zwar mit Chrome, jedoch nicht mit Firefox. Für letzteren gilt, entweder klappt die Verbindung mittels UDP oder es geht gar nichts. Nun ist http bzw. https über UDP aber ausgesprochen ungewöhnlich und die meisten Firewalls werden es blockieren.
Bandbreiten und Roudtrip
Wesentlich für das Usererlebnis sind die Verbindungsparameter Delay und Bandbreite. AWS gibt an, dass die Roundtrip-Zeit für ein ungetrübtes Virtual-Desktop-Erlebnis unter 100ms bleiben sollte; zwischen 100 und 250ms wäre arbeiten zwar möglich, aber die Performance würde darunter leiden. Darüber hinaus sollte man es besser bleiben lassen. Auf Basis dieser Roudtrip-Zeit gibt Amazon an, dass die maximale Entfernung zwischen dem Rechenzentrum von AWS und dem Client 3600km nicht überschreiten sollte.
Abbildung 3: Bandbreitenbedarf WorkSpace Client
Schwieriger wird es bei der Frage, wieviel Bandbreite pro Client benötigt wird. Das genutzte PCoIP-Protokoll für den Remote-Zugriff ist grundsätzlich dynamisch, insbesondere wenn nichts passiert, wird auch wenig übertragen. Da Bilder übertragen werden, spielt die Anzahl und Größe der Bildschirme auf Seite des Clients natürlich eine Rolle. Entsprechend findet man bei AWS keine konkreten Angaben über die Bandbreite.
Abbildung 3 zeigt eine Wiresharkaufzeichnung einer laufenden WorkSpace-Verbindung mittels Client. Gestreamt wurde auf einen Monitor mit einer Auflösung von 1920×1080. In den ersten 120 Sekunden wurde im Internet gesurft, dabei wurde bewusst eine Bilddatenbank aufgerufen, so dass sich möglichst viele Pixel in kurzer Zeit ändern. Wie man sehen kann, übersteigt der Bedarf 600kByte/s nicht, was immerhin 4,8 Mbit/s für einfaches Surfen in HD sind. Nach ca. 2 Minuten wurde dann ein Video auf youtube gestartet. Man erkennt leicht den sprunghaften Anstieg auf knapp 3,6 Mbytes/s, das sind dann schon satte 28,8 Mbit/s für einen einzelnen User mit einem Standard-Monitor.
Abbildung 4: Direkter Zugriff auf dasselbe youtube Video
Zum Vergleich zeigt Abbildung 4 den Bandbreiten-Bedarf, wenn man auf demselben Monitor das Video direkt von youtube streamt. Man sieht sehr schön den progressiven Download, denn nach 75sec ist das komplette Video heruntergeladen, gestoppt wurde Wireshark, nachdem es vollständig durchgelaufen war. Der Download hat eine Geschwindigkeit von 700 kByte/s, also 5,6 Mbit/s. Zudem läuft er nur für ca. die Hälfte der Wiedergabezeit. Er hätte bei schlechterer Verbindung also problemlos gestreckt werden können, ohne dass der User etwas davon gemerkt hätte.
Bedenkt man, dass bis zu 4 Full-HD bzw. 2 Ultra-HD Monitore in Verbindung mit dem Cient genutzt werden können, summiert sich je nach Anwendung ein riesiger Bandbreitenbedarf für einen einzelnen User auf. Andererseits zeigt das Beispiel in Abbildung 3 aber auch, dass der Bedarf stark davon abhängt, was ein User gerade macht. Eine verlässliche Aussage für den Bedarf pro User ist somit seriös nicht möglich. Wer WorkSpaces betreiben will, sollte diese nur sukzessive Ausrollen und dabei ständig die Auslastung der Verbindung überwachen.