Neues Jahr, neue Nach­rich­ten in der Welt von AWS. Die­ser Blog­bei­trag stellt einen Aus­schnitt aus den Neue­run­gen und Ankün­di­gun­gen des Monats Dezem­ber dar, erhebt aber nicht den Anspruch auf Voll­stän­dig­keit. Das Haupt­au­gen­merk liegt hier­bei auf Ver­än­de­run­gen, bei denen wir von einem direk­ten Ein­fluss auf unsere Kun­den 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 Step Func­tions, Ama­zon Code­Ca­ta­lyst sowie AWS S3 vorgestellt.

Deve­lo­p­ment

Mit AWS Step Func­tions stellt Ama­zon einen der prak­tischs­ten Ser­vices aller Hypers­ca­ler zur Ver­fü­gung, denn die Orches­trie­rung von Pro­gram­men und Pro­zess­schrit­ten ist auch in der Cloud rele­vant. Wei­ter­hin stellt Ama­zon mit Code­Ca­ta­lyst einen neuen Soft­ware Deve­lo­p­ment Ser­vice zur Ver­fü­gung, wel­cher die (Soft­ware-) Ent­wick­lung in der AWS beschleu­ni­gen soll.

AWS Step Functions

AWS Step Func­tions ist ein viel­sei­ti­ger Ser­vice, wel­cher die Erstel­lung von Work­flows – wie dem Ver­ar­bei­ten von S3-Objek­ten – ver­ein­facht. In den letz­ten Jah­ren sind viele sinn­volle Ver­än­de­run­gen des Ser­vices ver­öf­fent­lich wor­den, allen voran das gra­fi­sche Inter­face zur Erstel­lung von Work­flows. Nichts­des­to­we­ni­ger fühlte sich die Nut­zung des Ser­vics nicht opti­mal an, wenn man viele Events auf ein­mal ver­ar­bei­ten wollte. Dies liegt unter ande­rem daran, dass die alte Imple­men­tie­rung der Step Func­tions auf 40 par­al­lele Ite­ra­tio­nen beschränkt war. Durch den neuen soge­nann­ten „Dis­tri­bu­ted Map Flow“ soll sich dies nun aller­dings ändern.

Der neue Dis­tri­bu­ted Map Flow erlaubt es, über meh­rere Mil­lio­nen Objekt, die in S3 gespei­chert sind, zu ite­rie­ren und anstatt 40 par­al­le­ler Work­flows sind nun bis zu 10.000 gleich­zei­tige Aus­füh­run­gen mög­lich. Bei der Arbeit mit ande­ren Ser­vices gilt es aber ein paar Dinge zu beach­ten. Dies ist zum einen der Grad an Par­al­le­li­tät den der jewei­lige Ser­vice unter­stützt und zum ande­ren wie schnell die­ser maxi­male Grad an Par­al­le­li­tät erreicht wird.

Obige Ein­schrän­kung wird deut­lich, wenn man das Zusam­men­spiel von AWS Lambda mit den neuen Step Func­tions betrach­tet. Das Kon­tin­gent par­al­le­ler Aus­füh­run­gen einer Lambda Funk­tion liegt per default ledig­lich bei 1000 pro Region und somit deut­lich unter dem Maxi­mum der Step Functions.

Die „Dis­tri­bu­ted Map Flows“ sind in Europa ledig­lich in Frank­furt, Irland und Stock­holm ver­füg­bar. Preis­lich ver­än­dern sich bestehende Inline-Maps nicht. Für die Dis­tri­bu­ted Map Flows berech­net Ama­zon wie zuvor auch schon State-Chan­ges pro Ite­ra­tion. Die Kos­ten sind aller­dings mit 0,025$ pro 1000 State-Chan­ges als über­schau­bar einzuschätzen.

AWS Code­Ca­ta­lyst

Als Ent­wick­ler sowie als Bera­ter ist es oft­mals reiz­voll in ein neues Pro­jekt zu sto­ßen, neue Auf­ga­ben ken­nen­zu­ler­nen und diese zu bewäl­ti­gen. Die Vor­freude kann aller­dings manch­mal gebremst wer­den, denn die Anfänge eines Pro­jekts kön­nen zäh sein. Es müs­sen zunächst Grund­la­gen geschaf­fen wer­den, wie bei­spiels­weise das erstel­len von Con­fluence-Sei­ten zur Doku­me­na­tion, Jira Boards, Pipe­lines, Test­um­ge­bun­gen und so wei­ter und so kön­nen einige Tage und Wochen ver­ge­hen, bis die eigent­li­chen Ent­wick­lungs­pro­zesse wirk­lich beginnen.

Auch für die Ent­wick­lern bei Ama­zon scheint die­ses Phä­no­men zu gel­ten und so ent­schied man sich mit Code­Ca­ta­lyst ein For­mat zu schaf­fen, dass diese Start­phase beschleu­ni­gen soll. Code­Ca­ta­lyst bie­tet schluss­end­lich sei­nen Nut­zern ein ver­ein­heit­lich­tes Frame­work zur Soft­ware­ent­wick­lung inner­halb der Struk­tu­ren der AWS. Dies beinhal­tet neben Blue­prints, Issue-Manage­ments und Dash­boards auch CICD-Pipe­lines basie­rend auf eben jenen Blue­prints, um die ent­wi­ckel­ten Resul­tate schnell und ein­fach zu deployen.

Da der Ser­vice erst in der Pre­view ist, ergibt es noch kei­nen Sinn auf alle Aspekte von Code­Ca­ta­lyst detail­liert ein­zu­ge­hen und diese vor­zu­stel­len, da sicher noch einige Fea­tures hin­zu­kom­men bezie­hungs­weise erwei­tert wer­den. All­ge­mein lässt sich aber jetzt schon abse­hen, dass Code­Ca­ta­lyst das Soft­ware-Deve­lo­p­ment in der AWS beschleu­ni­gen und durch die Stan­dar­di­sie­rung auch den Wech­sel zwi­schen Teams ver­ein­fa­chen kann. Ama­zon Code­Ca­ta­lyst ist seit Dezem­ber im Free Tier ver­füg­bar und kann somit, zumin­dest nahezu, ohne Kos­ten ver­probt werden.

Sto­rage

Es schien ruhig um den Objekt­da­ten­spei­cher, doch im Dezem­ber ver­öf­fent­lichte AWS noch ein­mal eine Änderung.

Ama­zon S3: Encryp­tion by Default

Sicher­heit ist der wich­tigste Bau­stein einer Clou­dar­chi­tek­tur und die Ver­schlüs­se­lung von Daten ist ein ele­men­ta­rer Bestand­teil. Aus die­sem Grund ver­schlüs­selt AWS nun alle Dateien by Default, sofern es nicht anders defi­niert wird, ser­ver­sei­tig. Mit Ama­zon SSE-S3 erstellt Ama­zon für jedes Objekt einen eige­nen, ein­deu­ti­gen Schlüs­sel zum Ver­schlüs­seln der Daten und ver­schlüs­selt den Schlüs­sel selbst mit einem soge­nann­ten „Root-Key“.

Das Vor­ge­hen, ser­ver­sei­tig zu ver­schlüs­seln, war immer schon eine Best Prac­tice. Nun ist es aber die Default Ein­stel­lung und wird auto­ma­tisch auf alle neu ange­leg­ten Buckets ange­wen­det. Alte Buckets, die die frü­here S3-Default-Ver­schlüs­se­lung nut­zen, wer­den nicht geändert.

Die Ände­rung ist im Dezem­ber in allen AWS Regio­nen in Kraft getre­ten inklu­sive der Gov­Cloud und den Regio­nen in China. Es fal­len keine neuen Kos­ten bei der Nut­zung von S3 an.

Mes­sa­ging

Ein wich­ti­ger Bestand­teil von pay-as-you-go ist es, auf Events reagie­ren zu kön­nen und Res­sour­cen dem­entspre­chend zu ska­lie­ren. In der AWS kann dies über Event­Bridge erreicht wer­den und so ist der Ser­vice ele­men­tar in nahezu jeder event-dri­ven Architektur.

Ama­zon EventBridge

Mit den neuen Ama­zon Event­Bridge Pipes möchte Ama­zon die Kom­mu­ni­ka­tion zwi­schen Ser­vices ver­ein­fa­chen.  Event Dri­ven Pipes sol­len eine kos­ten­ef­fi­zi­ente Mög­lich­keit dar­stel­len, Punkt-zu-Punkt Ver­bin­dun­gen zwi­schen Pro­du­zen­ten und Kon­su­men­ten von Nach­rich­ten zu erstel­len. Eine Pipe kann im ein­fachs­ten Fall ledig­lich aus einem Kon­su­men­ten und einem Pro­du­zen­ten bestehen. Es kön­nen aller­dings auch Nach­rich­ten gefil­tert oder mit­tels Lamb­das, Step Func­tions oder ande­rer AWS Ser­vices ange­rei­chert werden. 

Der­zeit unter­stützt Event­Brdige Pipes nur eine über­schau­bare Anzahl von Quel­len und Zie­len, jedoch wer­den die wich­tigs­ten Ser­vices bereits unter­stützt. Poten­ti­elle Pro­du­zen­ten sind bei­spiels­weise Dyna­moDB, SQS oder Kine­sis Data Streams und poten­ti­elle Kon­su­men­ten Lambda, Kine­sis oder Step Func­tions. Event­Bridge unter­stützt außer­dem soge­nann­tes Event Orde­ring. Das bedeu­tet, dass Event­Bridge die Rei­hen­folge, in der die Nach­rich­ten emp­fan­gen wer­den, beibehält.

Ama­zon Event­Bridge Pipes sind in allen AWS Regio­nen ver­füg­bar mit Aus­nahme einer Region in Asien sowie der Region in Zürich.

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.