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

フルスタックフレームワークと比較して理解するサーバーレスと公共分野での活用方法

yuyeah
October 01, 2022

 フルスタックフレームワークと比較して理解するサーバーレスと公共分野での活用方法

ここでは、普段Webアプリは開発しているけど、まだサーバーレス使ったことない···という方向けに、フルスタックフレームワークと比較しながらサーバーレスのアーキテクチャ・開発方法をご説明しています。
また、地方·公共分野でなぜサーバーレスが活用いただけるのかの背景から、サーバーレス活用事例・いまからサーバーレスを始める場合におすすめな学習コンテンツについてもご紹介します。

yuyeah

October 01, 2022
Tweet

Other Decks in Technology

Transcript

  1. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. フルスタックフレームワークと⽐較して理解する サーバーレスと公共分野での活⽤⽅法 松本 侑也 (Matsumoto Yuya) J A W S E X P E R T O N L I N E アマゾン ウェブサービス ジャパン 合同会社 パブリックセクター 技術統括本部 ソリューションアーキテクト
  2. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスに対してこんな悩みないですか︖ 2 使うか悩んでいる⼈ 🤔 • 開発のイメージが湧かない··· (いままでフルスタックフレームワーク使ってた) • 構成要素が多くて複雑そう··· (RDS Proxy? Lambda Layer?)
  3. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 公共のお客様からお聞きするサーバーレスの悩み 3 移⾏を検討した ことがある⽅ 🧐 • ベンダーロックインされるのでは··· • いまのアーキテクチャを全部移し替えるのは··· • 公共での事例あるの︖
  4. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 本セッションの対象者 • フルスタックフレームワークを使ったことがあり、 サーバーレスを使うか悩んでいる⽅ • 地⽅、または公共分野のソフトウェア開発に携わっている⽅ 4
  5. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 今⽇の⽬標 サーバーレスの開発イメージ・地⽅/公共分野での活⽤⽅法をお伝え 5 「サーバーレス、いいじゃん︕使ってみようかな。」 と思っていただく︕︕
  6. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. ⾃⼰紹介 松本 侑也 アマゾン ウェブサービス ジャパン 合同会社 パブリックセクター 技術統括本部 ソリューションアーキテクト ⾃治体のお客様のクラウド活⽤⽀援・テンプレート作成を担当 好きなAWSサービス ・サーバーレスサービス、IaC 6
  7. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 本⽇話さないこと 7 ここ半年程度であったAWS Lambdaのアップデート - AWS Lambda が属性ベースのアクセス制御 (ABAC) のサポートを発表 https://aws.amazon.com/jp/about-aws/whats-new/2022/07/aws-lambda-support-abac/ - Function URLs https://aws.amazon.com/jp/blogs/news/announcing-aws-lambda-function-urls-built-in-https- endpoints-for-single-function-microservices/ - AWS Lambda Powertools for TypeScript の⼀般提供が開始 https://aws.amazon.com/jp/about-aws/whats-new/2022/07/aws-lambda-powertools- typescript-available/ - AWS Lambda で Lambda 関数⽤に最⼤ 10 GB のエフェメラルストレージの設定が可能に https://aws.amazon.com/jp/about-aws/whats-new/2022/03/aws-lambda-configure- ephemeral-storage/ etc···
  8. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 本⽇話さないこと 8 ここ半年程度であったAWS Lambda/StepFunctionsのアップデート https://aws.amazon.com/jp/events/aws-innovate/apj/modern-apps/ 「より便利でつかいやすくなったAWS Lambdaと AWS Step Functionsのアップデート情報」 AWS Innovate - Modern Applications Edition 松岡 勝也
  9. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. アジェンダ • サーバーレスのおさらい • フルスタックフレームワークと⽐較したサーバーレス開発 • 地⽅·(公共)の案件こそ、サーバーレス • 公共のお客様からお聞きするサーバーレスの悩み • サーバーレスをはじめるなら、まずはここから 9
  10. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスとは
  11. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスとは サーバーがない? サーバーの存在を意識しない
  12. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスとは 電源・ネットワーク ラッキング HWメンテナンス OSパッチ ミドルウェアパッチ 定形運⽤設計 スケールアウト設計 ミドルウェア導⼊ OS導⼊ アプリケーション作成 オンプレミス 仮想サーバー(EC2) 電源・ネットワーク ラッキング HWメンテナンス OSパッチ ミドルウェアパッチ 定形運⽤設計 スケールアウト設計 ミドルウェア導⼊ OS導⼊ アプリケーション作成 サーバーレス 電源・ネットワーク ラッキング HWメンテナンス OSパッチ ミドルウェアパッチ 定形運⽤設計 スケールアウト設計 ミドルウェア導⼊ OS導⼊ アプリケーション作成 セルフマネージ AWSマネージ
  13. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. なぜサーバーレスなのか︖ • 開発者の⽅がやりたいことは何か︖ 13 サーバーの管理 エンドユーザーに 価値を届ける
  14. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. AWS Lambdaの位置付け 14 © 2022, Amazon Web Services, Inc. or its affiliates. 2022/04/06 – Pythonの基礎から解説︕サーバレス開発はじめの⼀歩 AWS Lambdaの位置づけ セルフマネージド AWSマネージド Compute EC2 Elastic Beanstalk AWS Lambda Fargate Databases MySQL on EC2 RDS MySQL RDS Aurora Aurora Serverless DynamoDB Storage S3 Messaging Amazon MQ Kinesis SQS / SNS Analytics Hadoop on EC2 EMR Elasticsearch Service Athena
  15. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. AWS Lambda の特徴 15 • サーバーのプロビジョニング/管理なしでプログラムを実⾏できるサービス • コードの実⾏やスケーリングに必要なことは、Lambda 側で実施するので、 開発者の⽅はコードを書くことにより集中できる • リクエストベースの料⾦体系 実⾏回数 (無料枠あり) 実⾏時間 (単価は確保したメモリによる) (無料枠あり) +
  16. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. f(x) = {…} 呼び出し元 処理対象 例・API呼び出し ・データ変更イベント ・ファイル配置イベント… 例・DBアクセス ・ファイル出力 ・別の処理を呼び出し… 負荷に応じて 処理を多重化 g(x) = {…} h(x) = {…} AWS Lambdaを使⽤した処理構成 イベント駆動
  17. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. AWS Lambda におけるコーディングイメージ 17 • 対応⾔語 • Python、Java、Go、PowerShell、Node.js、C#、Ruby ※2022/04 • サポートされていない⾔語は、カスタムランタイムを実装することで利⽤可能 • ハンドラーで呼び出す関数を指定する • デフォルトでは lambda_function.lambda_handler
  18. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスのためのビルディングブロック Amazon DynamoDB Amazon SNS Amazon API Gateway Amazon SQS Amazon Kinesis Amazon S3 Orchestration and State Management API Proxy Messaging and Queues Analytics Monitoring and Debugging Compute Storage Database AWS X-Ray AWS Step Functions Edge Compute AWS Lambda AWS LambdaEdge AWS AppSync Amazon Cognito
  19. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 実戦でよく使われるユースケースパターン 19 https://aws.amazon.com/jp/serverless/patterns/serverless-pattern/
  20. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. フルスタックフレームワークと ⽐較したサーバーレス開発 20
  21. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスに対してこんな悩みないですか︖ 21 使うか悩んでいる⼈ 🤔 • 開発のイメージが湧かない··· (いままでフルスタックフレームワーク使ってた) • 構成要素が多くて複雑そう··· (RDS Proxy? Lambda Layer?) 再 掲
  22. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスに対してこんな悩みないですか︖ 22 使うか悩んでいる⼈ 🤔 • 開発のイメージが湧かない··· (いままでフルスタックフレームワーク使ってた) • 構成要素が多くて複雑そう··· (RDS Proxy? Lambda Layer?) 再 掲
  23. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. フルスタックフレームワークとサーバーレスの⽐較 • アーキテクチャの違いから理解するサーバーレス • 開発⼿法の違いから理解するサーバーレス • ライブラリのimport • ローカルでの開発 23
  24. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. フルスタックフレームワークとサーバーレスの⽐較 • アーキテクチャの違いから理解するサーバーレス • 開発⼿法の違いから理解するサーバーレス • ライブラリのimport • ローカルでの開発 24
  25. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. ⼀般的なWebアプリを例に考える 25 ① https://xxxx.com/shop/a/ ②https://xxxx.com/shop/b/ 店舗aに関する メニュー・⼝コミ 店舗bに関する メニュー情報・⼝コミ レストラン情報が掲載されている情報サイト
  26. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. フルスタックフレームワークで実現する場合 26 Webサーバー htmlテンプレート データベース データ取得ロジック レストランaの ページ情報
  27. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. フルスタックフレームワークを使った場合のアーキテクチャ 27 AWS Cloud VPC Availability Zone Availability Zone Private subnet Public subnet Private subnet Private subnet Public subnet Private subnet Instances Instances RDS RDS Application Load Balancer htmlを受け取り 表⽰ リクエストが来た際 htmlを⽣成
  28. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. フルスタックフレームワークに代表される機能 ルーティング テンプレートなどを利⽤したHTML構成 ORMを使ったDB操作 ユーザ管理 28
  29. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. フルスタックフレームワークに代表される機能 ルーティング テンプレートなどを利⽤したHTML構成 ORMを使ったDB操作 ユーザ管理 29 EC2 RDS
  30. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. フルスタックフレームワークに代表される機能 ルーティング テンプレートなどを利⽤したHTML構成 ORMを使ったDB操作 ユーザ管理 30 EC2 RDS サーバーレスだと、どうなる︖🤔
  31. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスを使ったウェブアプリケーションの典型例 31 Amazon API Gateway Amazon Simple Storage Service (Amazon S3) Amazon CloudFront AWS Lambda Amazon Aurora Amazon DynamoDB Database AWS Cloud Amazon Cognito
  32. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. • 単⼀の HTML ページで構成されている Web アプリケーション • HTML のレンダリングおよびリクエストのルーティングがクライアント (≒ブラウザ)で⾏われる • 同⼀のページ内で⾏われる • ページ遷移がサクサク動く • React / Vue.js / Angular あたりが有名 Single Page Application (SPA) 32 Web Browser .js .html .css ① 初回リクエスト ② HTML/JS/CSS ③ API リクエスト ④ レスポンス (JSON など)
  33. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスを使ったウェブアプリケーションの典型例 33 Amazon API Gateway Amazon Simple Storage Service (Amazon S3) Amazon CloudFront AWS Lambda Amazon Aurora Amazon DynamoDB Database AWS Cloud Amazon Cognito ユーザー管理 ビジネスロジック データの取得・更新 ルーティング (API) テンプレート/ ルーティング(ページ)
  34. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスを使ったウェブアプリケーションの典型例 34 Amazon API Gateway Amazon Simple Storage Service (Amazon S3) Amazon CloudFront AWS Lambda Amazon Aurora Amazon DynamoDB Database AWS Cloud Amazon Cognito ①html·jsをダウンロード
  35. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスを使ったウェブアプリケーションの典型例 35 Amazon API Gateway Amazon Simple Storage Service (Amazon S3) Amazon CloudFront AWS Lambda Amazon Aurora Amazon DynamoDB Database AWS Cloud Amazon Cognito ①html·jsをダウンロード ②Amazon Cognitoで認証
  36. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスを使ったウェブアプリケーションの典型例 36 Amazon API Gateway Amazon Simple Storage Service (Amazon S3) Amazon CloudFront AWS Lambda Amazon Aurora Amazon DynamoDB Database AWS Cloud Amazon Cognito ①html·jsをダウンロード ②Amazon Cognitoで認証 ③店舗情報をAPIで取得 { menu: [“唐揚げ”, “枝豆”] }
  37. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスを使ったウェブアプリケーションの典型例 37 Amazon API Gateway Amazon Simple Storage Service (Amazon S3) Amazon CloudFront AWS Lambda Amazon Aurora Amazon DynamoDB Database AWS Cloud Amazon Cognito ①html·jsをダウンロード ②Amazon Cognitoで認証 ③店舗情報をAPIで取得 ④React/Vueで描画
  38. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスを使ったウェブアプリケーションの典型例 38 Amazon API Gateway Amazon Simple Storage Service (Amazon S3) Amazon CloudFront AWS Lambda Amazon Aurora Amazon DynamoDB Database AWS Cloud Amazon Cognito ユーザー管理 ビジネスロジック データの取得・更新 ルーティング (API) テンプレート/ ルーティング(ページ) どう開発していく︖
  39. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. フルスタックフレームワークとサーバーレスの⽐較 • アーキテクチャの違いから理解するサーバーレス • 開発⼿法の違いから理解するサーバーレス • ライブラリのimport • ローカルでの開発 39
  40. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. フレームワークでの開発の進め⽅ 40 プロジェクト作成 コードを記述 テスト ログの確認 繰り返し $ django-admin startproject mysite $ python manage.py runserver $ pip install requests requirements.txt
  41. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. AWS Lambda関数の作成⼿順 • Lambda関数のコードを記述 • Lambda関数をビルドしてパッケージ化 • Zip形式とコンテナ形式が選択できる • ビルドしたパッケージをAWS環境にデプロイ • 指定したイベントでLambda関数が実⾏される 41
  42. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. LambdaのデプロイにはAWS Serverless Application Model (SAM)が利⽤可能 https://aws.amazon.com/serverless/sam/ • AWS上のサーバーレスアプリケーションを構築 するためのオープンソース フレームワーク • 関数、API、データベース、イベントソース マッピングを表現する簡易な⽂法を使⽤ • デプロイ時にSAMの⽂法を AWS CloudFormationの⽂法に変換、展開 • すべてのAWS CloudFormationリソースタイプをサ ポート 42
  43. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. SAMでより簡潔にサーバーレス アプリを定義できる AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' Description: HelloWorld Resources: HelloWorld: Type: 'AWS::Serverless::Function' Properties: Handler: index.handler Runtime: python3.8 CodeUri: src/handlers/func1 Description: HelloWorld MemorySize: 128 Timeout: 3 Events: HelloApi Type: Api Properties: Path: /hello Method: get GET /hello CloudFormation Stack Permissions Role 43
  44. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. ローカルの開発環境でSAM CLIを利⽤する • マネージメントコンソールやAWS CLIでも可能だが… • マネージメントコンソールによる関数作成の課題 • ⼿元のソースコードとのマッピングができない • ⼿作業によるミスの可能性 • 関数の増加に伴い管理が困難に • Infrastructure as Codeによる⾃動化のメリット • 本番環境と同じ環境を検証環境に構築できる • リポジトリによるバージョン管理が可能 • ミスなく迅速にリリース可能 44
  45. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. SAMによるServerless構築の流れ SAM template CloudFormation ロード 作成/変更/削除 トランスパイル SAM CloudFormation Stack Bucket package package $ sam init $ sam build $ sam deploy 45
  46. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. Demo - SAMによるプロジェクト作成・デプロイ -
  47. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 47
  48. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. フルスタックフレームワークとサーバーレスの⽐較 • アーキテクチャの違いから理解するサーバーレス • 開発⼿法の違いから理解するサーバーレス • ライブラリのimport • ローカルでの開発 48
  49. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. ライブラリのimport • 1つのサーバーに全ての依存関係を import 49 EC2 フルスタックフレームワークの場合 Lambda サーバーレスの場合 • Lambda関数ごとに依存関係を import $ pip install requests requirements.txt requirements.txt $ pip install -r requirements.txt -t . ローカルで実⾏したい場合
  50. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. Demo - Lambda関数へのモジュールの追加 -
  51. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 51
  52. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. ライブラリのimport • 1つのサーバーに全ての依存関係を import 52 EC2 フルスタックフレームワークの場合 Lambda サーバーレスの場合 • Lambda関数ごとに依存関係を import $ pip install requests requirements.txt • 関数ごとに requirements.txt に依存関係を書くだけ︕︕ requirements.txt $ pip install -r requirements.txt -t . ローカルで実⾏したい場合
  53. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. フルスタックフレームワークとサーバーレスの⽐較 • アーキテクチャの違いから理解するサーバーレス • 開発⼿法の違いから理解するサーバーレス • ライブラリのimport • ローカルでの開発 53
  54. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. フレームワークでの開発の進め⽅ 54 プロジェクト作成 コードを記述 テスト ログの確認 繰り返し $ django-admin startproject mysite $ python manage.py runserver $ pip install requests requirements.txt
  55. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. AWS SAM Accelerateが2022/6/30に⼀般公開︕︕ 55 • ローカルのコードの修正を検知して⾃動デプロイ • ログとトレースの収集と表⽰ AWS Lambda関数の⾼速なデプロイ(開発アカウント⽤) $ sam sync --watch $ sam logs --tail https://aws.amazon.com/jp/about-aws/whats-new/2022/06/aws-sam-accelerate-test-code-against-cloud/
  56. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. Demo
  57. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 57
  58. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. プロジェクト作成 AWS SAM Accelerateを利⽤した開発の全体像 58 コードを記述 デプロイ テスト ログの確認 $ sam init $ sam sync --watch $ sam logs --tail 繰り返し
  59. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスに対してこんな悩みないですか︖ 59 使うか悩んでいる⼈ 🤔 • 開発のイメージが湧かない··· (いままでフルスタックフレームワーク使ってた) • 構成要素が多くて複雑そう··· (RDS Proxy? Lambda Layer?) 再 掲
  60. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. RDSへの接続数問題 • Lambdaはデータベースの接続数を逼迫 • 実⾏環境が破棄されるまで、使われていないのに 接続が残ってしまう可能性 • Lambdaはすぐスケールしていく 60 Amazon Aurora VPC
  61. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. RDS Proxyを挟んで解決︕ 61 Amazon Aurora VPC Amazon RDS Proxy • Lambda関数は、データベースインスタンスではなくRDS Proxyと対話 • Lambda関数呼び出しごとに新しいコネクションを作成するのではなく、 既存のコネクションを再利⽤ https://aws.amazon.com/jp/blogs/news/using-amazon-rds-proxy-with-aws-lambda/
  62. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 開発が進んでくると··· フルスタックフレームワークの場合 62 EC2 project/ polls/ __init__.py apps.py urls.py … books/ … project/ polls/ __init__.py apps.py urls.py … books/ __init__.py … utils.py 処理を 共通化したいな 🤔
  63. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスで処理を共通化したい場合 Lambda Layer • Lambda 関数で使⽤するライブラリ・コードを 含めることができる • 1つのLambda 関数には最⼤ 5 つのレイヤーを追加できる 63 Layer A Layer B Layer A Layer B sam-app ├── functions │ └── hello_world │ ├── app.py │ └── requirements.txt ├── layer │ └── python │ └── utils.py ├── template.yaml └── tests
  64. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. RDS Proxyで接続数問題を解決! Lambda Layerで共通化! 64 Amazon Aurora VPC Amazon RDS Proxy Lambda Layer Lambda Layer 慣れないうちに、すべて考慮して始めると複雑😓 まずはシンプルにはじめる
  65. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスのよいところ RDS Proxy 後 か ら 容易 に新 しい 機 能を 付 け ⾜ すこ と が で きる 65 HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/hello_world/ Handler: app.lambda_handler Runtime: python3.9 Architectures: - x86_64 Policies: - VPCAccessPolicy: {} VpcConfig: SecurityGroupIds: - sg-0b9ec5a278d7688e8 SubnetIds: - subnet-0036904f6e03cd564 Environment: Variables: RDS_ENDPOINT:sam-db-rds-endpoint Layers: - !Ref CommonLayer
  66. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスのよいところ RDS Proxy 後 か ら 容易 に新 しい 機 能を 付 け ⾜ すこ と が で きる 66 HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/hello_world/ Handler: app.lambda_handler Runtime: python3.9 Architectures: - x86_64 Policies: - VPCAccessPolicy: {} - Statement: - Effect: Allow Action: rds-db:connect Resource: arn:aws:rds:ap-northeast-1:xxxxxxxx2:db-proxy:prx-xxxxfbcc50fee VpcConfig: SecurityGroupIds: - sg-0b9ec5a278d7688e8 SubnetIds: - subnet-0036904f6e03cd564 Environment: Variables: RDS_ENDPOINT: sam-db-proxy.xxxxxxx.rds.amazonaws.com Layers: - !Ref CommonLayer RDS Proxyへの権限追加 Lambdaの環境変数書き換え
  67. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスのよいところ Lambda Layer 後 か ら 容易 に新 しい 機 能を 付 け ⾜ すこ と が で きる 67 HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/hello_world/ Handler: app.lambda_handler Runtime: python3.9 Architectures: - x86_64 Policies: - VPCAccessPolicy: {} VpcConfig: SecurityGroupIds: - sg-0b9ec5a278dxxxxxx SubnetIds: - subnet-0036904fxxxxxxxx Environment: Variables: RDS_ENDPOINT:sam-db-rds-endpoint
  68. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスのよいところ Lambda Layer 後 か ら 容易 に新 しい 機 能を 付 け ⾜ すこ と が で きる 68 # Lambda Layer CommonLayer: Type: AWS::Serverless::LayerVersion Properties: Description: generate http response ContentUri: 'layer/’ CompatibleRuntimes: - python3.9 Metdata: BuildMethod: python3.9 HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/hello_world/ Handler: app.lambda_handler Runtime: python3.9 Architectures: - x86_64 Policies: - VPCAccessPolicy: {} VpcConfig: SecurityGroupIds: - sg-0b9ec5a278xxxxxx SubnetIds: - subnet-0036904f6e0xxxxxx Environment: Variables: RDS_ENDPOINT:sam-db-rds-endpoint Layers: - !Ref CommonLayer Lambda Layer⾃体の定義 Lambda関数にLambda Layerを追加するコード
  69. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. もっと詳しく知りたい⽅は··· 69 https://aws.amazon.com/jp/events/aws-innovate/apj/modern-apps/ 「もはやアンチパターンではない、AWS Lambda からのリレーショナル・データベース利⽤ 」 AWS Innovate - Modern Applications Edition 下川 賢介
  70. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスに対してこんな悩みないですか︖ 70 使うか悩んでいる⼈ 🤔 • 開発のイメージが湧かない··· (いままでフルスタックフレームワーク使ってた) • 構成要素が多くて複雑そう··· (RDS Proxy? Lambda Layer?) 再 掲
  71. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. 地⽅/公共の案件こそ、 サーバーレス 71
  72. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 地⽅のソフトウェア開発の状況は変わりつつある • 5年に1回のリプレースまではあまり⼿を⼊れない • カスタマイズされたロジックを組み込む必要があるので⼿を加えにくい (昔のアプリを継ぎ⾜し継ぎ⾜しで使うしかない) • Windows· Javaアプリケーションが主流 72 • 短納期・変化する要件に合わせたサービスを提供する必要性 • ⾃治体でもDX戦略部が設⽴ • インターネット経由で住⺠の要望に合わせて素早くサービスを提供できる 仕組みが必要
  73. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 地⽅·公共の案件こそ、サーバーレスに向いている 案件の性質(⾃治体様に依ります) • EC2インスタンスを定常的に動かすほど、リクエスト数がこない場合もある 73 AWS Cloud VPC Availability Zone Availability Zone Public subnet Public subnet ⼤きいサーバーでAZ冗⻑化 リクエスト数に対し費⽤が⾼額になるケースもある
  74. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 地⽅·公共の案件こそ、サーバーレスに向いている パートナー様が抱える課題(パートナー様に依ります) • ⼈数が少ないため、アプリケーション開発のみ請け負っており、インフラ部分は外注 74 AWS Cloud VPC Availability Zone Public subnet サーバーの管理を⾏う⼈的リソースがない django Ruby on rails etc... A社 B社
  75. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 地⽅·公共の案件こそ、サーバーレスに向いている • EC2インスタンスを定常的に動かすほど、リクエスト数がこない 場合もある • リクエストベースでの起動 • 関数ごとにスケーリング • サーバーの管理を⾏う⼈的リソースがない • OS·サーバーの管理不要 • アプリケーションコードを書くことに集中できる 75
  76. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. 公共のお客様から お聞きする悩み 76
  77. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 公共のお客様からお聞きするサーバーレスの悩み 77 移⾏を検討した ことがある⽅ 🧐 • ベンダーロックインされるのでは··· • いまのアーキテクチャを全部移し替えるのは··· • 公共での事例あるの︖ 再 掲
  78. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 公共のお客様からお聞きするサーバーレスの悩み • ベンダーロックインされるのでは··· • いまのアーキテクチャを全部移し替えるのは··· • 公共での事例あるの︖ 78
  79. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. ベンダーロックインされるのでは 79 仮想サーバー 電源・ネットワーク ラッキング HWメンテナンス OSパッチ ミドルウェアパッチ 定形運⽤設計 スケールアウト設計 ミドルウェア導⼊ OS導⼊ アプリケーション作成 サーバーレス 電源・ネットワーク ラッキング HWメンテナンス OSパッチ ミドルウェアパッチ 定形運⽤設計 スケールアウト設計 ミドルウェア導⼊ OS導⼊ アプリケーション作成 OSの上に独⾃でソフトウェア構築 ソフトウェアの構成や運⽤が ブラックボックスに システム改修・マイグレーションが 困難になり、ロックインされる 仕様が公開されている 運⽤経験があるエンジニアも多数 システム改修・マイグレーション時も 修正点、⼯数の把握が容易 OSの上にイチからソフトウェアを組み上げるより、ロックインになりにくいとも考えられる
  80. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 公共のお客様からお聞きするサーバーレスの悩み • ベンダーロックインされるのでは··· • OSの上に⼀から作り上げるよりも逆にロックインにはなりにくいとも 考えられる • いまのアーキテクチャを全部移し替えるのは··· • 公共での事例あるの︖ 81
  81. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 公共のお客様からお聞きするサーバーレスの悩み • ベンダーロックインされるのでは··· • OSの上に⼀から作り上げるよりも逆にロックインにはなりにくいとも 考えられる • いまのアーキテクチャを全部移し替えるのは··· • 公共での事例あるの︖ 82
  82. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. マイグレーションパターン(7R) 妥当性 確認 移⾏ 運⽤ 移⾏ツール の使⽤ Replatform (Lift & Reshape) Retain そのまま保持 Refactor (リライト/アプリケーションの 疎結合化) アプリケーションや インフラアーキテクチャの再設計 アプリ ケーション 開発 Repurchase (リ プ レ ー ス 、 買 い 替 え ) パッケージや SaaS の購⼊や ライセンス契約 Rehost (Lift and Shift) 基盤となる インフラの 変更 ライフサイクル管理 ALM / SDLC ⼿ 動 設定 デプロイ インストール Retire/廃⽌ ⾃動化 ⼿動インストール セットアップ インテグ レーション 移⾏先プラット フォームの決定 (OS version, DB エンジン等) vMotion Relocate VMware Cloud on AW S 構成の決定 移⾏パスの決定 ≒ 移⾏戦略 ディスカバー/アセスメント /アプリケーションの優先順位 付け AWS の考えるマイグレーション戦略には 7 つの R がある 6 Strategies for Migrating Applications to the Cloud https://aws.amazon.com/jp/blogs/enterprise-strategy/6-strategies-for-migrating-applications-to-the-cloud/ Six Common Strategies for Migration: "The 6 R's" https://d1.awsstatic.com/Migration/migrating-to-aws-ebook.pdf
  83. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. マイグレーションパターン(7R) ラベル 移⾏ パターン名 移⾏パターンの説明 例 Retain (保持) • お客様はサーバーとアプリケーションをオンプレミス環境に残 す • 移⾏の対象ではない • 解決できない物理的な依存性 • Mainframe/AS400 • X86ではないUnixアプリケーション Retire (リタイア) • オンプレミス環境でサーバーやアプリケーションを廃⽌する • 移⾏の対象ではない • 既存の廃⽌プログラムの範囲に含まれるもの • DR⽬的でクラスター化されたホスト • 代替HAホスト Relocate (リロケート) • アプリケーション変更不要の移⾏ • VMware 仮想環境のクラウド拡張/移⾏ • VMware Cloud on AWS Rehost (ホスト変更) • サーバーをそのままオンプレ環境からクラウドに移⾏する • クラウドで稼働させるためには最⼩限の変更が必要になる場合 がある • AWS Server Migration Service / AWS Application Migration Service を使⽤したオンプレミスの仮想サー バーの EC2 インスタンスへの移⾏ Repurchase (買い替え) • アプリケーションを SaaS や新しいパッケージアプリケーショ ンに置き換える • CRM to Salesforce.com Replatform (プラットフォーム変更) • アプリケーションをコンテナ化してクラウドへ移⾏する • アプリケーションの変更が必要になる場合がある • データベースをマネージドサービスへ移⾏する • OS やデータベースを変更する • アプリケーションのコンテナ化して ECS / EKS へ移⾏ • Amazon RDS / Amazon Aurora への移⾏ • AWS App2Container, AWS Elastic Beanstalk Refactor (リファクタリング) • アプリケーションアーキテクチャーを再構築して最適化する • モノリスからマイクロサービスへ移⾏する • マイクロサービス • サーバーレス • Amazon API Gateway / AWSLambda / Amazon DynamoDB R 1 R 2 R 3 R 4 R 5 R 6 R 7 ⼀部・新機能だけRefactorする という選択肢もある
  84. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 各フェーズにおける作業量⽐較 85
  85. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスの狙い所 検討のきっかけ、タイミング どこから⼿を付けるか? - 効果に繋がりやすいワークロードの特性 - 既存システムに対する典型的なアプローチ (ストラングラーパターン)
  86. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. API サーバーレス実装が選択されたタイミング 新サービスの実装 既存の仕組みへの機能追加 既存処理の刷新 既存アーキテクチャの最適化 モバイル/ Web by オージス総研 by サイオステクノロジー IoT by PSソリューションズ by リクルートライフスタイル データ分析/ データレイク
  87. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 既存業務の⾼度化、部分的な機能改善
  88. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 増分型/追加型の適⽤ 90
  89. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 機能を部分的に少しづつ切り出す 91 既存レガシーシステム → ストラングラーパターン
  90. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 各フェーズにおける作業量⽐較 92 机上の検討だけではなく、PoCもしながら 効果がありそうか検証していく
  91. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. もっと詳しく知りたい⽅は··· 93 https://aws.amazon.com/jp/events/aws-innovate/apj/modern-apps/ 「モダンアプリケーションへの 段階的移⾏のための デザインパターン 」 AWS Innovate - Modern Applications Edition Noguchi Shingo
  92. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 公共のお客様からお聞きするサーバーレスの悩み • ベンダーロックインされるのでは··· • いまのアーキテクチャを全部移し替えるのは··· • 既存システムの⼀部だけ・新機能に対して使うという選択肢も • 公共での事例あるの︖ 94
  93. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 公共のお客様からお聞きするサーバーレスの悩み • ベンダーロックインされるのでは··· • いまのアーキテクチャを全部移し替えるのは··· • 既存システムの⼀部だけ・新機能に対して使うという選択肢も • 公共での事例あるの︖ 95
  94. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスが公共のお客様に採⽤された例 • デジタル・スマートシティ浜松 • https://aws.amazon.com/jp/solutions/case-studies/hamamatsu-city/ • 藤枝市向け「ごみ収集業務管理システム」 • https://aws.amazon.com/jp/blogs/news/fujieda-city-and-sbs-psp-gomi-shushu/ • 愛媛県庁「エールラボえひめ」 • https://aws.amazon.com/jp/blogs/news/yell-lab-ehime-on-aws/ • 国⽴⼤学法⼈神⼾⼤学様 | MKI (三井情報株式会社) • https://www.mki.co.jp/case/kobeuniv.html • 上智⼤学様(教学⽀援/履修登録システム)|導⼊事例|NURO Biz(ニューロ・ビズ) • https://biz.nuro.jp/case/sophia-loyola/ • 三沢市細⾕町内会様 - 最新事例 | 株式会社ヘプタゴン (heptagon.co.jp) • https://heptagon.co.jp/%E4%B8%89%E6%B2%A2%E5%B8%82%E7%B4%B0%E8%B0%B7%E7%9 4%BA%E5%86%85%E4%BC%9A%E6%A7%98/ 96
  95. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 藤枝市向け「ごみ収集業務管理システム」 • 藤枝市では、⾝体が不⾃由な⽅を対象に「ごみの⼾別回収」を実施 • 過去の実績を参考に属⼈的な判断・運⽤で回収ルートを決めることで対応 →今後の利⽤者増加を⾒込むと労⼒・時間の増⼤が懸念 • 市内に点在する利⽤者の住居を、運⾏する⾞両台数に応じて振り分けし、 最短経路となるルート順をシステムで提⽰ 97 「そして何より初期費⽤がかからず、運⽤まで考慮 したときに⾮常に低コストで運⽤できることが、 AWSを採⽤した理由です。今回のソリューションは、 多くの⾃治体の現場が抱える業務継続の不安を安全 にかつ安価な投資で解消する1つの解答としてご提 供することで、クラウドサービスの利⽤に対する理 解を深めていただき、現場が抱えるさまざまな問題 の発掘につながることを期待しています。」
  96. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 愛媛県庁「エールラボえひめ」 • ⾃分たちの周りにある愛媛の課題を、⾃分たちの⼒で解決するためのプラット フォーム • 時間や場所にとらわれず、デジタル上のプラットフォームで同じ課題意識を持った ⼈がつながり、課題解決に向けた検討をスタートさせる • テーマごとにコミュニティを作り、⽅向性がまとまればプロジェクトとして稼働す るスターター 98 開発フェーズ︓ 「サーバレスなので、開発時のインフラコストを極 ⼩化できる」こと、「サービスのログやバックアッ プが容易」に設定できること 運⽤フェーズ︓ 「マネージドサービスを利⽤することで、運⽤保守 の従来作業の⼤部分をカットできる(⾃動スケール、 機器メンテナンス、セキュリティパッチ、アップ デートのタイミングのお知らせなど)」、「サーバ レスなので、インフラコストの極⼩化が可能」であ ること
  97. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 公共のお客様からお聞きするサーバーレスの悩み • ベンダーロックインされるのでは··· • いまのアーキテクチャを全部移し替えるのは··· • 公共での事例あるの︖ • いっぱいあります。ただ、公開事例では新規構築が多い 99
  98. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. これからサーバーレスを はじめるなら︕ 100
  99. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. サーバーレスの始め⽅ https://d1.awsstatic.com/serverless-jp/contents/202112_LearningSteps.pdf 101 • アプリ開発を体験︕ • 開発環境の準備 • アーキテクチャの作り⽅ • データソースの選択 • 例外処理・リトライ・フロー管理
  100. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. AWS Hands-on for Beginners〜 Serverless 編 〜 102
  101. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. まとめ 103
  102. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. アジェンダ • サーバーレスのおさらい • フルスタックフレームワークと⽐較したサーバーレス開発 • 地⽅/公共の案件こそ、サーバーレス • 公共のお客様からお聞きするサーバーレスの悩み • サーバーレスをはじめるなら、まずはここから 104 再 掲
  103. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. 今⽇の⽬標 サーバーレスの開発イメージ・地⽅/公共分野での活⽤⽅法をお伝え 105 「サーバーレス、いいじゃん︕使ってみようかな。」 再 掲 と思っていただけていたら幸いです
  104. © 2022, Amazon Web Services, Inc. or its affiliates. ©

    2022, Amazon Web Services, Inc. or its affiliates. Thank you! © 2022, Amazon Web Services, Inc. or its affiliates. Thank you! © 2022, Amazon Web Services, Inc. or its affiliates.