Upgrade to Pro — share decks privately, control downloads, hide ads and more …

re:Invent 2024 SaaS系Workshop紹介

re:Invent 2024 SaaS系Workshop紹介

Uchida Takashi

January 24, 2025
Tweet

Other Decks in Technology

Transcript

  1. © 2024 Anti-Pattern Inc. re:Invent 2024 SaaS系Workshops一覧 Workshops • SAS301 –

    Solving the SaaS cost-per-tenant puzzle: An inside look • SAS304 – Inside the SaaS Builder Toolkit: A hands-on deep dive [REPEAT] • SAS402 – SaaS survivor: Building a rich multi-tenant operations experience • SAS403 – SaaS microservices deep dive: Multi-tenancy meets microservice • SAS404 – Automate SaaS provisioning & deployment with Kubernetes DevOps tooling • SAS405 – SaaS and RAG: Maximizing generative AI value in multi-tenant solutions • ARC402 – Scaling multi-tenant SaaS with a cell-based architecture SaaS系Workshopsは全部で7つ
  2. © 2024 Anti-Pattern Inc. re:Invent 2024 SaaS系Workshops一覧 Workshops • SAS301 –

    Solving the SaaS cost-per-tenant puzzle: An inside look • SAS304 – Inside the SaaS Builder Toolkit: A hands-on deep dive [REPEAT] • SAS402 – SaaS survivor: Building a rich multi-tenant operations experience • SAS403 – SaaS microservices deep dive: Multi-tenancy meets microservice • SAS404 – Automate SaaS provisioning & deployment with Kubernetes DevOps tooling • SAS405 – SaaS and RAG: Maximizing generative AI value in multi-tenant solutions • ARC402 – Scaling multi-tenant SaaS with a cell-based architecture SaaS系Workshopsは全部で7つ 参加した中から4つのworkshopsを紹介
  3. © 2024 Anti-Pattern Inc. SAS301 Solving the SaaS cost-per-tenant puzzle:

    An inside look テナントごとのコストをどのように計測するかを体験できるワークショップ Workshopsの構成 Lab 1 • Shared Services(コントロールプレーン)をセットアップします。 Lab 2 ~ Lab 4 • 3つの異なるSaaSアーキテクチャで Coarse-grainedアプローチとFine-grainedアプローチを紹介します。 ◦ Lab 2:サーバーレスSaaSアーキテクチャ ◦ Lab 3:Amazon Aurora PostgreSQLを使用したプール型コンテナ SaaSアーキテクチャ ◦ Lab 4:Amazon S3を使用したサイロ型コンテナ SaaSアーキテクチャ Lab 5 • Amazon QuickSightを利用し、Amazon AthenaとCUDOSを使ってコストをクエリ・可視化する手法を学習します。
  4. © 2024 Anti-Pattern Inc. SAS301 Coarse-grained approach First Step: テナントごとの

    APIコール数を計測する 日本語訳 テナントの利用状況をおおまかに把握するだけで十分な場合には、 粗粒度のアプローチ が有効です。この方法では、取得に大きな手 間をかけずに済むシンプルな使用量メトリクスに注目します。私たちの場合、最も容易かつ「十分に実用的」なソリューションは、各テナ ントが当社のプロダクトおよび注文サービスを呼び出す際に行われる APIコールの回数 を追跡することです。 上記はLab 2での文章ですが、 Lab 2 - Lab 4まで一貫して記載されています。 出典 :https://catalog.us-east-1.prod.workshops.aws/workshops/6743cde7-2471-46fc-863f-5830b98f3d36/en-US/4-serverlessservices/42-code-changes-coarse-grained
  5. © 2024 Anti-Pattern Inc. SAS301 Lab2 Fine-grained approach 取得したいログ •

    Lambdaのduration time • DynamoDBのRCU/WCU (read and write capacity units) 実装方法 • Lambdaでまとめてログに出力 ◦ Lambda ExtensionのTelemetry APIを使用 ◦ DynamoDBのReturnConsumedCapacityパラメータ ◦ aws_lambda_powertooolsのLoggerをカスタム
  6. © 2024 Anti-Pattern Inc. SAS301 Lab3 Amazon Aurora PostgreSQLを使用したプール型コンテナ SaaSアーキテクチャ

    出典:https://catalog.us-east-1.prod.workshops.aws/workshops/6743cde7-2471-46fc-863f-5830b98f3d36/en-US/5-containerizedservices-ecs-aurora
  7. © 2024 Anti-Pattern Inc. SAS301 Lab3 Fine-grained approach 取得したいログ •

    共有しているECSのリクエスト実行時間 • 共有しているデータベースのアクティブセッション、 IOPSや実行時間、ストレージ 実装方法 • ECSはサイドカーコンテナで EMF(Embedded metric format)を使用してtenantid単位で収集 ◦ Lambdaでログ収集 • DBの負荷はAmazon RDS Performance Insights DB Load metrics ◦ AWS SDKからメトリクスを収集 • IOPSはpg_stat_statementsを有効にし、ユーザー単位で取得 ◦ Lambdaでクエリを実行
  8. © 2024 Anti-Pattern Inc. SAS301 Lab3 Fine-grained approach 取得したいログ •

    ECSのタスク • S3の各プレフィックスのストレージ、データ転送量、 APIリクエスト 実装方法 • コンソールから設定 ◦ ECSのSCAD(split cost allocation data)を有効化 ◦ S3 ストレージレンズを有効化
  9. © 2024 Anti-Pattern Inc. SAS304 – Inside the SaaS Builder

    Toolkit: A hands-on deep dive SBT(SaaS Builder Toolkit)を体験できるワークショップ Workshopsの構成 • Lab 1 - SaaS Builder Toolkit (SBT) Background • Lab 2 - Deploy Control Plane • Lab 3 - Deploy Application Plane • Lab 4 - ECS SaaS Reference Solution on SBT • Lab 5 - AWS Marketplace Integration
  10. © 2024 Anti-Pattern Inc. SAS304 Lab1 SaaS Builder Toolkit (SBT)

    Background 出典:https://catalog.us-east-1.prod.workshops.aws/workshops/236fe656-f781-4862-a1a9-51becf126857/ja-JP/lab-1/1-design-overview
  11. © 2024 Anti-Pattern Inc. SAS304 Lab4 ECS SaaS Reference Solution

    on SBT 出典:https://catalog.us-east-1.prod.workshops.aws/workshops/236fe656-f781-4862-a1a9-51becf126857/en-US/lab-4
  12. © 2024 Anti-Pattern Inc. SAS403 – SaaS microservices deep dive:

    Multi-tenancy meets microservice マイクロサービスのマルチテナント Saasificationを体験できるワークショップ Lab1 Deploying your first multi-tenant microservice • マイクロサービスがテナントコンテキストを取得する方法 • テナントコンテキストを使用してテナントリソースにアクセスする方法 Lab2 Tenant isolation • なぜテナント分離ポリシーが必要か • TVM(Token Vending Machine)の導入 Lab3 Service-to-service communication • マイクロサービス間通信でのテナントコンテキストの共有方法
  13. © 2024 Anti-Pattern Inc. SAS403 – SaaS microservices deep dive:

    Multi-tenancy meets microservice マイクロサービスのマルチテナント Saasificationを体験できるワークショップ Lab4 Multi-tenant microservice routing • テナントコンテキストを使用したアプリケーションルーティング Lab5 Authorizing multi-tenant requests • Amazon Verified Permissions を使用した認可 • テナントごとのポリシーのカスタマイズ Lab6 Tenant-aware metrics and monitoring • EMFでテナント/ティア別のメトリクスを分析
  14. © 2024 Anti-Pattern Inc. SAS405 – SaaS and RAG: Maximizing

    generative AI value in multi-tenant solutions マルチテナント GenAI RAG SaaS ソリューションの構築を体験できるワークショップ Workshopsの構成 • Lab1 - Introducing Multi-Tenancy in RAG • Lab2 - Tenant Isolation in multi-tenant RAG architecture ◦ ABAC(Attribute-Based Access Control)による分離 • Lab3 - Enable tenant throttling experience • Lab4 - Calculating Cost Per Tenant
  15. © 2024 Anti-Pattern Inc. SAS405 Lab2 ABAC(Attribute-Based Access Control)による分離 JWTから取得したtenantid,

    knowledgebaseidをassumeroleする際にタグとして含めている Iam policyをroleのタグで動的にアクセス制御
  16. © 2024 Anti-Pattern Inc. re:Invent 2024 まとめ 本日紹介した workshopsのリンク • SAS301

    – Solving the SaaS cost-per-tenant puzzle: An inside look ◦ https://github.com/aws-samples/aws-saas-tenant-usage-and-cost-attribution ◦ https://d1.awsstatic.com/events/Summits/reinvent2023/SAS404_Designing-and-implementing-a-S aaS-cost-per-tenant-strategy.pdf • SAS304 – Inside the SaaS Builder Toolkit: A hands-on deep dive [REPEAT] ◦ https://github.com/awslabs/sbt-aws ◦ https://catalog.us-east-1.prod.workshops.aws/workshops/236fe656-f781-4862-a1a9-51becf12685 7/en-US • SAS403 – SaaS microservices deep dive: Multi-tenancy meets microservice ◦ https://github.com/aws-samples/aws-saas-factory-saas-microservices-workshop ◦ https://catalog.workshops.aws/saas-microservices/en-US • SAS405 – SaaS and RAG: Maximizing generative AI value in multi-tenant solutions ◦ https://github.com/aws-samples/aws-saas-genai-rag-workshop ◦ https://catalog.us-east-1.prod.workshops.aws/workshops/224f4cc0-cefb-4e29-95fa-365ad5a7ef28 /en-US