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

    View Slide

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

    View Slide

  3. 3
    Copyright © 2023 Bitkey Inc. All right reserved.
    1. 自己紹介 / 会社説明

    View Slide

  4. 4
    Copyright © 2023 Bitkey Inc. All right reserved.
    1. 自己紹介 / 会社説明
    田中 崇博
    Takahiro Tanaka
    2019.08
    2022.04
    2022.11
    Webシステム開発企業に入社
    医学生向けポータルサイトのソフトウェア開発を担当
    認証基盤、会員管理、API開発、データマイグレーショ
    ンなどを担当
    Webシステム開発事業からECシステム開発事業へ異動
    会員管理、API開発、データマイグレーションなどを担

    ビットキーへ参画
    Third Placeチームのエンジニアとして、主に
    バックエンド領域の開発に従事

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  9. 9
    Copyright © 2023 Bitkey Inc. All right reserved.
    2. はじめに

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  18. 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/

    View Slide

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

    View Slide

  20. 20
    Copyright © 2023 Bitkey Inc. All right reserved.
    4. コスト最適化の柱

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  24. 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/

    View Slide

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

    View Slide

  26. 26
    Copyright © 2023 Bitkey Inc. All right reserved.
    5. ビットキーにおける事例

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  33. 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のコストが高い

    View Slide

  34. 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/

    View Slide

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

    View Slide

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

    View Slide

  37. 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

    View Slide

  38. 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
    よりも少なく使っても返金されないので、最適なバランスを見極めて買う
    必要があるが・・・?

    View Slide

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

    View Slide

  40. 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の導入

    View Slide

  41. 41
    Copyright © 2023 Bitkey Inc. All right reserved.
    6. まとめ

    View Slide

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

    View Slide

  43. 43
    Copyright © 2023 Bitkey Inc. All right reserved.
    6. まとめ
    最後に
    AWS 展示
    事例展示

    (AWS Startups Future Office /

    Future Home)

    C1-05 にて、
    ビットキーのブースを
    展示しています

    View Slide

  44. 44
    Copyright © 2023 Bitkey Inc. All right reserved.
    6. まとめ
    最後に
    事例セッション

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

    View Slide

  45. 45
    End of File
    Copyright © 2023 Bitkey Inc. All right reserved.

    View Slide