第四開発事業部の西田です。
1日目2件目のセッションです。
Wynnから新名所のSphereを見ながら、Caesars Forumに移動します。
フレッ⚪︎ペリーのようなマークと観覧車が目印です。
セッション内容
サーバーレスアーキテクチャへの移行理由と架空シナリオ
架空のレストラン向けSaaSをモデルにサーバーレスアーキテクチャへ移行する理由(コスト削減や運用効率の向上など)について説明。
2000年代初頭のソフトウェアダウンロードモデルからAWS上での管理ホスティングソリューションへの移行、古いコードとSaaSモデルへの近代化をどう実現するか。
マルチテナントとテナントに関する考慮事項
SaaSアプリケーションをサーバレス化して拡大していくにはテナント戦略が重要である。
技術的課題と解決策
SaaSにサーバーレスアーキテクチャを組み合わせることでレガシーコードやテナントの分離やコストなどの技術的課題を解決できる。
AWSのサーバーレスサービス
AWSのサーバーレスサービスの用途ごとの分類。
一般底なサーバーレスのWebシステムの構成とテナントを分けたデプロイメントモデル。
どれだけでもテナントを増やしていける。
ただしこれだけではまだ不十分。
統合パターンとデータアクセス
一般的なサーバーレスアーキテクチャのエントリーポイント。
エントリーポイント(ドメイン)をテナントごとに分けるパターンについて。
ログイン認証フロー。Cognitoを使った独自実装と外部のID基盤と連携する方法。
認証時にオーソライザーでテナントIDを判定することでログインのテナント分離を行う。
DynamoDBはパーティション。S3はキーを分けることでテナントを分離する。
Lambdaのロールでもアクセスできないよう条件を付与する。
AWSサービスを連携させるためのパターン。
同期呼び出し、SQSを使った非同期連携、SNSを使ったPub/Sub形式の連携。
SQSでもテナントを意識することができる。
EventBridgeとStep Functionsを使ったイベントオーケストレーション。
CloudFormationによるIaCでインフラリソースの変更と複数環境の迅速な展開。
既存顧客のサーバーレスへの移行戦略
古い機能を移行し、顧客に新しい価値を提供し、小さな顧客から移行を進めることが移行を成功させる。
まとめとして、サーバーレスはSaaSにとても適しており、紹介してきたテナントコンテキスト実装はマルチテナントの基礎であり、サーバーレス統合パターンにより迅速でスケーラブルな価値を顧客に提供できる。
感想
テナントを縛る実装はよく考えるのですが、こんな実現方法もあったのかと目から鱗な内容でした。