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

ビットキーでのWell-Architectedな コスト削減のための事例集

ビットキーでのWell-Architectedな コスト削減のための事例集

More Decks by 株式会社ビットキー / Bitkey Inc.

Other Decks in Technology

Transcript

  1. Copyright © 2023 Bitkey Inc. All right reserved. ビットキーでのWell-Architectedな コスト削減のための事例集

    クラウドネイティブ環境下でのコスト削減の取り組み 株式会社ビットキー 田中崇博 2023/04/20
  2. 2 Copyright © 2023 Bitkey Inc. All right reserved. Outline

    1. 自己紹介 / 会社説明 2. はじめに 3. AWS Well-Architected Frameworkとは 4. コスト最適化の柱 5. ビットキーにおける事例 6. まとめ
  3. 4 Copyright © 2023 Bitkey Inc. All right reserved. 1.

    自己紹介 / 会社説明 田中 崇博 Takahiro Tanaka 2019.08 2022.04 2022.11 Webシステム開発企業に入社 医学生向けポータルサイトのソフトウェア開発を担当 認証基盤、会員管理、API開発、データマイグレーショ ンなどを担当 Webシステム開発事業からECシステム開発事業へ異動 会員管理、API開発、データマイグレーションなどを担 当 ビットキーへ参画 Third Placeチームのエンジニアとして、主に バックエンド領域の開発に従事
  4. 5 Copyright © 2023 Bitkey Inc. All right reserved. 1.

    自己紹介 / 会社説明 Mission: テクノロジーの力であらゆるものを 安全で便利で気持ちよく「つなげる」 創業:2018年8月 / 従業員数:233名 資本金:14,946,908,300円 (2022年12月31日時点 資本準備金を含む)
  5. 6 Copyright © 2023 Bitkey Inc. All right reserved. 1.

    自己紹介 / 会社説明 国内累計販売台数No.1でおなじみのbitlock ※2021年9月現在(ESP総研調べ)
  6. 7 Copyright © 2023 Bitkey Inc. All right reserved. 1.

    自己紹介 / 会社説明 個人だけでなく、法人向けにも展開 多彩な解錠方法や、入退室ログの管理・取得などもサポート
  7. 8 Copyright © 2023 Bitkey Inc. All right reserved. 1.

    自己紹介 / 会社説明 暮らし・仕事・体験の領域で、あらゆるサービスをつなげる
  8. 10 Copyright © 2023 Bitkey Inc. All right reserved. 2.

    はじめに 背景 ビットキーが創業してから5年を迎えるにあたり、 今までの設計/実装のスピード重視で構築してきた アーキテクチャを見直したい (ユーザーの急速な増加に伴い、 高負荷な状態に耐える必要が出てきた)
  9. 11 Copyright © 2023 Bitkey Inc. All right reserved. 2.

    はじめに 背景(なぜ現行のアーキテクチャを見直すのか) なぜ現行のアーキテクチャを見直す必要があるのか? • ユーザー数がどんどん増えていく中で、コストが線形に増えてしまっている • スケーラビリティ的にも問題があって、5年間でビジネスが成長した結果、 実装時には想定していなかった問題が起きてしまった
  10. 12 Copyright © 2023 Bitkey Inc. All right reserved. •

    今後更に利用ユーザー数が増加すること、 高い安定性が求められることが想定されるため、 今まで以上に安定したアーキテクチャを探る必要が出てきた • また、クラウドの利用コストが ここ1年で1.5倍にまで膨らんでしまっている 2. はじめに 背景(なぜ現行のアーキテクチャを見直すのか) なぜ現行のアーキテクチャを見直す必要があるのか? よって、コスト意識をもった刷新や実装が急務
  11. 13 Copyright © 2023 Bitkey Inc. All right reserved. 2.

    はじめに 背景(現行のアーキテクチャとコスト管理) ビットキーでは、IoTの部分をメインでAWSを利用している AWSをクラウドネイティブで使用している場合の コスト管理とはどうするのか ?
  12. 14 Copyright © 2023 Bitkey Inc. All right reserved. 2.

    はじめに クラウドネイティブの特徴とは? • 利用した分だけの支払いで済むのでコスト効率が高い • スケールアップ・スケールダウンが容易
  13. 15 Copyright © 2023 Bitkey Inc. All right reserved. 2.

    はじめに 課題(クラウドネイティブ環境のコスト管理とは) クラウドネイティブで利用していても、 「スケールアップが容易だからこそ、何かあったときに 気づかないうちにコストが急に上がることがある」ことや、 「どのくらいコストがかかるのかを予測できない」 という悩みからは逃れられない
  14. 16 Copyright © 2023 Bitkey Inc. All right reserved. 2.

    はじめに AWS Well-Archictected Frameworkのコスト最適化手法を参考にする コスト削減に向けて、自分たちで頑張るよりも、 まずは以下の点から、より効率のよいアーキテクチャの刷新や、 改善ができる AWS Well-Architected Frameworkをまず参考にした • AWS公式の手法であり、公式に推奨されている • AWSの顧客・パートナーにより立証されたベストプラクティスである • 極めて幅広い領域が網羅されている(技術的なテクニック・手法から、 財務管理と言った観点まで幅広く対応している)
  15. 17 Copyright © 2023 Bitkey Inc. All right reserved. 3.

    AWS Well-Architected Frameworkとは
  16. 18 Copyright © 2023 Bitkey Inc. All right reserved. 3.

    AWS Well-Architected Frameworkとは AWS Well-Architected Frameworkとは? AWSが提唱している、クラウドにおける ベストプラクティスをフレームワークとしてまとめたもの (補足:2023/04/10にアップデートされ、数多くのベストプラクティスが追加・更新されています) 出典: https://aws.amazon.com/jp/architecture/well-architected/
  17. 19 Copyright © 2023 Bitkey Inc. All right reserved. •

    オペレーショナルエクセレンスの柱 • セキュリティの柱 • 信頼性の柱 • パフォーマンス効率の柱 • コスト最適化の柱 • 持続可能性の柱 AWS Well-Architected Frameworkには、 6つの柱というベストプラクティスがある 今回は、以下の6つの柱のコスト最適化の柱について見ていく 3. AWS Well-Architected Frameworkとは AWS Well-Architected Framework 6つの柱
  18. 21 Copyright © 2023 Bitkey Inc. All right reserved. 4.

    コスト最適化の柱 コスト最適化の柱とは コスト最適化の柱では以下の目標達成を目的としていて、 以下の5点を達成するための支援を提供している • クラウド財務管理を実践する • 経費支出と使用量の認識 • コスト効率を考慮しながらリソースを利用する • 需要を管理しリソースを供給する • 継続的最適化
  19. 22 Copyright © 2023 Bitkey Inc. All right reserved. 4.

    コスト最適化の柱 コスト最適化の柱とは このうち、エンジニアが特に主体的に動きやすい、 以下の2点について、具体的に何をやっていくのかをメインに考えていく • コスト効率を考慮しながらリソースを利用する • 継続的最適化
  20. 23 Copyright © 2023 Bitkey Inc. All right reserved. コスト効率を考慮しながらリソースを利用するとは?

    • サービスの選定時からコストを評価する • 正しいリソースの種類・サイズ・数を選ぶ • リザーブドインスタンス・Savings Plans・ スポットインスタンスなどの料金プランを活用する • データの転送にも気を使う 以上の点を考慮しつつ、一番コスト効率の良い使い方を選ぶ (具体例については5. ビットキーにおける事例にてお話します) 4. コスト最適化の柱 コスト効率を考慮しながらリソースを利用する
  21. 24 Copyright © 2023 Bitkey Inc. All right reserved. 4.

    コスト最適化の柱 補足: AWS Trusted Advisorについて AWS Support プランをビジネス以上で利用していると、 AWS Trusted Advisorがリソースをモニタリングして、 最適化案を自動で出してくれる 出典: https://aws.amazon.com/jp/premiumsupport/technology/trusted-advisor/
  22. 25 Copyright © 2023 Bitkey Inc. All right reserved. 継続的な最適化とは?

    • 新しいサービスと機能がリリースされたら評価する • 既存のアーキテクチャを定期的に評価する 以上の点を考慮しつつ、 常に最善の方法かを確認して、更新していく (例:2018年にリリースされた、Amazon DynamoDBの オンデマンドモードと、プロビジョニングモードの比較) 4. コスト最適化の柱 継続的な最適化
  23. 27 Copyright © 2023 Bitkey Inc. All right reserved. 5.

    ビットキーにおける事例 ビットキーでのAWSの利用状況 ビットキーはサーバーレス(AWS Lambdaが主で、Amazon EC2のような サーバーインスタンスをビジネスのワークロードで使用していない) しかし、サーバーレスで利用していても、 サーバーインスタンスを使用した場合と比べて、何もしなくても 安くなるわけではないし、気をつけるべきポイントはある
  24. 28 Copyright © 2023 Bitkey Inc. All right reserved. 5.

    ビットキーにおける事例 ビットキーでのコスト削減事例 そこで、「Amazon CloudWatchのコストが高い」 「AWS LambdaへのSavings Plansの導入」の2点を例に、 ビットキーで実際にあった事例を見ていく
  25. 29 Copyright © 2023 Bitkey Inc. All right reserved. 5.

    ビットキーにおける事例 事例1: AWS Cost Explorerを見るとAmazon CloudWatchのコストが高い ビットキーで使用しているとあるサービスのAWS Cost Explorerを見ると、 Amazon CloudWatchのコストが高い(全体の約50%) →メトリクスを見て、具体的な高コストの原因を見ていく
  26. 30 Copyright © 2023 Bitkey Inc. All right reserved. 5.

    ビットキーにおける事例 事例1: AWS Cost Explorerを見るとAmazon CloudWatchのコストが高い Amazon CloudWatchのメトリクスを見て、具体的に何が原因なのかを見る → コストが高いところをAPI Operationで絞り込んだところ、 → 特定のログのPutLogEventsが他の数百倍のデータを出力している
  27. 31 Copyright © 2023 Bitkey Inc. All right reserved. 実際にログを確認すると、ログ全体の40%が、

    本番環境のログとして不要な情報だった (例: 正しくないSeverityで出力されたログ(デバッグログなど)) → そこで、必要なログだけを出力するように修正したが、 それでもコスト全体の30%がAmazon CloudWatchなのが許容できない 実際のワークロードを考えると、これ以上減らすのは厳しい →アーキテクチャを見直す必要がありそう 5. ビットキーにおける事例 事例1: AWS Cost Explorerを見るとAmazon CloudWatchのコストが高い
  28. 32 Copyright © 2023 Bitkey Inc. All right reserved. 5.

    ビットキーにおける事例 事例1: AWS Cost Explorerを見るとAmazon CloudWatchのコストが高い そこで、 以下の2つの案を提案し、それぞれにメリット・デメリットを考えていく • Amazon CloudWatch Logsへの標準出力を抑止して、 カスタムログで出力を制御する • Lambda Extensionsを使ってAmazon S3にログ出力をすることで、 ログの保管コストを削減する
  29. 33 Copyright © 2023 Bitkey Inc. All right reserved. 案1:

    Amazon CloudWatch Logsの標準出力を抑止して、 アプリケーションコードでPutLogEventsを実行し、出力を制御する メリット: • Amazon CloudWatch側での追加の対応が不要 デメリット: • 出力項目を厳密に制御しないと、ログの不足やコスト削減効果がない、 など適切なメリットを享受できない • 今回の要件に見合わない(今回はログのコストを4割削減できたが、削減後も Amazon CloudWatchがコストの30%を占める状態を許容できなかった) 5. ビットキーにおける事例 事例1: AWS Cost Explorerを見るとAmazon CloudWatchのコストが高い
  30. 34 Copyright © 2023 Bitkey Inc. All right reserved. 案2:

    Lambda Extensionsを使ってAmazon Kinesis Data Firehoseを経由し、 Amazon S3にログ出力をすることで、ログの保管コストを削減する メリット: • ログのPUTコストが特に安い (東京リージョンの場合、Amazon CloudWatch Logsと Amazon Kinesis Data Firehose→Amazon S3は 転送コストに約0.73$/1GBの差がある) デメリット: • ログがAmazon S3にただ出力されるだけのため、 ログを利用する場合には別途加工・分析を行う必要がある 5. ビットキーにおける事例 事例1: AWS Cost Explorerを見るとAmazon CloudWatchのコストが高い 出典: https://aws.amazon.com/jp/cloudwatch/pricing/ https://aws.amazon.com/jp/s3/pricing/
  31. 35 Copyright © 2023 Bitkey Inc. All right reserved. これらのメリット・デメリットを踏まえた上で、

    コスト削減のメリットが大きく、今回の要件を満たしていることから、 Lambda Extensionを使ってAmazon S3にログ出力をすることで、 ログの保管コストを削減する 方針を元にアーキテクチャを設計することにした 5. ビットキーにおける事例 事例1: AWS Cost Explorerを見るとAmazon CloudWatchのコストが高い
  32. 36 Copyright © 2023 Bitkey Inc. All right reserved. 5.

    ビットキーにおける事例 事例2: AWS LambdaへのSavings Plansの導入 AWS Cost Explorerを見ると、 2番目にAWS Lambdaが高い(全体の約25%)
  33. 37 Copyright © 2023 Bitkey Inc. All right reserved. AWS

    Lambdaに関しては利用方法自体は正常であり、 アーキテクチャに問題があるわけではなかった →しかし、(Amazon CloudWatch Logsを除けば) AWS Lambdaが最も支出が大きいサービスであり、 AWS Lambdaのコストを抑えられれば大きなコスト削減につながる →Savings Plansを導入しよう 5. ビットキーにおける事例 事例2: AWS LambdaへのSavings Plansの導入 参考:AWS Lambda自体の最適なチューニングを行う方法として、 AWS Lambda Power Tuningのようなサービスを利用することもできます https://github.com/alexcasalboni/aws-lambda-power-tuning
  34. 38 Copyright © 2023 Bitkey Inc. All right reserved. 出典:

    https://aws.amazon.com/jp/savingsplans/ 5. ビットキーにおける事例 事例2: AWS LambdaへのSavings Plansの導入 Savings Plansとは? 『Savings Plans は、1 年または 3 年の時間単位で利用をコミットする代わりに、オンデマン ド料金と比較して最大 72% の請求額の削減を可能にする柔軟な料金モデルです。』 → つまり、1年 / 3年間の間、一定量を必ず使う代わりに、その分を安くし てくれるプラン 一定量を必ず使う必要があるというのがポイントで、買ったSavings Plans よりも少なく使っても返金されないので、最適なバランスを見極めて買う 必要があるが・・・?
  35. 39 Copyright © 2023 Bitkey Inc. All right reserved. 実際には一定期間の使用状況に基づいて、最適なSavings

    Planを提案して くれるので、特殊なケース(突発的なワークロードが主で、安定して利用 はされない・特定のタイミングでのみ使用される)でもない限り、推奨事 項をそのまま適用しても大丈夫な場合がほとんど 5. ビットキーにおける事例 事例2: AWS LambdaへのSavings Plansの導入
  36. 40 Copyright © 2023 Bitkey Inc. All right reserved. ビットキーでは提案されたSavings

    Planを購入することで、 アーキテクチャ・ロジックの変更なしで、 以下の割合でコスト削減ができることが分かった • 前払いなし/1年間の場合5% • 前払いあり/1年間の場合9% • 前払いあり/3年間の場合10% →ビジネス的な理由・今後のアーキテクチャ再設計の可能性を考慮して、 前払いあり/1年間のSavings Planの購入を進めていくことにした 5. ビットキーにおける事例 事例2: AWS LambdaへのSavings Plansの導入
  37. 42 Copyright © 2023 Bitkey Inc. All right reserved. 6.

    まとめ まとめ クラウドネイティブ環境下でのコスト削減の取り組みについて、 実例を交えながら紹介しました 今回のお話を通して、クラウドにおける コスト削減の一助になれば幸いです (今回の発表の詳細についてはQiitaで記載しています、もし詳しく知りた い方がいたら是非見ていただけると嬉しいです) https://qiita.com/pika_opera
  38. 43 Copyright © 2023 Bitkey Inc. All right reserved. 6.

    まとめ 最後に AWS 展示 事例展示
 (AWS Startups Future Office /
 Future Home)
 C1-05 にて、 ビットキーのブースを 展示しています
  39. 44 Copyright © 2023 Bitkey Inc. All right reserved. 6.

    まとめ 最後に 事例セッション
 2023/04/21(金)12:20〜12:50 CUS-41 「ユーザー体験を向上させるカギは"分断の解消"〜 絶対に止められないスマートロックを扱うシステムの裏側」 弊社VPoP 町田が登壇いたします