AWS Cloud
Caching – Erste Schritte

Ein Cache ist in der Informationstechnologie eine Hochgeschwindigkeitsspeicherebene, auf der eine Datenteilmenge meist temporär gespeichert wird und über die diese Daten bei zukünftigen Anfragen schneller bereitgestellt werden können als über den primären Speicherort dieser Daten. Über Caching können bereits abgerufene oder berechnete Daten effizient wiederverwendet werden. Die Daten in einem Cache werden im Allgemeinen auf Hardware mit schnellem Zugriff gespeichert, beispielsweise im RAM (Random Access Memory), gelegentlich auch in Verbindung mit einer Softwarekomponente. Zweck eines Cache sind schnellere Datenabrufzeiten durch Vermeidung eines Zugriffs auf die zugrunde liegende langsamere Speicherebene. Der Geschwindigkeit eines Cache steht als Nachteil seine geringere Kapazität gegenüber. In einem Cache wird in der Regel nur eine Teilmenge der Daten, und dies auch nur vorübergehend, gespeichert, während die Daten in einer Datenbank in der Regel vollständig und persistent sind.

Caches können für die verschiedensten Technologieebenen wie Betriebssysteme, Netzwerkebenen (einschließlich Content Delivery Networks (CDN) und DNS), Webanwendungen und Datenbanken genutzt werden.

Dank der hohen, durch RAM und In-Memory-Engines unterstützten Anforderungsraten bzw. E/As (Ein-/Ausgabevorgänge pro Sekunde) erhöht sich durch Caching die Datenabrufleistung erheblich und dies bei reduzierten Kosten. Um den gleichen Durchsatz mit herkömmlichen Datenbanken und datenträgerbasierter Hardware zu erreichen, wären erheblich mehr Ressourcen erforderlich. Diese zusätzlichen Ressourcen würden die Kosten in die Höhe treiben, ohne nur annähernd die geringe Latenz eines In-Memory-Cache zu erreichen.

Caching eignet sich insbesondere zur deutlichen Reduzierung der Latenz und zur Steigerung der E/As pro Sekunde bei vielen Anwendungen mit leseintensiven Arbeitslasten wie Frageportalen, Gaming, gemeinsamer Mediennutzung und sozialen Netzwerken. Beispielsweise können die Ergebnisse von Datenbankabfragen oder rechenintensiven Berechnungen, API-Anforderungen/Antworten und Webartefakte wie HTML-, JavaScript- und Bilddateien im Cache zwischengespeichert werden. Auch rechenintensive Arbeitslasten mit Datensatzmanipulationen wie Empfehlungsengines und HPC-Simulationen profitieren sehr von einer In-Memory-Datenebene, die als Cache fungiert. Bei solchen Anwendungen muss meist in Echtzeit über mehrere Maschinencluster, die Hunderte von Knoten umfassen können, auf sehr große Datenmengen zugegriffen werden. Aufgrund der geringen Geschwindigkeit der zugrunde liegenden Hardware wäre die Verarbeitung solcher Datenmengen bei einem datenträgerbasierten Speicher ein erheblicher Engpass für diese Anwendungen.

In einer verteilten Computing-Umgebung ermöglicht eine dedizierte Caching-Ebene die vom Cache unabhängige Ausführung der Systeme und Anwendungen mit ihren jeweils eigenen Lebenszyklen, ohne dass der Cache dadurch beeinträchtigt würde. Der Cache dient als zentrale Ebene, auf den diverse Systeme mit ihren eigenen Lebenszyklen und architektonischen Topologien zugreifen können. Besonders relevant ist dies in einem System, in dem Anwendungsknoten dynamisch skaliert werden müssen. Befindet sich der Cache hier auf demselben Knoten wie die Anwendung oder die Systeme, die die Anwendung nutzen, kann die Integrität des Cache durch eine Skalierung beeinträchtigt werden. Bei einem lokalen Cache profitiert zudem nur die lokale Anwendung von diesem Cache, die die Daten im Cache konsumiert. In einer verteilten Caching-Umgebung können die Daten mehrere Cache-Server abdecken und an einem zentralen Speicherort gespeichert werden, an dem sie allen Konsumenten dieser Daten von Nutzen sind.

diagram_cachingmicrosite
Layer Clientseitig DNS Web Anwendung Datenbank
Anwendungsfall Beschleunigung des Abrufs von Webinhalten von Websites (Browser oder Gerät) Domain-zu-IP-Auflösung Beschleunigen Sie den Abruf von Webinhalten von Web- bzw. Anwendungsservern. Verwaltung von Websitzungen (serverseitig) Beschleunigung der Anwendungsleistung und des Datenzugriffs Reduzierung der Latenz bei Datenbankabfragen
Technologien HTTP-Cache-Header, Browser DNS-Server HTTP-Cache-Header, CDNs, Reverse-Proxys, Web-Accelerators, Key-Value-Speicher Datenspeicher mit Key-Value-Struktur, lokale Caches Datenbankpuffer, Datenspeicher mit Key-Value-Struktur
Lösungen Browser-spezifisch Amazon Route 53 Amazon CloudFront, ElastiCache for Redis, ElastiCache for Memcached, Partnerlösungen Anwendungsframeworks, ElastiCache for Redis, ElastiCache for Memcached, Partnerlösungen  ElastiCache for Redis, ElastiCache for Memcached

Bei der Implementierung einer Cache-Ebene sollten Sie genau wissen, wie lange die Daten im Cache gespeichert werden. Ein erfolgreicher Cache führt zu einer hohen Trefferquote, das heißt, die angeforderten Daten sind bei der Abfrage vorhanden. Einen Cache-Fehlversuch erhalten Sie hingegen, wenn die angeforderten Daten nicht im Cache vorliegen. Durch Parameter wie Time to Live (TTL) kann der Datenablauf gesteuert werden. Eine hohe Verfügbarkeit der Cache-Umgebung, die zum Beispiel durch In-Memory-Engines wie Redis erreicht werden kann, mag eine weitere wichtige Überlegung sein. Im Gegensatz zum Daten-Caching von einem primären Standort kann eine In-Memory-Ebene in einigen Fällen auch als eigenständige Datenspeicherebene ausgeführt werden. In einem solchen Szenario ist es wichtig, für die in der In-Memory-Engine gespeicherten Daten angemessene Zielwerte für RTO (Recovery Time Objective – Wiederherstellungszeit nach einem Ausfall) und RPO (Recovery Point Objective – der letzte Punkt bzw. die letzte Transaktion, der/die bei einem Recovery wiederhergestellt wird) festzulegen, um festzustellen, ob eine eigenständige Datenspeicherebene empfehlenswert ist. Durch die diversen Designstrategien und -merkmale der verschiedenen In-Memory-Engines gibt es für nahezu jede RTO- und RPO-Anforderung eine geeignete Lösung.

Amazon ElastiCache ist ein Webservice, mit dem ein In-Memory-Datenspeicher oder -Cache auf einfache Weise in der Cloud bereitgestellt, betrieben und skaliert werden kann. Der Service verbessert die Leistung von Webanwendungen, da Sie die Möglichkeit haben, Informationen aus schnellen, verwalteten In-Memory-Datenspeichern abzurufen, anstatt sich vollständig auf langsamere datenträgerbasierte Datenbanken verlassen zu müssen.

Erfahren Sie in diesem technischen Whitepaper zu In-Memory-Caching, wie eine effektive Caching-Strategie implementiert werden kann.

ElastiCache_Deep_Dive_2016
ElastiCache intensiv: Bewährte Methoden und Nutzungsmuster
15
Verbessern der Anwendungsleistung

Da der Arbeitsspeicher um ein Vielfaches schneller als Festplattenspeicher ist, und zwar unabhängig davon, ob es sich um magnetischen Speicher oder SSDs handelt, können Daten aus In-Memory-Caches extrem schnell (im Sub-Millisekunden-Bereich) gelesen werden. Durch diesen deutlich schnelleren Datenzugriff erhöht sich die Gesamtleistung einer Anwendung enorm.

Reduzierung der Datenbankkosten

Eine einzige Cache-Instance ermöglicht Hunderttausende von E/A-Vorgängen pro Sekunde und ersetzt so potenziell mehrere Datenbank-Instances, wodurch sich die Gesamtkosten erheblich senken. Bedeutsam ist dies insbesondere dann, wenn sich die Gebühren für die primäre Datenbank aus dem Durchsatz errechnen. In einem solchen Fall können sich die Einsparungen u. U. in einem mehrfach zweistelligen Prozentbereich bewegen.

Reduzierung der Last

Durch Umleitung eines erheblichen Teils der Leselast von der Backend-Datenbank auf die In-Memory-Ebene kann Caching die Last Ihrer Datenbank senken. Dadurch vermeiden Sie selbst bei Unterbelastung eine langsamere Leistung und in Spitzenzeiten u. U. sogar einen Datenbankausfall.

Vorhersagbare Leistung

In Zeiten der Spitzenauslastung geraten viele der heutigen Anwendungen erheblich unter Druck. Sehen Sie sich zum Beispiel soziale Anwendungen während des Super Bowl oder an Wahltagen oder auch E-Commerce-Websites am "Schwarzen Freitag" an. Eine erhöhte Datenbanklast führt beim Datenabruf zu höheren Latenzen, sodass die Anwendungsleistung insgesamt unvorhersehbar wird. Dieses Problem lässt sich durch einen In-Memory-Cache mit hohem Durchsatz entschärfen.

Vermeidung von Hotspots

In vielen Anwendungen ist eine kleine Datenteilmenge gegenüber dem Rest der Datenbank wesentlich populärer und wird häufiger abgerufen. Diese sogenannten Hotspots einer Datenbank erfordern eine Überdimensionierung der Datenbankressourcen, die sich an den Durchsatzanforderungen der meistfrequentierten Daten bemisst. Eine solche Überdimensionierung haben Sie nicht mehr nötig, wenn Sie die populärsten Schlüsselwörter in einem In-Memory-Cache ablegen, und gleichzeitig sorgen Sie so dafür, dass auch die hochfrequentierten Daten jederzeit zuverlässig und schnell abrufbar sind.

Erhöhung des Durchsatzes

In-Memory-Systeme bieten nicht nur niedrigere Latenzen, sondern gegenüber vergleichbaren datenträgerbasierten Datenbanken auch wesentlich höhere Anforderungsraten (E/As pro Sekunde). Eine einzige Instance, die als verteilter Neben-Cache genutzt wird, kann Hunderttausende von Anforderungen pro Sekunde bedienen.

  • Anwendungsfälle

    Verschiedene Anwendungsfälle für Caching

    Datenbank-Caching

    Die Leistung Ihrer Datenbank hinsichtlich Geschwindigkeit und Durchsatz kann der wichtigste Faktor der Gesamtleistung Ihrer Anwendung sein. Und auch wenn die meisten Datenbanken heute eine ziemlich gute Leistung bieten, kann diese in vielen Anwendungsfällen nicht ausreichen. Datenbank-Caching bietet ein enormes Potenzial hinsichtlich der Durchsatzsteigerung und der Senkung der mit dem Datenabruf aus Backend-Datenbanken verbundenen Latenzzeiten, wodurch sich die Gesamtleistung Ihrer Anwendungen erheblich verbessert. Der Cache fungiert neben Ihrer Datenbank als parallele Datenzugriffsebene, die Ihre Anwendungen zur Leistungssteigerung nutzen können. Dabei kann eine Datenbank-Cache-Ebene vor jeden Datenbanktyp gelegt werden, auch vor relationale und NoSQL-Datenbanken. Gängige Techniken zum Laden von Daten in einen Cache sind das sogenannte Lazy Loading sowie Write-Through-Methoden. Weitere Informationen finden Sie hier.


    CDN

    Wenn Ihr Web-Datenverkehr geografisch verteilt ist, ist es sicherlich nicht immer möglich und aus Kostensicht auch ganz bestimmt nicht sinnvoll, Ihre gesamte Infrastruktur rund um den Globus zu replizieren. Ein Content Delivery Network (CDN) bietet Ihnen dagegen ein globales Netzwerk aus Edge-Standorten, über die Sie Ihren Kunden zwischengespeicherte Kopien Ihrer Webinhalte wie Videos, Webseiten, Bilder und vieles mehr bereitstellen können. Zur Reduzierung der Antwortzeiten nutzt das CDN den nächstgelegenen Edge-Standort zum Kunden bzw. zu dem Standort, an dem die Anforderung gestellt wurde. Der Durchsatz erhöht sich erheblich, sofern die Webassets zuverlässig aus dem Cache bereitgestellt werden. Bei dynamischen Daten können viele CDNs so konfiguriert werden, dass sie die Daten vom Ursprungsserver abrufen.

    Amazon CloudFront ist ein globaler CDN-Service, durch den die Bereitstellung Ihrer Websites, APIs, Videoinhalte und anderer Webassets beschleunigt wird. Der Service kann in andere Amazon Web Services-Produkte integriert werden und bietet Entwicklern und Unternehmen die Möglichkeit, Inhalte ganz einfach und ohne Mindestnutzungsverpflichtung schnell bereitzustellen. Weitere Informationen zu CDNs finden Sie hier.


    DNS

    Jede Domain-Anforderung im Internet fragt im Wesentlichen DNS-Cache-Server ab, um die mit dem Domain-Namen verbundene IP-Adresse aufzulösen. DNS-Caching kann auf verschiedenen Ebenen wie dem Betriebssystem, über ISPs und auf DNS-Servern erfolgen.

    Amazon Route 53 ist ein hochverfügbarer und skalierbarer Domain Name System (DNS)-Web-Service für die Cloud.


    Sitzungs-Caching

    HTTP-Sitzungen enthalten die zwischen Ihren Website-Benutzern und Ihren Webanwendungen ausgetauschten Benutzerdaten wie Anmeldeinformationen, Warenkorb- und Wunschlisten, zuvor angezeigte Elemente und so manches mehr. Wichtig für ein herausragendes Benutzererlebnis auf Ihrer Website ist eine effektive Verwaltung Ihrer HTTP-Sitzungen. Die Einstellungen und Präferenzen Ihrer Benutzer müssen unbedingt gespeichert werden, um reichhaltige und sinnvolle Benutzerkontexte bereitstellen zu können. In einer modernen Anwendungsarchitektur ist ein zentraler Datenspeicher für die Sitzungsverwaltung aus verschiedenen Gründen die ideale Lösung. So können zum Beispiel über alle Webserver konsistente Benutzererlebnisse bereitgestellt werden, Sitzungen bleiben persistenter, wenn Ihre Webserver-Flotte elastisch ist, und die Verfügbarkeit ist höher, wenn die Sitzungsdaten über Cache-Server repliziert werden.

    Weitere Informationen finden Sie hier.


    APIs

    Heute werden die meisten Webanwendungen auf APIs entwickelt. Eine API ist im Allgemeinen ein RESTful-Web-Service, auf den über HTTP zugegriffen wird und der Ressourcen bereitstellt, über die der Benutzer mit der Anwendung interagieren kann. Beim Design einer API sind u. a. folgende Aspekte zu berücksichtigen: die erwartete Arbeitslast der API, die Autorisierung für den Zugriff auf die API, die Auswirkung von Versionsänderungen auf die API-Konsumenten und zuvorderst die Benutzerfreundlichkeit der API. Dagegen muss eine API nicht immer eine Geschäftslogik instanziieren und/oder auf jede Anforderung eine Backend-Anforderung an eine Datenbank stellen. Manchmal ist die optimalste und kostengünstigste Antwort ein zwischengespeichertes Ergebnis der API. Insbesondere trifft dies zu, wenn Sie API-Antworten parallel zur Änderungsrate der zugrunde liegenden Daten im Cache speichern können. Sie stellen Ihren Benutzern beispielsweise eine API mit einer Produktliste bereit, und Ihre Produktkategorien ändern sich nur einmal täglich. Wenn wir nun davon ausgehen, dass die Antwort für eine Produktkategorie bei einem API-Aufruf den ganzen Tag lang identisch sein wird, dann wäre es völlig ausreichend, die API-Antwort einmal für diesen Tag im Cache zu speichern. Durch das Caching der API-Antwort verringern Sie den Druck auf Ihre Infrastruktur einschließlich deren Anwendungsserver und Datenbanken. Weitere Vorteile dieser Lösung sind schnellere Reaktionszeiten und eine leistungsstärkere API.

    Amazon API Gateway ist ein vollständig verwalteter Service, der das Erstellen, Veröffentlichen, Warten, Überwachen und Sichern von APIs für Entwickler in jeder beliebigen Größenordnung vereinfacht.


    Caching für Hybrid-Umgebungen

    In einer hybriden Cloud-Umgebung haben Sie eventuell Anwendungen, die in der Cloud ausgeführt werden, jedoch häufig auch Zugriff auf eine lokale Datenbank erfordern. Die Konnektivität zwischen der Cloud und der lokalen Umgebung kann in einem solchen Fall über verschiedene Netzwerktopologien einschließlich VPN und Direct Connect hergestellt werden. Und selbst wenn die Latenz zwischen der VPC und dem lokalen Rechenzentrum nur gering ist, wäre es vermutlich besser, die lokalen Daten in der Cloud-Umgebung zwischenzuspeichern, um die Datenabrufleistung insgesamt zu beschleunigen.


    Web-Caching

    Bei der Bereitstellung von Webinhalten für Ihre Benutzer kann ein großer Teil der durch den Abruf von Webassets (wie Bildern, HTML-Dokumenten oder Videos) verursachten Latenz durch das Caching dieser Artefakte erheblich verringert werden. Dadurch entfallen Plattenlesezugriffe und die Serverlast wird reduziert. Hierzu können sowohl auf Server- als auch auf Client-Seite verschiedene Web-Caching-Techniken eingesetzt werden. Beim serverseitigen Web-Caching wird in der Regel ein Web-Proxy verwendet, der die Web-Antworten der Webserver, denen er vorgeschaltet ist, speichert und dadurch die Last und Latenz dieser Server effektiv reduziert. Beim clientseitigen Web-Caching kann z. B. ein browserbasierter Cache verwendet werden, der eine zwischengespeicherte Version des zuvor besuchten Webinhalts speichert. Weitere Informationen zu Web-Caching finden Sie hier.


    Allgemeiner Cache

    Der Zugriff auf Daten aus dem Arbeitsspeicher ist um ein Vielfaches schneller als der Zugriff auf Daten von Festplatte oder SSD. Der Abruf von Daten aus dem Cache ist daher sehr vorteilhaft. Bei vielen Anwendungsfällen, die keine Unterstützung für Transaktionsdaten und keine festplattengestützte Persistenz erfordern, bietet Hauptspeicher-basierte Key-Value Stores, implementiert als eigenständige Datenbank, eine großartige Ausgangsbasis für die Entwicklung hochleistungsfähiger Anwendungen. Neben der hohen Geschwindigkeit profitieren die Anwendungen auch von einem hohen Durchsatz zu einem günstigen Preis. Referenzierbare Daten wie Produkt- oder Kategorielisten oder Profilinformationen eignen sich hervorragend für einen allgemeinen Cache. Weitere Informationen zum allgemeinen Cache finden Sie hier.


    Integrierter Cache

    Ein integrierter Cache ist eine In-Memory-Ebene, die Daten, auf die häufig zugegriffen wird, automatisch aus der Ursprungsdatenbank zwischenspeichert. In der Regel nutzt die zugrunde liegende Datenbank den Cache zur Beantwortung eingehender Datenbankanforderungen, sofern die Daten im Cache vorliegen. Dadurch verringert sich zum einen die Anforderungslatenz, zum anderen aber auch die CPU- und Speicherauslastung auf der Datenbank-Engine, so dass sich die Leistung der Datenbank erheblich steigert. Ein wichtiges Merkmal eines integrierten Cache ist es auch, dass die zwischengespeicherten Daten konsistent mit den von der Datenbank-Engine auf dem Datenträger gespeicherten Daten sind.

  • Branchen

    Verschiedene Anwendungsfälle für Caching

    Mobilgeräte

    Die rasche und fortschreitende Akzeptanz mobiler Geräte – und damit einhergehend die Abnahme des Interesses an herkömmlichem Computer-Equipment – ist geradezu ein Phänomen. Kaum verwunderlich, dass mobile Anwendungen heute ein unglaublich schnell wachsendes Marktsegment sind. Ob Spiele, kommerzielle Anwendungen oder Fitness-Apps, nahezu jedes Marktsegment bietet heute auch seine mobilgeräte-freundliche Anwendung. Aus Sicht der Anwendungsentwicklung unterscheidet sich die Entwicklung mobiler Anwendungen nicht besonders von jeder anderen Art der Anwendungsentwicklung. Es sind – auf Darstellungs-, Geschäfts- und Datenebene – die gleichen Aspekte zu berücksichtigen. Auch wenn sich die Darstellungsmöglichkeiten auf dem Bildschirm und die Entwicklungstools unterscheiden, haben alle Anwendungen das gemeinsame Ziel, ein herausragendes und engagierendes Benutzererlebnis bereitzustellen. Mit effektiven Caching-Strategien bieten Ihre mobilen Anwendungen die Leistung, die Ihre Benutzer erwarten – und dies bei einer enormen Skalierbarkeit und weitaus geringeren Gesamtkosten.

    Der AWS Mobile Hub ist eine Konsole, die integrierte Erfahrung für die Entdeckung, die Konfiguration und den Zugriff auf AWS Cloud-Services zum Erstellen, Testen und Überwachen der Nutzung von mobilen Apps bereitstellt.


    IoT

    Das Internet of Things (IoT) ist ein Konzept hinter der Erfassung und Bereitstellung gerätegestützter Informationen aus der physischen Welt, die über Gerätesensoren erfasst und an das Internet oder Anwendungen, die die Daten verarbeiten, weitergeleitet werden. Der Wert des IoT besteht in der Entschlüsselung und Analyse der erfassten Daten nahezu in Echtzeit, was es wiederum dem verarbeitendem System bzw. den konsumierenden Anwendungen ermöglicht, sehr schnell auf die Daten zu reagieren. Nehmen wir als Beispiel ein Gerät, das GPS-Koordinaten überträgt. Ihre IoT-Anwendung könnte nun darauf reagieren, indem sie interessante Punkte (POIs) relativ zur Nähe dieser Koordinaten vorschlägt. Wären darüber hinaus die Präferenzen des Gerätebenutzers gespeichert, könnten diese Empfehlungen der jeweiligen Person angepasst werden. Bei diesem Beispiel trägt insbesondere die Geschwindigkeit, mit der die Anwendung auf die Koordinaten reagiert, zum individuellen Benutzererlebnis bei. Hier kommt Caching ins Spiel. So könnten beispielsweise die POIs mit den Geokoordinaten in einem Datenspeicher mit Key-Value-Struktur (z. B. Redis) gespeichert werden, um den Datenabruf zu beschleunigen. Aus Sicht der Anwendungsentwicklung können Sie Ihre IoT-Anwendung praktisch für jedes beliebige Ereignis codieren, sofern ein programmgesteuertes Mittel zur Umsetzung vorhanden ist. Bei der Entwicklung einer IoT-Architektur spielen insbesondere die folgenden Aspekte eine wichtige Rolle: die mit der Analyse der erfassten Daten verbundene Reaktionszeit, Design einer architektonischen Lösung, die der Anzahl der beteiligten Geräte entsprechend skaliert werden kann sowie die Kosteneffizienz.

    AWS IoT ist eine verwaltete Cloud-Plattform, mit der verbundene Geräte einfach und sicher mit Cloud-Anwendungen und anderen Geräten zusammenarbeiten können.

    Weitere Informationen finden Sie im Blog-Beitrag Managing IoT and Time Series Data with Amazon ElastiCache for Redis.


    AdTech

    Moderne AdTech-Anwendungen sind in puncto Leistung höchst anspruchsvoll. Ein Beispiel für erhebliche Zuwachsraten im Bereich der AdTech ist das Real-Time Bidding (RTB) – ein Echtzeit-Bietprozess für die Platzierung von Online-Werbung. Dabei handelt es sich um einen auktionsbasierten Ansatz der digitalen Anzeigenplatzierung in Echtzeit auf feinster Impression-Ebene. RTB war 2015 – mit 74,0 Prozent aller programmgesteuert erworbenen Werbeplätze bzw. 11 Milliarden USD Umsatz allein in den USA (nach eMarketer Analysis) – die dominante Transaktionsmethode. Bei der Entwicklung einer RTB-App sollte Ihnen bewusst sein, dass eine Millisekunde bereits den Unterschied zwischen Erfolg und Irrelevanz eines Angebots ausmachen kann. Das Abrufen der Bidding-Informationen aus der Datenbank muss also extrem schnell erfolgen. Hier bietet sich Datenbank-Caching mit seinem Potenzial, Bidding-Informationen im Sub-Millisekunden-Bereich abzurufen, als großartige Lösung für derart hohe Leistungsanforderungen an.


    Gaming

    Ohne Interaktivität läuft heute in praktisch keinem modernen Spiel mehr etwas. Nichts ist frustrierender für den Spieler als ein langsames oder reaktionsarmes Spiel – ein solches Spiel hat keine Chancen. Noch höher sind die Leistungsanforderungen bei mobilen Multiplayer-Spielen, bei denen die Aktion eines Spielers in Echtzeit bei den Mitspielern ankommen muss. Für den flüssigen Spielablauf spielt Caching – mit Abfragezeiten im Sub-Millisekunden-Bereich für häufig abgerufene Daten – eine entscheidende Rolle. Auch sind Hotkey-Probleme abzufangen, wenn die gleichen Daten durch schnelle Tastenklicks mehrerer Spieler mehrmals abgerufen werden, wie es zum Beispiel bei der Frage "Wer sind aktuell die Top-10-Spieler nach Punktestand?" oft der Fall ist.

    Weitere Informationen zur Entwicklung von Spielen auf AWS finden Sie hier.



    Medienprodukte

    Medienunternehmen kämpfen oft damit, ihren Kunden große Mengen statischer Inhalte bereitstellen zu müssen, wobei sich die Anzahl der Leser bzw. Betrachter ständig ändert. Beispielhaft sind hier Video-Streaming-Services wie Netflix oder Amazon Video, die große Mengen an Video-Inhalten an ihre Nutzer streamen. Hier bietet sich als perfekte Lösung ein Content Delivery Network an, das Daten in einem weltweit verteilten Netz an Caching-Servern speichert. Eine weitere Herausforderung von Medienanwendungen sind die unregelmäßigen und unvorhersehbaren Spitzenlasten. Stellen Sie sich nur einmal einen Blog auf einer Website vor, der so ganz nebenbei von einem Teenie-Idol ins Rampenlicht gerückt wurde, oder die Website eines Fußballvereins während des Super Bowl. Eine so große Nachfrage nach einer nur kleinen Teilmenge an Inhalten ist für die meisten Datenbanken eine Herausforderung, da diese meist durch ihren Durchsatz pro Schlüssel eingeschränkt sind. Da Arbeitsspeicher wesentlich mehr Durchsatz bietet als ein physischer Datenträger, wäre ein Datenbank-Cache mit Verlagerung der Lesezugriffe auf einen In-Memory-Cache die ideale Lösung.


    E-Commerce

    Moderne E-Commerce-Anwendungen mit ihrem Angebot an personalisierten Shopping-Erlebnissen einschließlich Produktempfehlungen in Echtzeit auf Basis der Daten und des Kaufverhaltens des Benutzers werden immer komplexer und ausgefeilter. Häufig umfasst die Personalisierung auch einen Blick auf das soziale Netzwerk des Benutzers – empfohlen wird auch, was Freunden gefällt oder von diesen gekauft wurde. Die Menge der zu verarbeitenden Daten wächst, die Geduld der Kunden hingegen nicht. Dass die Anwendung in Echtzeit funktioniert, ist daher kein Luxus, sondern Notwendigkeit. Kritischer Aspekt der Anwendungsleistung ist eine wasserdichte Caching-Strategie. Sie kann den Unterschied zwischen Erfolg und Misserfolg, zwischen einem Verkauf und dem Verlust eines Kunden bedeuten.

    Ein Beispiel für eine E-Commerce-Architektur finden Sie hier.


    Soziale Medien

    Social Media-Apps haben die Welt im Sturm erobert. Soziale Netzwerke wie Facebook, Twitter, Instagram und Snapchat ziehen unglaubliche Mengen an Benutzern in ihren Bann, die immer mehr Inhalte konsumieren. Wenn ein Benutzer seinen Feed öffnet, erwartet er aktuelle und personalisierte Inhalte nahezu in Echtzeit. Dass es sich hier nicht um statische Inhalte handelt, ist klar, denn jeder Benutzer hat andere Freunde, Bilder, Interessen usw. Dadurch erhöht sich die Komplexität der Entwicklung der zugrunde liegenden Plattform um ein Vielfaches. Gerade im Umfeld größerer Veranstaltungen, Sportevents und politischer Ereignisse müssen es Social Media-Apps mit großen Lastspitzen aufnehmen können. Eine solche Last-Resilienz verbunden mit Echtzeit-Performance wird durch verschiedene Caching-Ebenen erreicht: einem Content Delivery Network für statische Inhalte wie Hintergrundbilder, einem Sitzungs-Cache für die Aufzeichnung der aktuellen Sitzungsdaten eines Benutzers und einem Datenbank-Cache für den schnellen Zugriff auf häufig abgerufene Daten wie die neuesten Benachrichtigungen enger Freunde und die letzten eingestellten Bilder.


    Gesundheitswesen

    Das Gesundheitswesen befindet sich inmitten einer digitalen Revolution, die Gesundheits- und Pflegeleistungen immer mehr Patienten auf der ganzen Welt zugänglich macht. Einige Anwendungen ermöglichen Patienten bereits Arztkonsultationen per Video, und die meisten größeren Anbieter bieten Anwendungen an, über die Patienten Testergebnisse einsehen und mit medizinischem Personal interagieren können. Im Fitness- und Wellness-Bereich gibt es eine Vielzahl von Anwendungen von der Aufzeichnung spezifischer Sensoraktivitäten eines Benutzers (z. B. FitBit und Jawbone) bis hin zu einem umfassenden Fitness-Coaching. Allen gemein ist diesen Anwendungen ein hohes Maß an Interaktivität, die leistungsstarke und schnelle Anwendungs-, Geschäfts- und Datenebenen erfordern. Mit einer effektiven Caching-Strategie erreichen Sie eine schnelle Leistung, reduzieren Sie Ihre Infrastrukturkosten und können Sie Ihre Kapazitäten jederzeit der Nachfrage entsprechend anpassen.

    Weitere Informationen zur Entwicklung von Anwendungen im Bereich Gesundheitswesen und Wellness auf AWS finden Sie hier.


    FinTech

    Die Art und Weise, wie wir heute Finanzdienstleistungen abwickeln, hat sich in den letzten Jahren rasant entwickelt. Heutige Anwendungen umfassen den Zugriff auf Bank- und Versicherungsdienstleistungen, Betrugserkennung, Investment-Dienstleistungen, Optimierung der Kapitalmärkte über Echtzeit-Algorithmen und vieles mehr. Echtzeitzugriff auf die Finanzdaten eines Kunden bereitzustellen und ihm zu erlauben, Transaktionen wie Geldüberweisungen oder Zahlungen selbst durchzuführen, sind eine Herausforderung. Zunächst gelten die gleichen Einschränkungen wie bei jeder anderen Anwendung, bei der ein Benutzer in nahezu Echtzeit mit der Anwendung interagieren möchte. Darüber hinaus stellen Finanzanwendungen jedoch weit höhere Anforderungen wie ein höheres Maß an Sicherheit und Betrugserkennung. Eine effiziente Architektur einschließlich einer aus mehreren Ebenen bestehenden Caching-Strategie ist Voraussetzung, um die von den Benutzern erwartete Leistung zu erreichen. Je nach spezifischen Anforderungen der Anwendung sollten die Caching-Ebenen Folgendes beinhalten: einen Sitzungs-Cache zum Speichern der Sitzungsdaten der Benutzer, ein Content Delivery Network für die Bereitstellung statischer Inhalte sowie einen Datenbank-Cache für den schnellen Zugriff auf häufig abgerufene Daten wie die letzten zehn Käufe eines Kunden.

    Weitere Informationen zu Anwendungen im Bereich Finanzdienstleistungen auf AWS finden Sie hier.

Mit einem vollständig verwalteten Service wie Amazon ElastiCache sind die ersten Schritte des Caching in der Cloud ganz einfach. Die Komplexitäten der Einrichtung und Verwaltung Ihres Cache wird Ihnen dadurch abgenommen – und Sie können sich ganz auf das konzentrieren, was Ihrem Unternehmen tatsächlich Wert bringt. Registrieren Sie sich noch heute für Amazon ElastiCache.

Erste Schritte mit Amazon ElastiCache