2022, Amazon Web Services, Inc. or its affiliates. 公共のお客様からお聞きするサーバーレスの悩み 3 移⾏を検討した ことがある⽅ 🧐 • ベンダーロックインされるのでは··· • いまのアーキテクチャを全部移し替えるのは··· • 公共での事例あるの︖
2022, Amazon Web Services, Inc. or its affiliates. アジェンダ • サーバーレスのおさらい • フルスタックフレームワークと⽐較したサーバーレス開発 • 地⽅·(公共)の案件こそ、サーバーレス • 公共のお客様からお聞きするサーバーレスの悩み • サーバーレスをはじめるなら、まずはここから 9
2022, Amazon Web Services, Inc. or its affiliates. ⼀般的なWebアプリを例に考える 25 ① https://xxxx.com/shop/a/ ②https://xxxx.com/shop/b/ 店舗aに関する メニュー・⼝コミ 店舗bに関する メニュー情報・⼝コミ レストラン情報が掲載されている情報サイト
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を⽣成
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 など)
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
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/
2022, Amazon Web Services, Inc. or its affiliates. プロジェクト作成 AWS SAM Accelerateを利⽤した開発の全体像 58 コードを記述 デプロイ テスト ログの確認 $ sam init $ sam sync --watch $ sam logs --tail 繰り返し
2022, Amazon Web Services, Inc. or its affiliates. RDSへの接続数問題 • Lambdaはデータベースの接続数を逼迫 • 実⾏環境が破棄されるまで、使われていないのに 接続が残ってしまう可能性 • Lambdaはすぐスケールしていく 60 Amazon Aurora VPC
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 下川 賢介
2022, Amazon Web Services, Inc. or its affiliates. 地⽅·公共の案件こそ、サーバーレスに向いている 案件の性質(⾃治体様に依ります) • EC2インスタンスを定常的に動かすほど、リクエスト数がこない場合もある 73 AWS Cloud VPC Availability Zone Availability Zone Public subnet Public subnet ⼤きいサーバーでAZ冗⻑化 リクエスト数に対し費⽤が⾼額になるケースもある
2022, Amazon Web Services, Inc. or its affiliates. 地⽅·公共の案件こそ、サーバーレスに向いている パートナー様が抱える課題(パートナー様に依ります) • ⼈数が少ないため、アプリケーション開発のみ請け負っており、インフラ部分は外注 74 AWS Cloud VPC Availability Zone Public subnet サーバーの管理を⾏う⼈的リソースがない django Ruby on rails etc... A社 B社
2022, Amazon Web Services, Inc. or its affiliates. 公共のお客様からお聞きするサーバーレスの悩み • ベンダーロックインされるのでは··· • OSの上に⼀から作り上げるよりも逆にロックインにはなりにくいとも 考えられる • いまのアーキテクチャを全部移し替えるのは··· • 公共での事例あるの︖ 81
2022, Amazon Web Services, Inc. or its affiliates. 公共のお客様からお聞きするサーバーレスの悩み • ベンダーロックインされるのでは··· • OSの上に⼀から作り上げるよりも逆にロックインにはなりにくいとも 考えられる • いまのアーキテクチャを全部移し替えるのは··· • 公共での事例あるの︖ 82
2022, Amazon Web Services, Inc. or its affiliates. API サーバーレス実装が選択されたタイミング 新サービスの実装 既存の仕組みへの機能追加 既存処理の刷新 既存アーキテクチャの最適化 モバイル/ Web by オージス総研 by サイオステクノロジー IoT by PSソリューションズ by リクルートライフスタイル データ分析/ データレイク
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
2022, Amazon Web Services, Inc. or its affiliates. 公共のお客様からお聞きするサーバーレスの悩み • ベンダーロックインされるのでは··· • いまのアーキテクチャを全部移し替えるのは··· • 既存システムの⼀部だけ・新機能に対して使うという選択肢も • 公共での事例あるの︖ 94
2022, Amazon Web Services, Inc. or its affiliates. 公共のお客様からお聞きするサーバーレスの悩み • ベンダーロックインされるのでは··· • いまのアーキテクチャを全部移し替えるのは··· • 既存システムの⼀部だけ・新機能に対して使うという選択肢も • 公共での事例あるの︖ 95
2022, Amazon Web Services, Inc. or its affiliates. 公共のお客様からお聞きするサーバーレスの悩み • ベンダーロックインされるのでは··· • いまのアーキテクチャを全部移し替えるのは··· • 公共での事例あるの︖ • いっぱいあります。ただ、公開事例では新規構築が多い 99