Januar 2021

Auch wäh­rend der Jah­res­wende, die durch die re:Invent-Events von AWS geprägt war, gab es einige Neue­run­gen und Ergän­zun­gen im Ange­bot des Clou­dan­bie­ters. Die­ser Blog­bei­trag stellt einen Aus­schnitt aus den Neue­run­gen und Ankün­di­gun­gen der Monate Dezem­ber 2020 und Januar 2021 dar, erhebt aber nicht den Anspruch auf Voll­stän­dig­keit. Auf­grund der Fülle an Ankün­di­gun­gen, die wäh­rend der re:Invent getä­tigt wor­den sind, liegt das Haupt­au­gen­merk die­ser Liste auf Ver­än­de­run­gen, die bereits ver­öf­fent­licht wor­den sind und bei denen wir von einem direk­ten Ein­fluss auf Kun­den im Versicherungs‑, Finanz- und Retail­be­reich aus­ge­hen. Ein beson­de­rer Fokus die­ses Arti­kels liegt hier­bei auf den Neue­run­gen der Ser­vices Ama­zon S3, AWS Lambda, AWS Sage­Ma­ker und AWS CloudS­hell, sowie den neu hin­zu­ge­kom­men fully mana­ged Ser­vices von Graf­ana und Prometheus. 

Ama­zon Simple Sto­rage Ser­vice (S3)

Die Monate Dezem­ber und Januar brach­ten für den Objekt­da­ten­spei­cher S3 einige kleine, aber nütz­li­che Ände­run­gen mit sich. Die inter­es­san­tes­ten Ände­run­gen bezie­hen sich auf die Kon­sis­tenz im Zusam­men­spiel der API-Funk­tio­nen wie „PUT“„GET“ oder „List“, einer Erwei­te­rung der Ver­füg­bar­keit von AWS Pri­v­ate­Link sowie der Repli­zie­rung von Buckets. 

Erst schrei­ben, dann lesen

Cloud-Objekt­da­ten­spei­cher bedie­nen dank ihrer hohen Erreich­bar­keit und ihrer fle­xi­blen Ska­lie­rung per­fekt die Kri­te­rien, die ein Data Lake erfül­len muss. Für die Daten selbst ist der Data Lake aller­dings noch nicht der finale Ort. Häu­fig ist es so, dass die Daten hier ledig­lich per­sis­tiert wer­den und eine direkte Wei­ter­ver­ar­bei­tung der Daten erfol­gen soll. Um dies zu gewähr­leis­ten, kann mit den API-Funk­tio­nen von S3 gear­bei­tet wer­den: Mit­tels „Put“-Befehl kön­nen Daten in den Data Lake ein­ge­speist wer­den und mit­tels „Get“ von ihrem eigent­li­chen Ziel­ort abge­fragt wer­den. Bis vor kur­zem war es so, dass ein klei­nes Zeit­fens­ter nach einem „Put“-Befehl exis­tierte, in wel­chem Daten zwar bereits gespei­chert wur­den, aller­dings noch nicht für „Get“-Abfra­gen sicht­bar waren und somit bei der Ver­ar­bei­tung über­se­hen wer­den konn­ten. Um dies zu umge­hen war es bis­her not­wen­dig, zusätz­li­che Ser­vices wie den S3Guard zu ver­wen­den. Im Dezem­ber des letz­ten Jah­res wurde aller­dings ver­kün­det, dass nun alle „Put“-, „Get“- und „List“-Befehle, sowie Ope­ra­tio­nen, die bei­spiels­weise die Tags von Objek­ten ändern, kon­sis­tent seien. Dies hat zur Folge, dass das zuvor beschrie­bene kleine Zeit­fens­ter ver­schwin­det, was im All­ge­mei­nen die Arbeit mit S3 als Data Lake wei­ter erleichtert. 

Pri­v­ate­Link for S3 

Wäh­rend der re:Invent im Dezem­ber wurde eben­falls ange­kün­digt, dass Pri­v­ate­Link für den S3-Spei­cher bald zur Ver­fü­gung ste­hen werde. Dies ist inzwi­schen der Fall und es kann nun über AWS Pri­v­ate­Link, unter Zuhil­fe­nahme pri­va­ter IP-Adres­sen, eine direkte Ver­bin­dung von einem on-premises Sys­tem zum S3-Spei­cher her­ge­stellt wer­den. Bis­her war dies ledig­lich mit Hilfe eines Work­arounds mög­lich: Eine bis­he­rige Archi­tek­tur, die dies erzie­len sollte, bestand darin, dass Proxy-Ser­ver mit pri­va­ten IP-Adres­sen inner­halb eines VPCs in der AWS Cloud ver­wen­det wur­den und eine Ver­bin­dung zum S3-Spei­cher mit­tels Gate­way-End­points erstellt wurde. Eine sol­che Kon­struk­tion könnte nun durch die Ver­wen­dung des Pri­v­ate­Links ersetzt wer­den. Dies bie­tet zum einen die Mög­lich­keit, dass Clou­dar­chi­tek­tu­ren simp­ler gestal­tet wer­den kön­nen, zum ande­ren ent­fernt es die Proxy-Ser­ver als poten­zi­elle Feh­ler­quelle inner­halb eines Workflows. 

Repli­zie­rung

Eine wei­tere Neue­rung mit Bezug auf den S3-Spei­cher bezieht sich auf die Mög­lich­keit, einen Bucket auf meh­rere Ziel­bu­ckets, sowohl inner­halb einer Region als auch über meh­rere Regio­nen hin­weg, zu repli­zie­ren. Bis­her war es not­wen­dig für ein sol­ches Vor­ha­ben mit einen Moni­to­ring Tool zu arbei­ten, wel­ches schluss­end­lich eine Lambda-Funk­tion anspricht, die diese Datei in meh­rere Ziel­bu­ckets repli­ziert. Diese Kon­struk­tion kann nun durch eine pas­sende Repli­ka­ti­ons­re­gel im Management–Abschnitts des jewei­li­gen Buckets ersetzt wer­den. Wäh­rend die­ser Repli­ka­tion kön­nen auch Eigen­schaf­ten, wie zum Bei­spiel die Sto­rage-Tier des Objek­tes oder auch die Owner­ship geän­dert werden.

AWS Lambda

Für den ser­ver­less com­pute Ser­vice AWS Lambda gab es eben­falls einige Neue­run­gen. Diese betref­fen unter ande­rem die maxi­male Größe, die mini­ma­len Kos­ten und die Mög­lich­kei­ten zum Monitoring. 

Bil­ling Dura­tion und Größe

Seit Dezem­ber 2020 sind wei­tere Grö­ßen des ser­ver­less com­pute Ser­vices ver­füg­bar. So ist es nun bei­spiels­weise mög­lich, Lambda-Funk­tio­nen mit bis zu 10 GB RAM und 6 vCPUs zu ver­wen­den. Eine Folge hier­aus ist, dass Anwen­dun­gen, die auf Mul­ti­th­re­a­ding und Mul­tipro­ces­sing set­zen, an Geschwin­dig­keit gewin­nen und unter Umstän­den sogar gerin­gere Kos­ten erzeu­gen, da die Kos­ten für Lambda–Funktionen pro­por­tio­nal mit ihrem kon­fi­gu­rier­ten RAM und ihrer Aus­füh­rungs­zeit wach­sen.   Die Ver­wen­dung von mehr Arbeits­spei­cher stei­gert somit zunächst zwar die Kos­ten, die Zeit­er­spar­nis, die erzielt wer­den kann, könnte diese wie­derum ausgleichen. 

Nicht nur die mög­li­chen Grö­ßen von Lambda-Funk­tio­nen haben sich ver­än­dert: Auch die mini­male Lauf­zeit – bzw. die Zeit die mini­mal berech­net wird – ist redu­ziert wor­den. Wie zuvor in die­sem Blog­bei­trag erwähnt, wer­den die Kos­ten von Lambda-Funk­tio­nen hin­sicht­lich ihres kon­fi­gu­rier­ten RAMs und ihrer Aus­füh­rungs­zeit bestimmt. Bis­her galt, dass, unab­hän­gig von der tat­säch­li­chen Länge der Aus­füh­rung, min­des­tens 100ms berech­net wer­den. Diese mini­male Zeit­spanne wurde nun ent­fernt: Es ist inzwi­schen so, dass die Aus­füh­rungs­zeit von Lambda-Funk­tio­nen auf die nächst­hö­here Mil­li­se­kunde auf­ge­run­det wird. Dies lie­fert eine genauere Abrech­nung der tat­säch­lich genutz­ten Res­sour­cen als es bis­her der Fall war und endet schluss­end­lich in einer Kos­ten­er­spar­nis bei der Ver­wen­dung von kurz­le­bi­gen Lambda-Funk­tio­nen, wie sie häu­fig bei Orches­trie­rungs­auf­ga­ben zu fin­den sind. 

Eine Frage, die an die­ser Stelle nun auf­tau­chen kann, ist, wie es am ein­fachs­ten mög­lich ist, die opti­male Größe einer Lambda-Funk­tion zu bestim­men. Auch hier­für hat sich AWS eine neue Lösung überlegt: 

Um ein bes­se­res Ver­ständ­nis für die Aus­las­tung von Lambda-Funk­tio­nen zu erhal­ten, hat AWS eine Erwei­te­rung zu Cloud­Watch ver­öf­fent­licht: Ama­zon Cloud­Watch Lambda Insights. Cloud­Watch Lambda Insights sam­melt nach Akti­vie­rung des Ser­vice, Daten über die Per­for­mance von Lambda-Funk­tio­nen, wie bei­spiels­weise Infor­ma­tio­nen über den maxi­ma­len RAM-Ver­brauch und die Aus­füh­rungs­zeit. Diese Daten wer­den dann von dem Ser­vice agg­re­giert, um sie in auto­ma­tisch ange­leg­ten Dash­boards, zusam­men mit den für die Aus­füh­rung der Lambda–Funktion ent­stan­de­nen Kos­ten, zur Ver­fü­gung zu stel­len. Mit­hilfe die­ser Ein­bli­cke ist es künf­tig leich­ter mög­lich, die opti­male Größe von Lambda-Funk­tio­nen zu bestimmen. 

AWS Sage­Ma­ker

Eine Viel­zahl von Ände­run­gen erlebte der fully-mana­ged Machine-Lear­ning Ser­vice von AWS. Die meis­ten die­ser Ände­run­gen zie­len auf eine all­ge­meine Ver­bes­se­rung der Nut­zung ab, wie zum Bei­spiel der Ver­ein­fa­chung im Bereich Debug­ging und dem Trai­ning von Model­len. Es gab aber auch grund­le­gende Ände­run­gen wie die Ein­füh­rung von Ama­zon Sage­Ma­ker Pipe­lines, wel­ches es ermög­licht, end–to–end Machine Lear­ning Pipe­lines zu erstel­len und auto­ma­ti­sie­ren. Wei­ter­hin wurde im Dezem­ber der Data Wrang­ler von AWS vor­ge­stellt, wel­cher die Aufbereitung von Daten erleich­tern soll. 

Ein­fa­chere und schnel­lere Anwen­dung von Parallelisierungen 

Wie auf­ge­führt zie­len viele der Neue­run­gen auf eine ein­fa­chere Benut­zung des Ser­vice ab. Zen­tra­ler Aspekt hier­bei ist die Ein­füh­rung einer neuen Library, wel­che die auf­tre­tende Arbeits­last bes­ser auf meh­rere Instan­zen ver­teilt und die Kom­mu­ni­ka­tion zwi­schen eben die­sen ver­bes­sert. Dies hat zur Folge, dass bis zu 90% der Res­sour­cen, die über die GPU bereit­ge­stellt wer­den, für das tat­säch­li­che Modell-Trai­ning ver­wen­det wer­den kön­nen und dadurch weni­ger Leis­tung in Berei­che wie Daten­trans­fer inves­tiert wer­den muss. 
Die Funk­ti­ons­weise des Algo­rith­mus, der dies ermög­licht, basiert dar­auf, dass die GPUs nicht mehr unter­ein­an­der kom­mu­ni­zie­ren, son­dern ihre neu berech­ne­ten Gra­di­en­ten in ihrem eige­nen Spei­cher behal­ten. Nach einer gewis­sen Zeit (Thres­hold) wer­den diese Gra­di­en­ten dann an die Parameter–Server wei­ter­ge­lei­tet, wel­che auf der CPU der GPU-Instanz lau­fen. Jede ein­zelne die­ser CPUs erhält Infor­ma­tio­nen aller GPUs. Die CPUs ver­ar­bei­ten dann die neuen Gra­di­en­ten, die sie von den GPUs erhal­ten haben, und ver­tei­len diese anschlie­ßend wie­der an alle GPUs. Durch die Ein­füh­rung die­ser neuen Library ist es leich­ter gewor­den, große Data­sets und Modelle mit einer Viel­zahl von neu­ro­na­len Lay­ern schnell und effi­zi­ent mit Sage­Ma­ker zu verarbeiten. 

Sagemaker
Abbil­dung 1 Par­al­le­li­sie­rung zwi­schen CPUs und GPUs
Ama­zon Sage­Ma­ker Data Wrangler 

In nahezu allen Machine Lear­ning Pro­jek­ten ist es so, dass die Aufbereitung der Daten einen Groß­teil der Zeit in Anspruch nimmt. Hier­un­ter fal­len diverse Auf­ga­ben wie bei­spiels­weise das Zusam­men­su­chen der Daten, das Ent­fer­nen von Dublet­ten, das Erstel­len von Gra­fi­ken und His­to­gram­men sowie die Anrei­che­rung der vor­han­de­nen Daten. Ins­be­son­dere zu Beginn eines Pro­jek­tes besitzt diese Arbeit einen expe­ri­men­tel­len Cha­rak­ter. Häu­fig wird an die­ser Stelle mit Tech­no­lo­gien, wie zum Bei­spiel pan­das oder PySpark gear­bei­tet und diverse Trans­for­ma­tio­nen wer­den aus­pro­biert, bis man schluss­end­lich einen pas­sen­den Wert an Genau­ig­keit erreicht hat und die Arbeit von dem Trai­nings­da­ten­satz auf den voll­stän­di­gen Daten­satz über­tra­gen möchte. Um dies zu rea­li­sie­ren, ist es not­wen­dig, alle Ope­ra­tio­nen, die auf den Trai­nings­da­ten­satz durch­ge­führt wur­den zu doku­men­tie­ren und auf den vol­len Daten­satz zu über­tra­gen, was grund­sätz­lich eine poten­zi­elle Feh­ler­quelle birgt. 

Für all diese Auf­ga­ben hat AWS nun AWS Sage­Ma­ker Data Wrang­ler ver­öf­fent­licht. Data Wrang­ler soll es ermög­li­chen, mit nur weni­gen Klicks eine Ver­bin­dung zu einer Daten­quelle zu erstel­len und die Daten­sätze zu ana­ly­sie­ren und visua­li­sie­ren. Wei­ter­hin kön­nen Trans­for­ma­tio­nen in Data Wrang­ler selbst durch­ge­führt und als Code gespei­chert wer­den, sodass bis­her feh­ler­an­fäl­lige Doku­men­ta­ti­ons­ar­beit von AWS über­nom­men wird. 

Für alle diese Auf­ga­ben bie­tet Data Wrang­ler ein gra­fi­sches User Inter­face an. Zum der­zei­ti­gen Stand sind bei­spiels­weise über 300 vor­ge­fer­tigte Trans­for­ma­tio­nen ver­füg­bar, wel­che per Drop-Down Menü aus­ge­wählt und auf den Daten­satz ange­wandt wer­den kön­nen. Wei­ter­hin kön­nen auch eigene Trans­for­ma­tion mit Hilfe von pan­das, PySpark oder PySpark SQL durch­ge­führt wer­den. Die Resul­tate der Trans­for­ma­tion las­sen sich direkt im Stu­dio begut­ach­ten, sodass ein inter­ak­ti­ves Arbei­ten mit den Daten mög­lich ist. 

AWS CloudS­hell

Auch wenn die Management–Konsole von AWS ste­tig im Wan­del ist, gibt es doch einige Auf­ga­ben, die in die­ser nicht erle­digt wer­den kön­nen. Für eben sol­che Auf­ga­ben ist es not­wen­dig, die Com­mand Line zu ver­wen­den. Bis­her muss­ten, um von der Com­mand Line auf die AWS Cloud zuzu­grei­fen, Dinge wie Public Keys oder Cre­den­ti­als eigen­stän­dig auf den loka­len Sys­te­men ver­wal­tet werden. 

Seit Dezem­ber 2020 bie­tet AWS die AWS CloudS­hell an. Diese ist schluss­end­lich ein Com­mand Line Inter­face in der AWS Cloud selbst, unter wel­cher die CLI v2 instal­liert ist, sodass AWS-Befehle direkt in der Cloud aus­ge­führt wer­den kön­nen. Der Log-In in die CloudS­hell kann mit­tels SSO oder einem ande­ren Ver­fah­ren statt­fin­den. Mit die­sen kann sich auch in die Manage­ment Kon­sole ein­ge­loggt wer­den, aller­dings muss dem User die Policy AWS­CloudS­hellFul­l­Ac­cess gewährt wer­den. Die Appli­ka­tion basiert auf Linux2, sodass auch klas­si­sche UNIX-Befehle ver­wen­det wer­den können. 

Wei­tere Fully Mana­ged Services

Zeit­gleich hat AWS sein Reper­toire an Fully Mana­ged Ser­vices erwei­tert. So wur­den bei­spiels­weise Graf­ana und Pro­me­theus, wel­ches bereits in die­sem Arti­kel von uns vor­ge­stellt wurde, hinzugefügt. 

Graf­ana

Graf­ana ist eine open-source Tech­no­lo­gie, wel­che in den Bereich der Obser­va­bi­lity-Tools ein­zu­ord­nen ist und für die Visua­li­sie­rung und Ana­lyse von Daten zustän­dig ist. Dies erlaubt es, sowohl Daten von inter­nen Quel­len wie Cloud­Watch, AWS X‑Ray oder Ela­s­tic­se­arch Ser­vice als auch von Dritt­an­bie­tern wie Data­dog oder Splunk zu visua­li­sie­ren und so bei­spiels­weise die Anzahl an Auf­ru­fen die jewei­li­gen Ser­vices gra­fisch dar­zu­stel­len. Außer­dem ist eine Anbin­dung an den Nach­rich­ten­dienst von AWS, AWS Simple Noti­fi­ca­tion Ser­vice, mög­lich, sodass bei­spiels­weise beim Aus­fall eines Ser­vice eine Benach­rich­ti­gung über Graf­ana ver­schickt wer­den kann. AWS über­nimmt bei der Ver­wen­dung des fully mana­ged Ser­vices sowohl die Bereit­stel­lung und das Setup von Graf­ana, als auch das kon­ti­nu­ier­li­che Patching, Ska­lie­ren der Res­sour­cen und das Auf­spie­len von Versionsupgrades. 


Februar 2021

Nach einer Viel­zahl von Neue­run­gen rund um die Jah­res­wende, war AWS in Hin­blick auf die Ände­run­gen von bestehen­den Ser­vices im Februar etwas zurückhaltender.

Die­ser Blog­bei­trag stellt einen Aus­schnitt aus den Neue­run­gen und Ankün­di­gun­gen des Monats Februar dar, erhebt aber nicht den Anspruch auf Voll­stän­dig­keit. Das Haupt­au­gen­merkt liegt hier­bei auch Ver­än­de­run­gen, bei denen wir von einem direk­ten Ein­fluss auf unsere Kun­den im Versicherungs‑, Finanz- und Retail­sek­tor aus­ge­hen. Die inter­es­san­tes­ten Ände­run­gen bezie­hen sich auf die Ser­vices AWS Ela­s­tic­se­arch Ser­vice und AWS Glue Studio.

AWS Ela­s­tic­se­arch

AWS Ela­s­tic­se­arch Ser­vice ist ein mana­ged Ser­vice, wel­cher die Bereit­stel­lung, Betrieb und Ska­lie­rung von Ela­s­tic­se­arch-Clus­tern über­nimmt. Im Monat Februar sind hier zwei Neue­run­gen hin­zu­ge­kom­men: Zum einen wurde der Ser­vice um Trace Ana­ly­tics erwei­tert und zum ande­ren wer­den nun Rol­lups vom Ser­vice unterstützt.

Trace Ana­ly­tics

Mit der Erwei­te­rung des Ela­s­tic­se­arch Ser­vices um Trace Ana­ly­tics ist es nun mög­lich, ver­teil­tes Tra­cing durch­zu­füh­ren, wodurch Fla­schen­hälse in Anwen­dun­gen mit meh­re­ren Kom­po­nen­ten leich­ter gefun­den und aus­ge­bes­sert wer­den kön­nen. Die bereits vor­han­de­nen Pro­to­koll­ana­ly­se­funk­tio­nen von Ela­s­tic­se­arch kön­nen durch Trace Daten ergänzt wer­den und lie­fern so eine voll­stän­di­gere Ein­sicht in die Leis­tungs­da­ten einer Archi­tek­tur als die  Mög­lich­kei­ten, die Ela­s­tic­se­arch bis­her allein gebo­ten hat.

Trace Ana­ly­tics unter­stützt Open­Te­le­me­try. Dies ist ein Pro­jekt, wel­ches APIs, Libra­ries und Agents bereit­stellt, die das Sam­meln von Metri­ken zum Moni­to­ring von Appli­ka­tio­nen ermög­licht. Stand heute wer­den von Trace Ana­ly­tics die Erfas­sung von Daten aus Anwen­dungs­bi­blio­the­ken und SDKs unter­stützt, die mit dem Open­Te­le­me­try Coll­ec­tor kom­pa­ti­bel sind. Dies sind unter ande­ren OpenTelemetry‑, X‑Ray, Jae­ger- und Zip­kin-SDKs. Die so gesam­mel­ten Daten kön­nen dann bei­spiels­weise mit Kibana unter­sucht und visua­li­siert wer­den. Des Wei­te­ren wer­den mit Trace Ana­ly­tics zwei neue Kom­po­nen­ten in das Open­Te­le­me­try und Ela­s­tic­se­arch Öko­sys­tem eingepflegt.

Die erste Kom­po­nente ist der Data Prep­per. Dies ist eine Ser­ver-sei­tige Appli­ka­tion, die für das Sam­meln und Trans­for­mie­ren der Daten zustän­dig ist. Die Daten instru­men­ta­li­sier­ter Appli­ka­tio­nen wer­den vom Open­Te­le­me­try Coll­ec­tor ein­ge­sam­melt und an den Data Prep­per wei­ter­ge­reicht und schluss­end­lich von die­sem ver­ar­bei­tet und in den Ela­s­tic­se­arch Ser­vice geschrieben.

Zusätz­lich zu dem oben beschrie­be­nen, lässt sich Trace Ana­ly­tics auch in Archi­tek­tu­ren, wel­che mit der von uns im Okto­ber vor­ge­stell­ten AWS Dis­tro for Open­Te­le­me­try arbei­ten, inte­grie­ren und wird in allen AWS Ela­s­tic­se­arch Ser­vice Domains unter­stützt, die Ela­s­tic­se­arch 7.9 oder höher ausführen.

Rol­lups

Eine andere Neue­rung im Bereich Ela­s­tic­se­arch sind Index-Rol­lups. Die Index-Rol­lups ermög­li­chen es, Daten mit einer hohen Gra­nu­la­ri­tät zusam­men­zu­fas­sen und so Spei­cher­kos­ten zu senken.

Zeit­rei­hen­da­ten, schluss­end­lich also gesam­melte Mess­werte, besit­zen die Eigen­schaft, dass deren Anzahl mono­ton wach­send ist. Durch das mono­tone Wachs­tum sinkt nicht nur die Geschwin­dig­keit von Aggre­ga­tio­nen, son­dern es steigt gleich­zei­tig der Spei­cher­be­darf und damit ein­her­ge­hend die Kos­ten. Nun ist es jedoch so, dass Mess­werte, die weit in der Ver­gan­gen­heit lie­gen, für Ana­ly­sen einen gerin­ge­ren Mehr­wert bie­ten als neuere Daten, aber bis­her trotz­dem die­sel­ben Res­sour­cen benö­tig­ten. Dies kann nun mit­tels Index-Rol­lups umgan­gen wer­den: Index-Rol­lups erlau­ben das Zusam­men­füh­ren von meh­re­ren rele­van­ten Fel­dern, die in grö­be­ren Zeit-Buckets zusam­men­ge­fasst sind, in einem neuen Index. Durch das Zusam­men­füh­ren meh­rere Fel­der wird der Spei­cher­be­darf, und somit auch die damit ver­bun­de­nen Kos­ten, von his­to­ri­schen Daten reduziert.

Index-Rol­lups kön­nen ent­we­der in fes­ten Inter­val­len oder aber on-Demand aus­ge­führt wer­den. Zur Ver­wen­dung die­ses Fea­tures wird eine Ela­s­tic­se­arch Ser­vice Domain benö­tigt, die Ela­s­tic­se­arch 7.9 oder höher ausführt.

AWS Glue Studio

Im Februar erhielt das ETL-Tool AWS Glue Stu­dio einige Ände­run­gen, wel­che die Bedien­bar­keit erleich­tern sol­len. Zwei die­ser Ände­run­gen bezie­hen sich auf das Zusam­men­spiel von AWS Glue Stu­dio und dem AWS Glue Data Cata­log und wer­den nach­fol­gend vorgestellt.

Die erste die­ser bei­den Ände­run­gen ist, dass AWS Glue Stu­dio nun das Aktua­li­sie­ren des Data Cata­logs bei der Aus­füh­rung von Jobs unter­stützt. Durch diese neue Funk­tion kön­nen Tabel­len auf einem aktu­el­len Stand gehal­ten und erstellt wer­den, wäh­rend AWS Glue die neuen Daten in den S3-Spei­cher schreibt. Dies erlaubt es die Daten direkt von jedem Ser­vice aus abzu­fra­gen, wel­cher mit dem AWS Glue Data Cata­log kom­pa­ti­bel ist. Bis­her war es not­wen­dig, ent­we­der in eine bereits exis­tie­rende Tabelle zu schrei­ben oder einen AWS Glue-Craw­ler aus­zu­füh­ren, nach­dem die Daten in den S3-Bucket geschrie­ben wurden.

Die Zweite Ände­rung von AWS Glue Stu­dio in Ver­bin­dung mit dem Data Cata­log zielt dar­auf ab, dass es nun mög­lich ist mit AWS Glue Daten in S3 zu lesen, ohne dass sie zuvor zum Data Cata­log hin­zu­ge­fügt wor­den sind. Bis­her war es so, dass ledig­lich Tabel­len des AWS Glue Data Cata­log als Daten­quelle ver­wen­det wer­den konn­ten; das heißt, dass bis­her ent­we­der Tabel­len mit­tels Data Craw­ler oder per Hand dem Data Cata­log hin­zu­ge­fügt wer­den muss­ten. Inzwi­schen las­sen sich direkt Spei­cher­orte und Objekte in S3 als Daten­quelle ver­wen­den. AWS Glue lei­tet nun direkt das Schema der aus­ge­wähl­ten Daten ab und zeigt es in der gra­fi­schen Ober­flä­che des Tools an, sodass ETL-bzw. ELT-Jobs schnel­ler erstellt wer­den können.

Wei­tere Ände­run­gen im Februar

Neben den Neue­run­gen für den AWS Ela­s­tic­se­arch Ser­vice gab es auch noch wei­tere Ände­run­gen im Februar rund um das Thema Moni­to­ring, wel­che unter ande­rem auf EC2 Auto Sca­ling Grup­pen und Ama­zon SNS betref­fen. Des Wei­te­ren ist ab sofort der Machine Lear­ning Ser­vice Ama­zon Loo­kout for Vision verfügbar.

Ska­lie­rungs­his­to­rie von EC2 Auto Scaling-Gruppen

In Bezug auf Ama­zon EC2 Auto Sca­ling-Grup­pen ist es nun mög­lich, die Ska­lie­rungs­his­to­rie von gelösch­ten Auto Sca­ling-Grup­pen ein­zu­se­hen. Wenn man frü­her eine Auto Sca­ling-Gruppe gelöscht hat, musste man ent­we­der selbst die His­to­rie per­sis­tie­ren oder aber im Nach­hin­ein den Sup­port kon­tak­tie­ren, um diese Daten erneut zu erhal­ten. Seit neu­es­tem kann die die Ska­lie­rungs­his­to­rie von bereits gelösch­ten Grup­pen durch Abfra­gen mit Hilfe des Para­me­ters –include-dele­ted-groups abge­ru­fen werden.

Cloud­Watch Metri­ken und SNS

Der Benach­rich­ti­gungs­ser­vice Ama­zon Simple Noti­fi­ca­tion Ser­vice publi­ziert dank Neue­run­gen Metri­ken von AWS Cloud­Watch in einer Auf­lö­sung von einer Minute und nicht wie bis­her in fünf Minu­ten. Dies bedeu­tet, dass bei­spiels­weise Aggre­ga­tio­nen jede Minute und nicht mehr nur alle 5 Minu­ten abge­ru­fen wer­den, was im All­ge­mei­nen das Moni­to­ring verbessert.

Ama­zon Loo­kout for Vision

Ama­zon Loo­kout for Vision ist ein Machine-Lear­ning Ser­vice, wel­cher, unter Zuhil­fe­nahme von Com­pu­ter Vision, Feh­ler und Anoma­lien in der Optik von her­ge­stell­ten Pro­duk­ten erkennt und somit schluss­end­lich dabei hilft, die Qua­li­täts­prü­fung zu automatisieren.

Die Qua­li­täts­si­che­rung von Ergeb­nis­sen indus­tri­el­ler Pro­zesse benö­tigt häu­fig eine Inspek­tion, die von Men­schen durch­ge­führt wer­den muss. Ein sol­ches Vor­ge­hen ist zwar not­wen­dig, aber auch kos­ten­in­ten­siv und nicht ska­lier­bar. Mit Ama­zon Loo­kout for Vision bie­tet Ama­zon in Zukunft einen Ser­vice an, mit wel­chem ein sol­ches Pro­ze­dere (teil­weise) auto­ma­ti­siert wer­den kann. Der Ser­vice ver­wen­det Com­pu­ter Vision, um End­pro­dukte auf opti­sche Feh­ler wie Del­len, Krat­zer, Risse oder aber auch feh­lende Pro­dukt­kom­po­nen­ten zu über­prü­fen. Zur Ver­wen­dung des Ser­vices müs­sen ledig­lich einige Bil­der des akzep­ta­blen und anoma­len Zustands als Trai­nings­da­ten­satz für den zu bewer­ten­den Pro­zess bereit­ge­stellt wer­den. Im Anschluss daran las­sen sich Kame­ras ver­wen­den, wel­che den Her­stel­lungs­pro­zess über­wa­chen, damit der Ser­vice Unter­schiede zwi­schen dem Trai­nings­da­ten­satz und den aktu­el­len Daten ermit­teln kann. Die Ergeb­nisse wer­den dann in Dash­boards inner­halb der Manage­ment­kon­sole von AWS bereitgestellt.


März 2021

Nach einem ver­hält­nis­mä­ßig ruhi­gen Februar und zu Beginn des Früh­lings lie­fert AWS sei­nen Nut­zern wie­der eine Viel­zahl von Neue­run­gen und Erwei­te­run­gen der bereits bestehen­den Services.

Die­ser Blog­bei­trag stellt einen Aus­schnitt aus den Neue­run­gen und Ankün­di­gun­gen des Monats März dar, erhebt aber nicht den Anspruch auf Voll­stän­dig­keit. Das Haupt­au­gen­merkt liegt hier­bei auf Ver­än­de­run­gen, bei denen wir von einem direk­ten Ein­fluss auf unsere Kun­den im Versicherungs‑, Finanz- und Retail­sek­tor aus­ge­hen. In die­sem Bei­trag wer­den ins­be­son­dere Ände­run­gen und Ankün­di­gun­gen der Ser­vices AWS S3, AWS Reds­hift, AWS Fault Injec­tion Simu­la­tor und AWS Quick­Sight vorgestellt.

AWS S3

Wie bei­nahe jeden Monat, wur­den von Ama­zon auch im März Ände­run­gen am Cloud­ob­jekt­da­ten­spei­cher durch­ge­führt. Die inter­es­san­tes­ten Ände­run­gen in die­sem Monat bezie­hen sich auf das Zusam­men­spiel mit dem Ser­ver­less Com­pute Ser­vice AWS Lambda sowie einer Preis­re­du­zie­rung von Ama­zon S3 Glacier.

AWS S3 Object Lambda

Einer der Haupt­ver­wen­dungs­zwe­cke des S3-Ser­vices ist das zen­trale Spei­chern von Daten an einem ein­zi­gen Ort, um von dort aus meh­rere Appli­ka­tio­nen mit Daten zu ver­sor­gen. Eine Pro­ble­ma­tik, die sich bei die­ser Ver­wen­dungs­art immer wie­der ergibt, ist, dass ver­schie­dene Appli­ka­tio­nen auch ver­schie­dene Ansprü­che an die Daten haben. So kann es zum Bei­spiel sein, dass Daten, die aus dem Sales-Bereich einer Orga­ni­sa­tion stam­men, zunächst von sen­si­blen Infor­ma­tio­nen berei­nigt wer­den müs­sen, bevor die Daten zu ana­ly­ti­schen Zwe­cken frei­ge­ge­ben wer­den kön­nen, wohin­ge­gen bei der Ver­wen­dung für den Mar­ke­ting-Sek­tor die Daten sogar noch wei­ter ange­rei­chert wer­den müssen.

Um die­sen unter­schied­li­chen Ansprü­chen gerecht zu wer­den, war es bis­her nötig, ent­we­der jeweils pas­sende Ver­sio­nen des Daten­sat­zes zu erstel­len, zu spei­chern und schließ­lich auch zu ver­wal­ten oder aber eine Art Proxy-Layer zwi­schen den S3-Spei­cher und dem anfra­gen­den Sys­tem auf­zu­bauen, wel­ches die Daten je nach Anfrage auf­be­rei­tet. Beide Lösungs­an­sätze führ­ten jedoch zu erhöh­ten Kos­ten sowie einem Mehr­auf­wand an Wartungsarbeit.

AWS hat sich im März nun die­sem Pro­blem ange­nom­men und die AWS S3 Object Lambda Funk­tio­nen ein­ge­führt. Die­ses neue Fea­ture ermög­licht es, mit Hilfe von Lambda-Funk­tio­nen, Daten, die per „Get“-Request abge­fragt wer­den, auto­ma­tisch anzu­pas­sen und macht somit eine oben beschrie­ben Archi­tek­tur obso­let. Da die Lamb­das schluss­end­lich durch die „Get“-Requests auch auf­ge­ru­fen wer­den, müs­sen hier­für keine Anpas­sun­gen an der anfra­gen­den Appli­ka­tion selbst vor­ge­nom­men wer­den, son­dern ledig­lich pas­sende Access Points und Lambda-Funk­tio­nen defi­niert wer­den. Bei einer sol­chen Kon­struk­tion wird der Lambda-Funk­tion bei Auf­ruf alle not­wen­di­gen Infor­ma­tio­nen über das anfra­gende Sys­tem und das abge­fragte Objekt mit­ge­ge­ben, sodass für das jewei­lige Tar­get-Sys­tem pas­sende Trans­for­ma­tio­nen und Anrei­che­run­gen durch­ge­führt wer­den können.

AWS S3 Object Lambda
Abbil­dung 2 Bei­spiel­ar­chi­tek­tur

Bei der Ver­wen­dung des Ser­vices fal­len die übli­chen Kos­ten und Limi­ta­tio­nen von Lambda-Funk­tio­nen an. Die letz­ten Ände­run­gen hin­sicht­lich der Abrech­nungs­zei­ten und RAM-Nut­zung haben wir in die­sem Blog­bei­trag im Januar vorgestellt.

AWS S3 Glacier

Eine wei­tere Ände­rung von AWS S3 bezieht sich auf die Kos­ten für „Put“- und Life­cy­cle-Anfra­gen von Daten, die in S3 Gla­cier abge­legt wor­den sind bzw. abge­legt werden.

Die Cold Data Sto­rage Tiers AWS S3 Gla­cier bzw. AWS S3 Gla­cier Deep Archive wer­den häu­fig zum Per­sis­tie­ren bzw. Archi­vie­ren sel­ten genutz­ter Daten ver­wen­det. Beide Tiers bestechen zwar durch sehr gerin­gere Spei­cher­kos­ten, brin­gen dafür aller­dings stan­dard­mä­ßig sehr hohe Abfra­ge­zei­ten und ‑kos­ten mit sich. AWS ver­rin­gert die Kos­ten für das Able­gen von Daten in AWS S3 Gla­cier um 40%. Dies gilt sowohl für die manu­elle Ablage mit­tels der „Put“-API sowie der auto­ma­ti­schen Ver­schie­bung der Daten mit­tels Life­cy­cle Policy.

AWS Reds­hift

Auch für das Cloud Data Ware­house AWS Reds­hift sind seit März einige inter­es­sante Ände­run­gen und Neue­run­gen ver­füg­bar. Dies bezieht sich sowohl auf direkte Ver­än­de­run­gen des Ser­vices, wie bei­spiels­weise der Mög­lich­keit, daten­bank­über­grei­fende Abfra­gen aus­zu­füh­ren, aber auch gene­relle Neue­run­gen, wie der Ver­füg­bar­keit von wei­te­ren Knotentypen.

Daten­bank­über­grei­fende Reds­hift-Abfra­gen/­Reds­hift Data Sharing

Bei der Ver­wen­dung von AWS Reds­hift ist es häu­fig so, dass Kun­den ihre Daten über meh­rere Daten­ban­ken hin­weg spei­chern und orga­ni­sie­ren. Jedoch ist es mög­lich, dass einige User­grup­pen über ihre Daten­sätze hin­weg Abfra­gen und Joins durch­füh­ren wol­len bzw. müs­sen. Dies ist nun mit­tels Daten­bank­über­grei­fen­den Abfra­gen mög­lich, ohne eine direkte Ver­bin­dung zur jewei­li­gen Daten­bank aufzubauen.

AWS Reds­hift ver­fügt nun über­all, wo auch die neuen RA3-Kno­ten ver­füg­bar sind, über die Mög­lich­keit, Abfra­gen über meh­rere Daten­ban­ken hin­weg durch­zu­füh­ren. Dies erlaubt es in einem Reds­hift Clus­ter Daten aus einer belie­bi­gen Daten­bank, unter Restrik­tion der Zugriff­kon­trol­len für Benut­zer, Daten abzu­fra­gen und sogar zu eli­mi­nie­ren. Die Com­pute-Res­sour­cen, die hier­bei bean­sprucht wer­den, sind die des Ver­brau­cher­clus­ters. All­ge­mein wird mit­tels sol­cher Abfra­gen die Daten­or­ga­ni­sa­tion inner­halb eines Unter­neh­mens vereinfacht.

Eine wei­tere Neue­rung von AWS Reds­hift ist, dass zu dem oben ange­spro­che­nen RA3-Kno­ten mit dem RA3.xlplus ein wei­te­rer Kno­ten­typ in Europa nun ver­füg­bar ist. Die RA3-Kno­ten wur­den im Dezem­ber 2019 zu den bis­her ver­füg­ba­ren Com­pute und Sto­rage Nodes hin­zu­ge­fügt und ver­wen­den im Gegen­satz zu den bei­den Letz­te­ren keine SSD bzw. HDD als Spei­cher­me­dium, son­dern grei­fen auf den S3-Spei­cher von AWS zurück, was ein fle­xi­bles Ska­lie­ren des Sto­rages in Reds­hift-Archi­tek­tu­ren ermög­licht. Bis­her war es aller­dings so, dass die RA3-Kno­ten mit 12 bzw. 48 vCPUs ver­hält­nis­mä­ßig hohe Kos­ten erzeug­ten für Com­pute-Res­sour­cen, die unter Umstän­den nicht voll­stän­dig aus­ge­schöpft wer­den konn­ten. Der RA3.xlplus ist deut­lich klei­ner und ver­fügt hin­ge­gen ledig­lich noch über 4 vCPUs, wodurch er eine kos­ten­güns­tige Alter­na­tive darstellt.

AWS Fault Injec­tion Simulator

Ein häu­fi­ger Grund in die Cloud zu wech­seln ist – neben der Hoff­nung auf eine Kos­ten­er­spar­nis und der fle­xi­blen Ska­lier­bar­keit der ein­zel­nen Kom­po­nen­ten einer Archi­tek­tur – die hohe Aus­fall­si­cher­heit. Um dies zu gewähr­leis­ten lie­ferte AWS bereits einige Kom­po­nen­ten und Mög­lich­kei­ten, wie zum Bei­spiel das Ver­wen­den von ver­schie­de­nen Regio­nen und Rechen­zen­tren, Load Balan­cer oder Cross-Region Repli­ca­tion. Hier­bei stel­len sich jedoch häu­fig zwei Fra­gen: Wie ver­läss­lich sind diese Maß­nah­men wirk­lich und was pas­siert mit den Sys­te­men im Falle eines Ausfalls?

Um die erzeug­ten Vor­keh­run­gen auch tat­säch­lich zu tes­ten, hat Ama­zon Mitte des Monats den AWS Fault Injec­tion Simu­la­tor ver­öf­fent­licht. Unter Ver­wen­dung die­ses Ser­vices, kön­nen bewusst Feh­ler in ein Sys­tem ein­ge­spielt wer­den, um diese auf ihre Ver­läss­lich­keit hin zu unter­su­chen. Bis­her wird der Ser­vice in Ver­bin­dung mit EC2-Instan­zen, dem Ela­s­tic Con­tai­ner Ser­vice (ECS), dem Ela­s­tic Kuber­netes Ser­vice (EKS) sowie dem Rela­tio­nal Data­base Ser­vice (RDS) unter­stützt, aller­dings soll diese Liste im Ver­laufe des Jah­res um wei­tere Ser­vices ergänzt werden. 

AWS Quick­Sight

Ama­zon Quick­Sight ist ein cloud-basier­ter BI-Ser­vice, mit wel­chem es mög­lich ist, Daten aus ver­schie­de­nen Quel­len zusam­men­zu­füh­ren und zu visua­li­sie­ren, um schluss­end­lich ein tie­fe­res Ver­ständ­nis der Daten zu erhal­ten. Um dies nun noch wei­ter zu ver­ein­fa­chen, hat Ama­zon die soge­nannte Qui­ck­Info ein­ge­führt, mit wel­cher Dash­board-Leser zusätz­li­che Erkennt­nisse aus den Dar­stel­lun­gen gewin­nen kön­nen. Die Qui­ck­Info soll hier­bei zusätz­li­chen Kon­text zu den bestehen­den Dash­boards mit wei­te­ren Dimen­sio­nen und Metri­ken lie­fern. Wel­che zusätz­li­chen Infor­ma­tio­nen in der Qui­ck­Info ste­hen sol­len, kann von dem jewei­li­gen Erstel­len des Dash­boards defi­niert und ange­passt werden.

Zusätz­lich hierzu hat Ama­zon auch die Anoma­lie­er­ken­nung von Quick­Sight ver­bes­sert. Dies erlaubt es nun schnel­ler Benach­rich­ti­gun­gen zu erhal­ten, wenn Auf­fäl­lig­kei­ten im Sys­tem auf­tre­ten. Eine wei­tere Ände­rung, wel­che die Arbeit mit Quick­Sight ver­ein­facht, ist, dass im Kon­text­menü der aktu­elle Kon­to­name ange­zeigt wird. Dies ist ins­be­son­dere bei der Arbeit mit meh­re­ren Kon­ten, so wie es bei­spiels­weise bei einer Unter­tei­lung in eine Test- und eine Pro­duk­ti­ons­um­ge­bung auf­tre­ten kann, von Relevanz.

Policy Vali­da­tion

Einer der wahr­schein­lich ele­men­tars­ten Berei­che bei der Arbeit mit AWS ist das Iden­tity and Access Manage­ment (IAM). Im IAM-Abschnitt von AWS wer­den unter­and­e­rem Zugriffs- und Nut­zungs­be­rech­ti­gun­gen von Usern fest­ge­legt. Bei der Ver­gabe von Zugrif­fen emp­fiehlt es sich grund­sätz­lich, so wenig Berech­ti­gun­gen wie nötig zu ver­ge­ben. Um dies zukünf­tig ein­fa­cher zu gestal­ten, hat AWS die soge­nannte Policy Vali­da­tion ein­ge­führt, wel­che eine Über­prü­fung von IAM-Poli­cies vor­nimmt, noch bevor sie einem User gewährt wer­den. Hier­bei wer­den Poli­cies auf über 100 mög­li­che Pro­blem­stel­lun­gen unter­sucht. In Anschluss an diese Über­prü­fun­gen wer­den von AWS kon­krete Emp­feh­lun­gen und Ver­bes­se­rungs­vor­schläge aus­ge­ge­ben. So warnt AWS zum Bei­spiel vor zu gerin­gen Restrik­tio­nen, wel­che unter ande­rem bei der Ver­gabe mit­tels soge­nann­ter Wild­cards ent­ste­hen kön­nen oder gibt kon­krete Feh­ler an, wie zum Bei­spiel eine fal­sche For­ma­tie­rung eines Datums.

AWS Glue Studio

In den letz­ten Mona­ten gab es immer mehr Ver­än­de­run­gen und Neue­run­gen an AWSs ETL-Tool AWS Glue bzw. AWS Glue Stu­dio, wel­che wir eben­falls in ver­gan­ge­nen Blog­bei­trä­gen vor­ge­stellt haben. Seit Ende März ist es jetzt auch mög­lich, SQL-Abfra­gen zur Trans­for­ma­tion in AWS Glue Stu­dio zu defi­nie­ren, um Aggre­ga­tio­nen und Fil­ter­lo­gik noch ein­fa­cher auf den Daten durch­füh­ren zu kön­nen. Bis­her war es – zumin­dest für uner­fah­rene Spark­pro­gram­mier – nötig auf ein­zelne Code-Snip­pets zurück­zu­grei­fen, um Trans­for­ma­tio­nen durch­füh­ren zu kön­nen, die noch nicht als visu­el­les Objekt ver­füg­bar waren. Da es nun mög­lich ist, auch Aggre­ga­tio­nen und Fil­ter mit­tels SQL zu defi­nie­ren, wird die Ver­wen­dung von AWS Glue auch für User ohne Spark-Erfah­run­gen simp­ler und auch performanter.

Für wei­tere regel­mä­ßige Updates zum Thema AWS Cloud, fol­gen Sie unse­rer Prä­senz auf Xing und Insta­gram oder direkt unse­rem Blog.