Slide 1

Slide 1 text

The Frugal Architectの観点から 眺めるServerless KOITABASHI Yoshitaka 2024/1/12 yoshii0110 1

Slide 2

Slide 2 text

2024/1/12 yoshii0110 2 KOITABASHI Yoshitaka @yoshii0110 Momento/Community Advocate スタートアップへの技術支援 JAWS-UG コンテナ支部運営 Amazon EC2, AWS Fargate, AWS App Runner 🥷 💕

Slide 3

Slide 3 text

AWS re:Invent 2023 Keynote: Amazon.com CTO Dr.Werner Vogels 2024/1/12 yoshii0110 3

Slide 4

Slide 4 text

The Frugal Architect 2024/1/12 yoshii0110 4 https://thefrugalarchitect.com/

Slide 5

Slide 5 text

コストを意識した持続可能な 最新のアーキテクチャを構築するための シンプルな考え方 2024/1/12 yoshii0110 5 Simple laws for building cost-aware, sustainable, and modern architectures

Slide 6

Slide 6 text

• LAW 1: 非機能要件にコストを加えること • LAW 2: システムにかけるコストがビジネスにマッチ状況を継続すること • LAW 3: アーキテクチャを決断することはトレードオフの連続である • LAW 4: 観測できないシステムコストは青天井なコストである • LAW 5: コストを意識したアーキテクチャがコスト管理を実現する • LAW 6: 段階的なコスト最適化を適用する • LAW 7: 挑戦のない成功は思い込みにつながる 2024/1/12 yoshii0110 6 The Frugal Architectに書かれている7つの規則

Slide 7

Slide 7 text

非機能要件 • 特定の機能ではなく、シスステムの動作を判断するための基準 • 例えば、アクセシビリティ、可用性、拡張性、セキュリティ、移植性、 保守性、コンプライアンスなど 2024/1/12 yoshii0110 7

Slide 8

Slide 8 text

なぜコストが重要なのか • コストが収益よりも高くなればビジネスリスクとなってしまうため • コストへの影響を考慮することで、機能、市場投入までの時間、 効率のバランスが取れたシステムを設計する必要がある 2024/1/12 yoshii0110 8 リソースの使用量分の支出 収益

Slide 9

Slide 9 text

オンプレとAWSとの考え方の違い 2024/1/12 yoshii0110 9

Slide 10

Slide 10 text

2024/1/12 yoshii0110 10 これだけ多くのサービスがあり、 組み合わせ方は無数

Slide 11

Slide 11 text

我々に求められることは これらのコンポーネントの正しい組み合わせ方、使い方 2024/1/12 yoshii0110 11

Slide 12

Slide 12 text

アーキテクチャはトレードオフの連続 • アーキテクチャにおいては、あらゆる決定にトレードオフが発生 • コスト、パフォーマンス、回復性はよく天秤にかけられる非機能要件 • 技術のニーズとビジネスのニーズのバランスを見つける必要がある • frugalは、単に支出を最小化するのではなくて、価値を最大化すること • 何のためにコストを払うのか 2024/1/12 yoshii0110 12 LAW III: https://thefrugalarchitect.com/laws/architecting-is-a-series-of-trade-offs.html

Slide 13

Slide 13 text

観測できないシステムコストは未知数 作りっぱなしの資源や、無駄なスケールアップ、スケールアウトを しっぱなしでそれに気づいていないケースありません? そんな時はちゃんとコストの可視化を行い定期的にチェックしましょう。 2024/1/12 yoshii0110 13 LAW IV: https://thefrugalarchitect.com/laws/unobserved-systems-lead-to-unknown-costs.html

Slide 14

Slide 14 text

いつも一辺倒なアーキテクチャになってませんか? 周りに流されてませんか? 2024/1/12 yoshii0110 14

Slide 15

Slide 15 text

挑戦されない成功は思い込みにつながる • 単に過去にやったことがあるという理由だけで、 アーキテクチャ、テクノロジー、言語などを最良の選択として採用しがち • これによって、誤った安心感みたいなものが生まれるので、 現状の技術やアーキテクチャに疑問を持ったり、 当たり前だと思っていたことが、当たり前じゃなかったなんてことはある なので、常に疑問を持ち、最適化、改善する方法を探すことが重要 2024/1/12 yoshii0110 15 LAW VII : https://thefrugalarchitect.com/laws/unchallenged-success-leads-to-assumptions.html

Slide 16

Slide 16 text

AWS Well-Architectedと”コスト最適化の柱” • コストの可視化や、最適化をしようとした際に使えるのが、 COST1/COST3 • 組織レベルでのコスト要件を定めて運用するなら、COST5 • ワークロードレベルでコンピュータリソースの需要を分析するなら COST9 2024/1/12 yoshii0110 16 https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/cost-optimization-pillar/welcome.html

Slide 17

Slide 17 text

コストの最適化は段階的に • 常に今のアーキテクチャを見つめ直し、疑問を持ち掘り下げること • 資源の使用状況を監視し、廃棄物の削減を特定する • Amazonでも、本番環境のサービスを継続的に監視し、 非効率な箇所を削減している • レイテンシとインフラストラクチャのコストを段階的に削減することで、 サービスのコストを最適化 2024/1/12 yoshii0110 17

Slide 18

Slide 18 text

Nubankさんの事例の話: ① • 9000万人のユーザを抱えるブラジル4番目に大きな金融機関 • 最初はクレジットカードから始まり、口座、保険、投資領域に手を出 し、サービス全体がマイクロサービスとして構成される • ただ、これらが困ったのは、全体のシステムの安定性とコストがト レードオフになってしまうことだった 2024/1/12 yoshii0110 18

Slide 19

Slide 19 text

Nubankさんの事例の話: ② • 原因が何かを考えた時に、爆発的なコストは安定性を実現するため に注ぎ込んでいたコンピュータリソースにあったのではないかと。 • そこで、キャッシュ戦略に着目。 • NVMe SSDとElastiCacheでのキャッシュを選択し、コスト削減 2024/1/12 yoshii0110 19

Slide 20

Slide 20 text

さて、改めてThe Frugal Architectを見つめると サーバレスアーキテクチャが頭をよぎる 2024/1/12 yoshii0110 20

Slide 21

Slide 21 text

サーバレスの特徴 1. プロビジョン不要、管理不要 2. 最低料金のない使った分だけの支払 3. 1つの API 呼び出しで利用可能 4. 計画停止がない 5. インスタンスが無い 2024/1/12 yoshii0110 21 https://www.gomomento.com/blog/fighting-off-fake-serverless-bandits-with-the-true-definition-of-serverless

Slide 22

Slide 22 text

では、全てのサービスがサーバレスでよくない?? ・・・いいえ。それは違います。 2024/1/12 yoshii0110 22

Slide 23

Slide 23 text

2024/1/12 yoshii0110 23 • 水平方向のスケーラビリティを 可能にする分散アーキテクチャ • しばらく運用した後、 アーキテクチャが想定される負荷の 5%程度しかサポートできていなかった Amazon Prime Videoの分析ツールの例

Slide 24

Slide 24 text

2024/1/13 yoshii0110 24 変更後のアーキテクチャ

Slide 25

Slide 25 text

Amazon Prime Videoの分析ツールが サーバーレスからEC2、ECSに切り替えて 運用コストを削減 • Prime Videoの品質分析ツールは元々、大規模に実行する意図が なく作られていた • AWS StepFunctionsを使用した分散コンポーネントで構成 • オーケストレーションワークフローと、分散コンポーネント間でデータ が受け渡される処理に莫大なコストがかかっていた • そこで、1プロセスでの実行ができるようEC2およびECSを使用した アーキテクチャに変更 • かかっていたコストの90%を削減できたという結果 2024/1/12 yoshii0110 25 https://www.primevideotech.com/video-streaming/scaling-up-the-prime-video-audio-video- monitoring-service-and-reducing-costs-by-90

Slide 26

Slide 26 text

コストをビジネスに合わせて 継続的に調整するシステム • システムの耐久性についても、コストがビジネスモデルに どの程度マッチしているかによって決まる。 • 例を挙げると例えば、予想しているトラフィックに対してインフラが どうスケールするのかによって、運用コストが変化する 2024/1/12 yoshii0110 26 LAW II : https://thefrugalarchitect.com/laws/systems-that-last-align-cost-to-business.html

Slide 27

Slide 27 text

2024/1/12 yoshii0110 27 進化するアーキテクチャを構築しろ。 アーキテクチャは時間と共に変化するもの

Slide 28

Slide 28 text

re:Invent 2023で登場したサーバレスサービス • Amazon Aurora Limitless Database • Amazon ElastiCache Severless 2024/1/12 yoshii0110 28 このタイミングなぜこれらが出たのでしょう。