Copyright © 2023 Bitkey Inc. All right reserved.ビットキーでのWell-Architectedなコスト削減のための事例集クラウドネイティブ環境下でのコスト削減の取り組み株式会社ビットキー 田中崇博 2023/04/20
View Slide
2Copyright © 2023 Bitkey Inc. All right reserved.Outline1. 自己紹介 / 会社説明2. はじめに3. AWS Well-Architected Frameworkとは4. コスト最適化の柱5. ビットキーにおける事例6. まとめ
3Copyright © 2023 Bitkey Inc. All right reserved.1. 自己紹介 / 会社説明
4Copyright © 2023 Bitkey Inc. All right reserved.1. 自己紹介 / 会社説明田中 崇博Takahiro Tanaka2019.082022.042022.11Webシステム開発企業に入社医学生向けポータルサイトのソフトウェア開発を担当認証基盤、会員管理、API開発、データマイグレーションなどを担当Webシステム開発事業からECシステム開発事業へ異動会員管理、API開発、データマイグレーションなどを担当ビットキーへ参画Third Placeチームのエンジニアとして、主にバックエンド領域の開発に従事
5Copyright © 2023 Bitkey Inc. All right reserved.1. 自己紹介 / 会社説明Mission:テクノロジーの力であらゆるものを安全で便利で気持ちよく「つなげる」創業:2018年8月 / 従業員数:233名資本金:14,946,908,300円(2022年12月31日時点 資本準備金を含む)
6Copyright © 2023 Bitkey Inc. All right reserved.1. 自己紹介 / 会社説明国内累計販売台数No.1でおなじみのbitlock※2021年9月現在(ESP総研調べ)
7Copyright © 2023 Bitkey Inc. All right reserved.1. 自己紹介 / 会社説明個人だけでなく、法人向けにも展開多彩な解錠方法や、入退室ログの管理・取得などもサポート
8Copyright © 2023 Bitkey Inc. All right reserved.1. 自己紹介 / 会社説明暮らし・仕事・体験の領域で、あらゆるサービスをつなげる
9Copyright © 2023 Bitkey Inc. All right reserved.2. はじめに
10Copyright © 2023 Bitkey Inc. All right reserved.2. はじめに背景ビットキーが創業してから5年を迎えるにあたり、今までの設計/実装のスピード重視で構築してきたアーキテクチャを見直したい(ユーザーの急速な増加に伴い、高負荷な状態に耐える必要が出てきた)
11Copyright © 2023 Bitkey Inc. All right reserved.2. はじめに背景(なぜ現行のアーキテクチャを見直すのか)なぜ現行のアーキテクチャを見直す必要があるのか?● ユーザー数がどんどん増えていく中で、コストが線形に増えてしまっている● スケーラビリティ的にも問題があって、5年間でビジネスが成長した結果、実装時には想定していなかった問題が起きてしまった
12Copyright © 2023 Bitkey Inc. All right reserved.● 今後更に利用ユーザー数が増加すること、高い安定性が求められることが想定されるため、今まで以上に安定したアーキテクチャを探る必要が出てきた● また、クラウドの利用コストがここ1年で1.5倍にまで膨らんでしまっている2. はじめに背景(なぜ現行のアーキテクチャを見直すのか)なぜ現行のアーキテクチャを見直す必要があるのか?よって、コスト意識をもった刷新や実装が急務
13Copyright © 2023 Bitkey Inc. All right reserved.2. はじめに背景(現行のアーキテクチャとコスト管理)ビットキーでは、IoTの部分をメインでAWSを利用しているAWSをクラウドネイティブで使用している場合のコスト管理とはどうするのか ?
14Copyright © 2023 Bitkey Inc. All right reserved.2. はじめにクラウドネイティブの特徴とは?● 利用した分だけの支払いで済むのでコスト効率が高い● スケールアップ・スケールダウンが容易
15Copyright © 2023 Bitkey Inc. All right reserved.2. はじめに課題(クラウドネイティブ環境のコスト管理とは)クラウドネイティブで利用していても、「スケールアップが容易だからこそ、何かあったときに気づかないうちにコストが急に上がることがある」ことや、「どのくらいコストがかかるのかを予測できない」という悩みからは逃れられない
16Copyright © 2023 Bitkey Inc. All right reserved.2. はじめにAWS Well-Archictected Frameworkのコスト最適化手法を参考にするコスト削減に向けて、自分たちで頑張るよりも、まずは以下の点から、より効率のよいアーキテクチャの刷新や、改善ができる AWS Well-Architected Frameworkをまず参考にした● AWS公式の手法であり、公式に推奨されている● AWSの顧客・パートナーにより立証されたベストプラクティスである● 極めて幅広い領域が網羅されている(技術的なテクニック・手法から、財務管理と言った観点まで幅広く対応している)
17Copyright © 2023 Bitkey Inc. All right reserved.3. AWS Well-Architected Frameworkとは
18Copyright © 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/
19Copyright © 2023 Bitkey Inc. All right reserved.● オペレーショナルエクセレンスの柱● セキュリティの柱● 信頼性の柱● パフォーマンス効率の柱● コスト最適化の柱● 持続可能性の柱AWS Well-Architected Frameworkには、6つの柱というベストプラクティスがある今回は、以下の6つの柱のコスト最適化の柱について見ていく3. AWS Well-Architected FrameworkとはAWS Well-Architected Framework 6つの柱
20Copyright © 2023 Bitkey Inc. All right reserved.4. コスト最適化の柱
21Copyright © 2023 Bitkey Inc. All right reserved.4. コスト最適化の柱コスト最適化の柱とはコスト最適化の柱では以下の目標達成を目的としていて、以下の5点を達成するための支援を提供している● クラウド財務管理を実践する● 経費支出と使用量の認識● コスト効率を考慮しながらリソースを利用する● 需要を管理しリソースを供給する● 継続的最適化
22Copyright © 2023 Bitkey Inc. All right reserved.4. コスト最適化の柱コスト最適化の柱とはこのうち、エンジニアが特に主体的に動きやすい、以下の2点について、具体的に何をやっていくのかをメインに考えていく● コスト効率を考慮しながらリソースを利用する● 継続的最適化
23Copyright © 2023 Bitkey Inc. All right reserved.コスト効率を考慮しながらリソースを利用するとは?● サービスの選定時からコストを評価する● 正しいリソースの種類・サイズ・数を選ぶ● リザーブドインスタンス・Savings Plans・スポットインスタンスなどの料金プランを活用する● データの転送にも気を使う以上の点を考慮しつつ、一番コスト効率の良い使い方を選ぶ(具体例については5. ビットキーにおける事例にてお話します)4. コスト最適化の柱コスト効率を考慮しながらリソースを利用する
24Copyright © 2023 Bitkey Inc. All right reserved.4. コスト最適化の柱補足: AWS Trusted AdvisorについてAWS Support プランをビジネス以上で利用していると、AWS Trusted Advisorがリソースをモニタリングして、最適化案を自動で出してくれる出典: https://aws.amazon.com/jp/premiumsupport/technology/trusted-advisor/
25Copyright © 2023 Bitkey Inc. All right reserved.継続的な最適化とは?● 新しいサービスと機能がリリースされたら評価する● 既存のアーキテクチャを定期的に評価する以上の点を考慮しつつ、常に最善の方法かを確認して、更新していく(例:2018年にリリースされた、Amazon DynamoDBのオンデマンドモードと、プロビジョニングモードの比較)4. コスト最適化の柱継続的な最適化
26Copyright © 2023 Bitkey Inc. All right reserved.5. ビットキーにおける事例
27Copyright © 2023 Bitkey Inc. All right reserved.5. ビットキーにおける事例ビットキーでのAWSの利用状況ビットキーはサーバーレス(AWS Lambdaが主で、Amazon EC2のようなサーバーインスタンスをビジネスのワークロードで使用していない)しかし、サーバーレスで利用していても、サーバーインスタンスを使用した場合と比べて、何もしなくても安くなるわけではないし、気をつけるべきポイントはある
28Copyright © 2023 Bitkey Inc. All right reserved.5. ビットキーにおける事例ビットキーでのコスト削減事例そこで、「Amazon CloudWatchのコストが高い」「AWS LambdaへのSavings Plansの導入」の2点を例に、ビットキーで実際にあった事例を見ていく
29Copyright © 2023 Bitkey Inc. All right reserved.5. ビットキーにおける事例事例1: AWS Cost Explorerを見るとAmazon CloudWatchのコストが高いビットキーで使用しているとあるサービスのAWS Cost Explorerを見ると、Amazon CloudWatchのコストが高い(全体の約50%)→メトリクスを見て、具体的な高コストの原因を見ていく
30Copyright © 2023 Bitkey Inc. All right reserved.5. ビットキーにおける事例事例1: AWS Cost Explorerを見るとAmazon CloudWatchのコストが高いAmazon CloudWatchのメトリクスを見て、具体的に何が原因なのかを見る→ コストが高いところをAPI Operationで絞り込んだところ、→ 特定のログのPutLogEventsが他の数百倍のデータを出力している
31Copyright © 2023 Bitkey Inc. All right reserved.実際にログを確認すると、ログ全体の40%が、本番環境のログとして不要な情報だった(例: 正しくないSeverityで出力されたログ(デバッグログなど))→ そこで、必要なログだけを出力するように修正したが、それでもコスト全体の30%がAmazon CloudWatchなのが許容できない実際のワークロードを考えると、これ以上減らすのは厳しい→アーキテクチャを見直す必要がありそう5. ビットキーにおける事例事例1: AWS Cost Explorerを見るとAmazon CloudWatchのコストが高い
32Copyright © 2023 Bitkey Inc. All right reserved.5. ビットキーにおける事例事例1: AWS Cost Explorerを見るとAmazon CloudWatchのコストが高いそこで、以下の2つの案を提案し、それぞれにメリット・デメリットを考えていく● Amazon CloudWatch Logsへの標準出力を抑止して、カスタムログで出力を制御する● Lambda Extensionsを使ってAmazon S3にログ出力をすることで、ログの保管コストを削減する
33Copyright © 2023 Bitkey Inc. All right reserved.案1: Amazon CloudWatch Logsの標準出力を抑止して、アプリケーションコードでPutLogEventsを実行し、出力を制御するメリット:● Amazon CloudWatch側での追加の対応が不要デメリット:● 出力項目を厳密に制御しないと、ログの不足やコスト削減効果がない、など適切なメリットを享受できない● 今回の要件に見合わない(今回はログのコストを4割削減できたが、削減後もAmazon CloudWatchがコストの30%を占める状態を許容できなかった)5. ビットキーにおける事例事例1: AWS Cost Explorerを見るとAmazon CloudWatchのコストが高い
34Copyright © 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/
35Copyright © 2023 Bitkey Inc. All right reserved.これらのメリット・デメリットを踏まえた上で、コスト削減のメリットが大きく、今回の要件を満たしていることから、Lambda Extensionを使ってAmazon S3にログ出力をすることで、ログの保管コストを削減する方針を元にアーキテクチャを設計することにした5. ビットキーにおける事例事例1: AWS Cost Explorerを見るとAmazon CloudWatchのコストが高い
36Copyright © 2023 Bitkey Inc. All right reserved.5. ビットキーにおける事例事例2: AWS LambdaへのSavings Plansの導入AWS Cost Explorerを見ると、2番目にAWS Lambdaが高い(全体の約25%)
37Copyright © 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
38Copyright © 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よりも少なく使っても返金されないので、最適なバランスを見極めて買う必要があるが・・・?
39Copyright © 2023 Bitkey Inc. All right reserved.実際には一定期間の使用状況に基づいて、最適なSavings Planを提案してくれるので、特殊なケース(突発的なワークロードが主で、安定して利用はされない・特定のタイミングでのみ使用される)でもない限り、推奨事項をそのまま適用しても大丈夫な場合がほとんど5. ビットキーにおける事例事例2: AWS LambdaへのSavings Plansの導入
40Copyright © 2023 Bitkey Inc. All right reserved.ビットキーでは提案されたSavings Planを購入することで、アーキテクチャ・ロジックの変更なしで、以下の割合でコスト削減ができることが分かった● 前払いなし/1年間の場合5%● 前払いあり/1年間の場合9%● 前払いあり/3年間の場合10%→ビジネス的な理由・今後のアーキテクチャ再設計の可能性を考慮して、前払いあり/1年間のSavings Planの購入を進めていくことにした5. ビットキーにおける事例事例2: AWS LambdaへのSavings Plansの導入
41Copyright © 2023 Bitkey Inc. All right reserved.6. まとめ
42Copyright © 2023 Bitkey Inc. All right reserved.6. まとめまとめクラウドネイティブ環境下でのコスト削減の取り組みについて、実例を交えながら紹介しました今回のお話を通して、クラウドにおけるコスト削減の一助になれば幸いです(今回の発表の詳細についてはQiitaで記載しています、もし詳しく知りたい方がいたら是非見ていただけると嬉しいです)https://qiita.com/pika_opera
43Copyright © 2023 Bitkey Inc. All right reserved.6. まとめ最後にAWS 展示事例展示 (AWS Startups Future Office / Future Home) C1-05 にて、ビットキーのブースを展示しています
44Copyright © 2023 Bitkey Inc. All right reserved.6. まとめ最後に事例セッション 2023/04/21(金)12:20〜12:50 CUS-41「ユーザー体験を向上させるカギは"分断の解消"〜絶対に止められないスマートロックを扱うシステムの裏側」弊社VPoP 町田が登壇いたします
45End of FileCopyright © 2023 Bitkey Inc. All right reserved.