Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
成長を続けるSaaSのAWSコスト管理において 開発者としてできること / AWS DevD...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
sasaki
June 22, 2023
Technology
3.7k
11
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
成長を続けるSaaSのAWSコスト管理において 開発者としてできること / AWS DevDay SaaS Cost
sasaki
June 22, 2023
More Decks by sasaki
See All by sasaki
保育ICTに求められる信頼性と、それを支えるDatadog活用 / Datadog Live Osaka 2026 Codmon
taishin
0
29
FinOpsとタグ付け防止対策 / CCoE Osaka FinOps Tags
taishin
1
340
Glacierだからってコストあきらめてない? / JAWS Meet Glacier Cost
taishin
1
470
スケールするプロダクトと膨らむ組織 SREの挑戦と解決策 / Findy Job LT SRE
taishin
0
190
組織の変化とSREの役割進化 責務拡大にどう応えるか / globis_sre
taishin
0
480
Lambdaの運用についてのなにか / lambda_unyo
taishin
0
220
おすすめAWSコスト対策 / AWS Startup Meetup Osaka AWS Cost
taishin
1
570
プラットフォームってつくることより計測することが重要なんじゃないかという話 / Platform Engineering Meetup #8
taishin
1
1.7k
ECS Runtime Monitoring で コンテナランタイムセキュリティに入門 / nakanoshima-dev-ecs-runtime-monitoring
taishin
0
430
Other Decks in Technology
See All in Technology
IR Today: Theory, Practice, and Agents
dtunkelang
0
310
Argo CDとAtlantisで実現するインフラ管理のセルフサービス化──小規模SREチームで支えるプラットフォーム
cassius7
0
270
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
310
覗いてみよう 関数型ビジュアル言語×2Dグラフィックスの世界
yohyamasaki
0
160
Claude起点の仕様駆動開発
tanakaseiya
0
280
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
130
AI Made Us Faster at Solving the Wrong Problems
marceloancelmo
0
130
TiDBファミリーにDWHが新登場!! TiDB最新情報 / TiDB update 202609
yoshiakiyamasaki
0
180
Swap and Memory Reclaim - Squeezing Out More RAM
ennael
PRO
1
1.5k
LLM機能を自作して分かるSnowflake Cortex AIの強み
nayuts
0
120
AgentCoreで実践するハーネスエンジニアリング
yakumo
1
170
AWS FinOps Agent 結局何が得意なの?
siromi
0
230
Featured
See All Featured
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
590
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.9k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
520
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Speed Design
sergeychernyshev
33
2.1k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Color Theory Basics | Prateek | Gurzu
gurzu
1
480
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
410
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
440
How Software Deployment tools have changed in the past 20 years
geshan
2
34k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
560
Transcript
© Chatwork 成長を続けるSaaSのAWSコスト管理において 開発者としてできること 2023年6月22日 SRE部 佐々木真也 Chatwork株式会社 AWS Dev Day
2023 Tokyo
自己紹介 2 • 名前 ◦ 佐々木真也 • 所属 ◦ Chatwork株式会社
▪ 2020年6月〜 ▪ SRE部 マネージャー • Twitter ◦ @taishin • 趣味 ◦ サッカー観戦
会社概要 3 会社名 Chatwork株式会社 代表取締役CEO 山本 正喜 グループ従業員数 379名(2023年3月末日時点) 所在地
東京、大阪 設立 2004年11月11日
Chatworkとは 4 効率的に情報共有できる グループチャット 仕事の見える化ができる タスク管理 見落としがなくなる ファイル管理 いつでも会議ができる ビデオ/音声通話
* BOXIL SaaS AWARD 2022「ランキング部門 コラボレーション部門賞」「ベスト評価賞 (初期設定の容易さNo.1、価格の満足度No.1)」を受賞 BOXIL「Chatwork」口コミ評価 * Nielsen NetView 及びNielsen Mobile NetView Customized Report 2022年5月度調べ月次利用者(MAU:Monthly Active User)調査。 * 調査対象はChatwork、Microsoft Teams、Slack、LINE WORKS、Skypeを含む47サービスをChatwork株式会社にて選定。
Chatworkは利用者数No.1*のビジネスチャット 5 3月 リリース 10万社 突破! 20万社 突破! 導入社数 39万7000社以上!
(2023年3月末日時点) 30万社 突破! * Nielsen NetView 及びNielsen Mobile NetView Customized Report 2022年5月度調べ月次利用者(MAU:Monthly Active User)調査。 調査対象はChatwork、Microsoft Teams、Slack、LINE WORKS、Skypeを含む47サービスをChatwork株式会社にて選定
SaaSの成長とAmazon Web Servicesのコスト SaaSの成長と開発組織の変化 開発者もできるコスト管理 まとめ 1 2 3 4
AGENDA アジェンダ
SaaSの成長とAmazon Web Servicesのコスト SaaSの成長と開発組織の変化 開発者もできるコスト管理 まとめ 1 2 3 4
AGENDA アジェンダ
SaaSの成長 8 • 事業継続に必要なビジネス指標が伸び続けている状態 ◦ SaaSのビジネス指標の例 ▪ 売上 ▪ アクセス数
▪ 登録ユーザー数 ▪ アクティブユーザー数 ▪ 契約社数
SaaSにおけるAWSコストの妥当性 9 • 現状のAWSコストは妥当なのか? • SaaSは成長しているので、AWSコストも増加しているが、 増加率は妥当なのか?
SaaSにおけるAWSコストの妥当性 10 • 現状のAWSコストは妥当なのか? • SaaSは成長しているので、AWSコストも増加しているが、 増加率は妥当なのか? ユニットメトリクス(ユニットコスト)を算出し、 経営層含め合意できていることが重要
ユニットメトリクス 11 • ビジネス指標に対するAWSコストの割合 ◦ AWSコスト ÷ ビジネス指標 = ユニットメトリックス
https://aws.amazon.com/jp/blogs/aws-cloud-financial-management/what-is-a-unit-metric/
ユニットメトリクスの増減によるアクション 12 • ユニットメトリクス増 ◦ 対策が必要 ▪ 構成の見直し ▪ コスト最適化
• ユニットメトリクス減 ◦ 問題なし ▪ 運用負荷を軽減するような サービス導入の検討 • 定期的な見直しも必要
Chatworkにおけるユニットメトリクス 13 • MAU (1か月あたりのアクティブユーザー数) を重要視し、 AWSコストに対するビジネス指標としている • 1MAUあたりのAWSコストをモニタリングしている AWSコスト月額
÷ MAU = 1MAUあたりのAWSコスト
SaaSの成長とAWSコストで重要なこと 14 • SaaSシステムのコストに対するビジネス指標が決められている • ユニットメトリクスがモニタリングできるようになっている & 経営層含めて 合意が取れている •
ユニットメトリクスの増減によってコストに対するアクションが取れる
SaaSの成長とAmazon Web Servicesのコスト SaaSの成長と開発組織の変化 開発者もできるコスト管理 まとめ 1 2 3 4
AGENDA アジェンダ
立ち上げ期 16 • 開発チームが分かれていない ◦ 全員がデプロイ ◦ 全員がリソースやコストについても把握 Deploy Cost
Check
チーム分割期 17 • 職能でチームを分割 ◦ AWSリソースのデプロイはAWS担当(インフラチームやSREチーム)に依頼する ◦ コストの確認はAWS担当が実施 ◦ AWS担当がリソースは把握しているので、コストについてもAWS担当が
概ね把握している AWS担当 Cost Check 開発チーム1 開発チーム2 依頼 Deploy
マイクロサービス期 18 • サービスごとにチームを分割 (逆コンウェイの法則) ◦ 従来のやり方では、AWS担当の負荷が大きく、デプロイまでに時間がかかるため、 各チームでデプロイできる体制をとる ◦ AWS担当では各リソースの把握はできなくなる
◦ 全体のコストはAWS担当が確認しているが、サービス単位では把握できていない AWS担当 サービス3 Deploy サービス4 Deploy サービス1 Deploy サービス2 Deploy Cost Check
チーム分割後のありがちな問題 19 • コストの変動があっても、おおまかな情報だと誰も心当たりがない サービス 1 サービス 2 サービス 3
Amazon DynamoDBの費用が 上がってるんですが、 心当たりありませんか? ・・・ ・・・ ・・・ AWS担当
チーム分割後のありがちな問題 20 • AWS Cost ExplorerやAmazon CloudWatchのメトリクスを使って調査 • リソースごとにメトリクスがあるAmazon DynamoDB等のサービスであれば
分かりやすいが、Amazon Elastic Container Registry (Amazon ECR)等の メトリクスがリポジトリごとにない場合など調査に時間がかかる サービス 1 サービス 2 サービス 3 Amazon DynamoDBのxxxxという テーブルのRCUが増加して費用が上 がってるんですが、心当たりあり ませんか? はい! AWS担当
Chatworkで実際にあった問題 21 Pull Pull • Amazon ECRの DataTransfer-Out-Bytes が急に増加 •
原因は一部チームのCIをCircleCIからGithub Actionsに 変更したため ◦ CircleCIはAWS上に稼働しているので、リージョンを 揃えれば転送量はかからないが、Github Actionsは AWS外からのダウンロードになるので、 転送量が発生した • Amazon ECRはリポジトリごとのメトリクスが ないため、原因の調査に時間を要した
問題点 22 • 調査に時間がかかる ◦ 問題に気づいて調査を始めた段階で実は大きな問題だったりする • 1つのサービスがコスト増、1つのサービスがコスト減だった場合や、全体から 見ると割合の小さいサービスだった場合、表面化しにくい
問題点 23 • 調査に時間がかかる ◦ 問題に気づいて調査を始めた段階で実は大きな問題だったりする • 1つのサービスがコスト増、1つのサービスがコスト減だった場合や、全体から 見ると割合の小さいサービスだった場合、表面化しにくい 開発者自身で自サービスのコスト管理を行い、
ユニットメトリクスを把握する
SaaSの成長とAmazon Web Servicesのコスト SaaSの成長と開発組織の変化 開発者もできるコスト管理 まとめ 1 2 3 4
AGENDA アジェンダ
開発者もできるコスト管理 25 自サービスのコストを把握する 1. コストチェック運用 2. リソース作成時のコスト見積もり 開発者自身で自サービスのコスト管理を行い、 ユニットメトリクスを把握する
1. コストチェック運用
コストチェック運用 27 • 定期的に自サービスのAWSコストをチェックする • ツール ◦ AWS Cost Explorer
◦ AWS Cost Anomaly Detection
コストチェック運用 28 • 定期的に自サービスのAWSコストをチェックする • ツール ◦ AWS Cost Explorer
◦ AWS Cost Anomaly Detection 自サービスのコスト、可視化されてますか?
コスト情報の可視化方法 29 • リソースにコスト情報識別用のタグ(コスト配分タグ)をつける 参考:AWS コスト配分タグの使用 https://docs.aws.amazon.com/ja_jp/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html
コスト配分タグ すすめ方 30 • 開発組織全体で統一したKeyを決める ◦ サービス名やチーム名 (両方でもOK) ▪ Chatworkでは、チーム名は変更があるかもしれないので
サービス名を指定 ◦ Billingアカウントでコスト配分タグを指定する • 各リソースにKeyに対応する情報をValueに設定する 参考:AWS リソースのタグ管理 〜タグ付けと統制〜(前編) https://aws.amazon.com/jp/blogs/news/aws-tagging-and-governance-part1/
コスト配分タグ タグの一括付与の方法 31 • タグエディタ ◦ 既存のリソースの検索結果に一括してタグを付与
コスト配分タグ タグの一括付与の方法 32 • Terraform ◦ default_tags を指定すれば、 全部のリソースにタグが 付与される
https://www.hashicorp.com/blog/default-tags-in-the-terraform-aws-provider
コスト配分タグ タグの付け漏れを防ぐ 33 • AWS Config Rules ◦ AWS CloudFormation
Guardを使って簡単にカスタムポリシールールが作成できる • AWSマネージドルール required-tags はチェックできるリソースが限定される ◦ Amazon Simple Queue Service (SQS)やAmazon ECRのチェックはできない (2023/6現在) ▪ https://docs.aws.amazon.com/ja_jp/config/latest/developerguide/required-tags.html
コスト配分タグ タグの付け漏れを防ぐ 34 • IaCのCI/CDで作成時にブロック ◦ ChatworkではAtlantis + Conftestを利用 ▪
Plan結果をOpen Policy Agentでチェックし、タグがない場合は Applyをブロック
AWS Cost Explorer 35 • コストの可視化 ◦ コスト配分タグでフィルターすることによって、自サービスのコスト分析が可能 自サービスのみ表示し て分析が可能
AWS Cost Anomaly Detection 36 • コストの異常を検出し、 通知してくれるサービス • コスト配分タグを指定し、自サービスの
コスト異常を通知することが可能
(おまけ) AWS Systems Manager Application Manager 37 • Application Manager
◦ タグを指定し、コスト以外の情報も集約して表示させることが可能 https://aws.amazon.com/jp/blogs/news/new-aws-systems-manager-consolidates-application-management/
2. リソース作成時のコスト見積もり
リソース作成時のコスト見積もり 39 • AWSリソース作成時にコストを試算し、ユニットメトリクスへの影響を 把握する • ツール ◦ AWS Pricing
Calculator ◦ Infracost
AWS Pricing Calculator 40 • サイズや利用料を指定して、試算 https://calculator.aws/
Infracost 41 • Terraformの設定ファイルからコスト試算 https://www.infracost.io/
Infracost 42 • tfファイルからコストを試算 $ cat dynamodb.tf provider "aws" {
region = "ap-northeast-1" } resource "aws_dynamodb_table" "dynamodb-table" { name = "test_table" billing_mode = "PROVISIONED" read_capacity = 20 write_capacity = 20 $ infracost breakdown --path . Evaluating Terraform directory at . ✔ Downloading Terraform modules ✔ Evaluating Terraform directory ✔ Retrieving cloud prices to calculate costs Project: . Name Monthly Qty Unit Monthly Cost aws_dynamodb_table.dynamodb-table ├─ Write capacity unit (WCU) 20 WCU $10.83 ├─ Read capacity unit (RCU) 20 RCU $2.17 ├─ Data storage Monthly cost depends on usage: $0.29 per GB ├─ Point-In-Time Recovery (PITR) backup storage Monthly cost depends on usage: $0.23 per GB ├─ On-demand backup storage Monthly cost depends on usage: $0.11 per GB ├─ Table data restored Monthly cost depends on usage: $0.17 per GB └─ Streams read request unit (sRRU) Monthly cost depends on usage: $0.000000228 per sRRUs OVERALL TOTAL $13.00
Infracost 43 • 変更の差分 $ cat dynamodb.tf provider "aws" {
region = "ap-northeast-1" } resource "aws_dynamodb_table" "dynamodb-table" { name = "test_table" billing_mode = "PROVISIONED" read_capacity = 50 write_capacity = 100 $ iinfracost diff --path . --compare-to infracost-dynamodb.json Evaluating Terraform directory at . ✔ Downloading Terraform modules ✔ Evaluating Terraform directory ✔ Retrieving cloud prices to calculate costs ────────────────────────────────── Project: . ~ aws_dynamodb_table.dynamodb-table +$25 ($13 → $38) ~ Write capacity unit (WCU) +$16 ($11 → $27) ~ Read capacity unit (RCU) +$9 ($2 → $11) Monthly cost change for . Amount: +$25 ($13 → $38) Percent: +192% ────────────────────────────────── Key: ~ changed, + added, - removed ────────────────────────────────── Infracost estimate: monthly cost will increase by $25 (+192%) ↑ ┏━━━━━━━┳━━━━━┳━━━━━┳━━━━━━━━━┓ ┃ Project ┃ Previous ┃ New ┃ Diff ┃ ┣━━━━━━━╋━━━━━╋━━━━━╋━━━━━━━━━┫ ┃ . ┃ $13 ┃ $38 ┃ +$25 (+192%) ┃ ┗━━━━━━━┻━━━━━┻━━━━━┻━━━━━━━━━┛
Infracost 44 • 想定使用量を指定して試算 $ cat vpc.tf provider "aws" {
region = "ap-northeast-1" } module "vpc" { source = "terraform-aws-modules/vpc/aws" name = "my-vpc" cidr = "10.0.0.0/16" azs = ["ap-northeast-1a", "ap-northeast-1c", "ap-northeast-1d"] private_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"] public_subnets = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"] enable_nat_gateway = true } $ cat infracost-usage.yml version: 0.1 resource_type_default_usage: aws_nat_gateway: monthly_data_processed_gb: 1000 $ infracost breakdown --path . --usage-file infracost-usage.yml Evaluating Terraform directory at . ✔ Downloading Terraform modules ✔ Evaluating Terraform directory ✔ Retrieving cloud prices to calculate costs Project: . Name Monthly Qty Unit Monthly Cost module.vpc.aws_nat_gateway.this[0] ├─ NAT gateway 730 hours $45.26 └─ Data processed 1,000 GB $62.00 module.vpc.aws_nat_gateway.this[1] ├─ NAT gateway 730 hours $45.26 └─ Data processed 1,000 GB $62.00 module.vpc.aws_nat_gateway.this[2] ├─ NAT gateway 730 hours $45.26 └─ Data processed 1,000 GB $62.00 OVERALL TOTAL $321.78
Infracost 45 • VS Code Extension ◦ コードを書けば自動計算してくれる
Infracost 46 • CI/CDとのインテグレーションにも対応
SaaSの成長とAmazon Web Servicesのコスト SaaSの成長と開発組織の変化 開発者もできるコスト管理 まとめ 1 2 3 4
AGENDA アジェンダ
まとめ 48 • SaaSシステムのAWSコストは、ユニットメトリクスをモニタリングし、 妥当性の判断や意思決定を行う • マイクロサービス時代の開発組織は、開発者自身で自サービスの コストを把握し、管理していく • そのためには、サービスごとにコストを可視化し、運用していくことが
重要 ◦ タグ付け重要
We are Hiring !!! 49 https://hrmos.co/pages/chatwork/jobs/1020019
働くをもっと楽しく、創造的に