MEGAZONEブログ
Serverlesspresso:Building event-driven applications from the start
サーバーレスプレッソ:イベントドリブン型アプリケーションを最初から構築する
Pulisher : Cloud Technology Center キム・ビョンジュ
Description : step functionsを通じたAWSサービス連携と分岐処理、DynamoDBを連動させる方法についてのワークショップセッション
はじめに
event-driven applicationsは非常に難しいテーマです。
サーバーレスシステムの利点を100%活用して駆動されるアプリケーションは、驚くほど「イベント」発生時のみ動作するインフラで構成されています。
このようなアーキテクチャーは、当然のことながら、AWSが言うコスト効率的なシステム、可用性、耐久性において非常に大きな利点を持っています。しかし、このようなアーキテクチャーは無償で得られるものではありません。
このセッションを通じ、このようなアーキテクチャで実際に適用した事例を検証し、より良いガイダンスができるようにすることが目標です。
セッションの概要紹介
セッションはワークショップの実際の長さが合計12時間で、これを2時間で進めるため、多くの部分をテストできないのが残念でした。
しかし、サーバーレス環境のDynamoDB、Eventbridge、Lambda、API Gatewayなど様々なサービスがStep Functionで連動することを確認することができました。
当該ワークショップを通じて構築される実際のサービスがどのように動作するのか、短い動画リンクを残します。
(46) Serverlesspresso at re:Invent 2021 – YouTube
このワークショップで使用する技術は以下の通りですが、ほとんどのLambda、API Gateway、SNS、DynamoDBはすでにCloudformationで配布されているため、セッションではEventBridge、Step Functions、IoT Coreを集中的に使用します。
AWS Step FunctionsはASL(Amazon State Language)で構成された代表的なワークフローサービスです。最近になってevent-driven architectureの事例では欠かせない代表的なサービスになり、データ分析事例でもこれを活用することができます。一番大きなメリットとしては、コーディングなしで200個のAWSのサービスを連携することができるという点があります。
実は上の2つの画像を見れば分かるように、実際にこのワークショップはコーヒーを注文してキューを立ち上げて、アプリと連動させるという長い道のりのワークショップで構成されています。実際、ワークショップを進行する際、2時間の間にModule 2までやっと完了した状況なので(…)多少ご了承ください。
実際に構築したいアーキテクチャは以下の通りです。 このワークショップでは、EventBridge、Step Functionsを設定することに集中することになります。
Step Functionは上の写真のようにEventBridgeのイベントが発生すると、Stepfunctionが回ってDynamoDBを通じてお店が開店したか確認し、バリスタキューが十分か確認し、注文が完了したか確認し、このような過程が入ったWorkflowを動作させます。
このワークショップでは、人と人とのアクションが必須であるため、バリスタの幸せも考慮されています。例えば、上記のようなStep functionでバリスタのCapacityをチェックしてくれるような面白い部分も考慮されている面白い部分も存在します。
Display app / baristaアプリの画面は以下の通りです。ユーザーはDisplay appに表示されたQRコードからウェブにアクセスして注文することができます。
ユーザーアプリでEspressoを注文したら?
正常に動作していることが確認できます。
セッションを終えて
2時間のセッションでしたが、実際のセッションで多くのことをやってみなかったので、結論を書くのが難しい部分があります。ただ、一つ確かなことは、Step functionを通じたAWSサービスの連携、そして分岐処理DynamoDBを連動する方法が従来は不慣れでしたが、一段と簡単になりました。すべての過程が、そしてすべての環境がサーバーレス上で開発が進行されるため、テストする時、私たちはサービスの動作だけを気にし、そのサービスの細部は気にしなかったという点も非常に素晴らしいと思いました。
もし、このセッションやワークショップに興味がある方は、下記のリンクをご参考にして進行するのも大きな助けになると思います!もちろん、今日進行したセッションとは内容の違いはあります。
Welcome to the Serverlesspresso workshop! :: Serverlesspresso(serverlesscoffee.com)