re:Invent 2023に行ってきた②

この投稿は、2023年JINSのアドベントカレンダー5日目の記事です。
## 自己紹介
前日の私の記事に書いてあります！
[re:Invent 2023に行ってきた①](https://qiita.com/tskoma/items/8a2b2cd9e38b80473dad)
## 今日のおはなし
昨日はre:Inventの概要編だったので、今日はEXPOで見かけた個人的に面白かったコンテンツを紹介します！
### Serverlesspressoとは
EXPOの中をふらふら歩いていたら....コーヒー屋さんがありました！
![IMG_1495（大）.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618521/322bbd25-4c06-a6f9-2016-8fa6d1039c5f.jpeg)
### 注文の流れ
ディスプレイの左下にあるQRコードを読み取ると、まずは電話番号による認証が行われ、6桁のコードを入力すると認証が完了します(ここは画像を撮り損ねました....)。
その後、ドリンクの種類を選び、
![IMG_1496.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618521/ea54def1-6ef2-2072-5984-905bb6202955.png)
カスタマイズを選び、
![IMG_1497.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618521/4ffd5e73-0d16-ea28-c6c3-775fdf918189.png)
"Order Now:coffee:"をクリックすると、
![IMG_1498.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618521/440b12a0-1b20-95b1-2599-208a4b9f16bf.png)
オーダーをおっきい画面で見てねーと言われるので、
![IMG_1442.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618521/9659308e-1bfe-e66a-4e5c-73c99f3562c3.png)
画面を見ると自身のオーダ番号が表示されて、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618521/89be33ba-bd1d-1cf8-43c4-faa3103beac2.png)
コーヒーが出来上がります！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618521/6571a15f-eb96-3467-7072-b6eb0b140f09.png)
### アーキテクチャ
(その場ではあまり詳細聞くことできなかったので、公開されている色々を元にまとめてみました、もし間違いに気付けばご指摘ください。)
このServerlesspresso、名前の通り全てAWS上でサーバレスのみで構成されている仕組みになっています。
re:Invent 2022ではDr Werner VogelsのKeynoteでも少し触れられていたようです！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618521/8001b8c3-06c0-b1a4-9ca2-aed3e86cb183.png)
アーキテクチャ図は以下となり、Serverlesspressoは[イベント駆動アーキテクチャ(EDA)](https://serverlessland.com/event-driven-architecture/what-are-event-driven-architectures)で構成されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618521/df3c4ddf-e3d6-fbd6-0a0a-2afe65012af7.png)
イベント駆動アーキテクチャは名前の通りイベントをトリガーとしてサービス間の通信を行う構成です。
すごくざっくり各AWSサービスは以下のような役割のようです。
* フロントエンド
    * S3でユーザ/ディスプレイ/バリスタの3つのアプリがホスティング
* アクセスレイヤ
    * API Gatewayでビジネスロジックとデータレイヤにアクセス
* イベント
    * EventBridge Event busがオーダーや認証などのイベントをトリガーにマイクロサービス間を接続
* ワークフロー
    * Step Functionsがコーヒーのオーダからお渡しまでのプロセスをオーケストレーション
* リアルタイムメッセージ
    * IoT CoreがtopicWebsocketsでオーダや認証などのステータスをリアルタイム連携

### コスト
サービスにかかるコストは1日あたり1000人が利用する想定で以下となり、1日たった$0.62のようです！
| サービス | 費用 | 
| --- | --- | 
| AWS Amplify Console | $0.28 | 
| Amazon API Gateway | $0.01 | 
| Amazon Cognito | free | 
| Amazon DynamoDB | $0.01 | 
| Amazon EventBridge | $0.01 | 
| AWS IoT Core | $0.01 | 
| AWS Lambda | $0.01 | 
| AWS Step Functions | $0.29 | 

30日間使ったとしても$18.6なので、昨今の円安為替でも約3000円弱は驚きの安さです。
正直なところ仮に小さなEC2を1台動かすだけでも1ヶ月でこの何倍かしらという感覚なので、改めてサーバレスの魅力を感じます。
## まとめ
耐障害性や拡張性も兼ねたサーバレスオンリーのマイクロサービスで、かつこれだけの低コストで作れるのが改めてすごいなと感じました。
個人的にまだここまでのマイクロサービスを作ったことはないので、Serverlesspressoの仕組みを調べていくことだけでもすごく勉強になりました。
最近、JINSはコーヒ事業[ONCA COFFEE](https://www.onca-coffee.com/)を始めましたし、一部店舗ではQRコードのスキャンで始まる受付システムを作っていたりするので、すごく参考にできそうな面白い仕組みだなと感じました。
この仕組みを構築できるワークショップも公開されているので、どこかのタイミングでがっつりお勉強も兼ねて取り組んでみたいと思っています。
https://workshop.serverlesscoffee.com/

明日は@komdeによる「CircuitPython開発の小技集」となります！