AWSコストの事業部別コスト配分に
ついて
2018/01/15
Tomoya Kawanishi
エネチェンジ社 チーフエンジニア
AWS Startup Tech Meetup 2018-01-15 「AWSコストの事業部別コスト配分について」
1自己紹介
エネチェンジ株式会社 チーフエンジニア
電力会社、ガス会社を切り替えるなら、エネチェンジ経由で!
一般家庭だけでなく、法人向けの切替も支援しています
エンジニア、積極採用してます!
Ruby関西の中の人
2004年発足。2ヵ月に1回、セミナー形式の勉強会を開催
第80回 Ruby関西勉強会 1月13日(土)開催。50人が参加
発表者として登壇くださる方、あとで声かけください。
関西Ruby会議の開催時はスポンサーも募集しています
関西Ruby会議の参加者数は約 200人くらい
大手町.rb の中の人
次回、1月30日(火)大手町.rb#3 の開催を予定
東京駅、各線大手町駅から直結!
テーマは「マークアップで役立つ!Ruby」
Ruby の初級者がメインターゲット
AWS Startup Tech Meetup 2018-01-15 「AWSコストの事業部別コスト配分について」
AWS Billing の基本
AWS Billing Console
月額合計請求額、サービスごとの請求額
請求レポート、 AWS Cost Explorer
時間別、日別、月別の料金確認
サービス、リソースごとの料金確認
タグに基づく詳細な料金確認
デフォルトでは有効ではない
AWS Billing Console で設定が必要
「AWS Black Belt Online Seminar コストの観点から見るアカウ
ント管理」
https://www.slideshare.net/AmazonWebServicesJapan/aws-
black-belt-online-seminar#25
2
AWS Startup Tech Meetup 2018-01-15 「AWSコストの事業部別コスト配分について」
エネチェンジでの AWS アカウント
事業部ごとの AWS コストを詳細に把握したい
事業ごとにもっと厳密に収支管理したい!
コストの可視化をより精緻にしたい
事業部別コスト管理の定石はAWS アカウントの分割
ただし、運用が面倒になる
最近は Organization とかを使えばマシみたいだけど。。。
エネチェンジでは、相互に関係するプロジェクトも多く、
AWS アカウントの分割はあまり向かない
エネチェンジでは単一の AWS アカウントで運用
AWS アカウントを分割せずに、事業部別にコストを把握するた
めに、やったことを話します
3
AWS Startup Tech Meetup 2018-01-15 「AWSコストの事業部別コスト配分について」
用語の整理と、目標
直課: 該当のリソースのコストを直接その事業部に関連
付けて集計すること
配賦: 一定の配賦基準に基づいて、該当のリソースの費
用を各事業部に紐づけること
直課した費用の比率で配賦する方式を採用
ほかの代表的な配賦基準としては、所属人員の頭割り、売上比率
などがあります。
4
できる限り多くのリソース費用を
直課
させる!
目標
AWS Startup Tech Meetup 2018-01-15 「AWSコストの事業部別コスト配分について」
コスト配分タグの利用
リソースの費用をタグの値ごとに CSV で取得可能
Excel / Google Spreadsheet により、集計
理論的にはカンタンそうだが・・・
数々の問題が!
分類のためにはそもそもタグ付けできていることが前提
努力すれば、解決可能。詳細後述
Reserved Instance
どの事業のために購入した RI かが不明
どのタイミングでどう適用されたか不明
直課せず、事業部間で配賦することで解決。
Data Transfer
どの事業の Data Transfer か分類されない
直課せず、事業部間で配賦。
消費税、サポート
配賦
5
AWS Startup Tech Meetup 2018-01-15 「AWSコストの事業部別コスト配分について」
リソースへのタグ付け
失敗理由:
EC2 には気合でガッとがんばって主導でタグを設定
EC2 以外のリソースはタグ付していなかった
特に EBS などはタグがなし。共通費に分類されていた
すべてのリソースを徹底的にタグ付け!
EC2 に設定されたタグを元に全リソースにタグをつける
スクリプトを Ruby で開発
詳細は Qiita の記事「tsort について」を参照
https://qiita.com/cuzic/items/6d6587b522cb5683befe
①グラフと見立て、②トポロジカルソートし、③ 強連結結合と
なるノードにタグをコピーするスクリプトを開発
6
EC2 EBS
スナップ
ショット
AMI
ENI EIP
AWS Startup Tech Meetup 2018-01-15 「AWSコストの事業部別コスト配分について」
(参考)RDS の場合
RDS には、設定されたタグをスナップショットに展開
する機能がある
https://docs.aws.amazon.com/AWSCloudFormation/latest/U
serGuide/aws-properties-rds-database-instance.html#cfn-
rds-dbinstance-copytagstosnapshot
なぜ、EC2 には同等の機能がないのか・・・?
見つけられないだけ?
EC2にも同等機能があれば、開発の必要なかった
7
AWS Startup Tech Meetup 2018-01-15 「AWSコストの事業部別コスト配分について」
結果として
NoTag の費用の遷移
2017年9月 55%
2017年10月 55%
2017年11月 46% ※ タグ付スクリプト開発・実行
2017年12月 40%
着実に NoTag の費用が減ってきた!
8
AWS Startup Tech Meetup 2018-01-15 「AWSコストの事業部別コスト配分について」
Future Work
課題1:ASG によりリソースが頻繁に増減
Auto Scaling Group のインスタンスは、
頻繁に Launch 、Terminate を繰り返している
タグ付スクリプトを実行したあとにできたリソース群には
タグがなく、 NoTag となっていた
タグ付スクリプトを定期実行!
専用の AMI を使い、Data Pipeline で定期実行
すでに目途が立っている。やるだけの状態
課題2: タグ付スクリプトのオープンソース化!
誰でも使えるようにしたい!
時間を見つけて取り組みたい・・・。
9
AWS Startup Tech Meetup 2018-01-15 「AWSコストの事業部別コスト配分について」
まとめ
事業別コスト管理の定石はアカウントの分割
運用の面倒さとのトレードオフ
要件次第でアカウントの分割が適用できないこともある
エネチェンジではタグでコスト管理する方針を採用
EC2 にさえタグがあれば、EBS ほかにも自動で同じタ
グを付与するスクリプトを独自開発
より多くの費用を事業部に直課させることに成功
開発したスクリプトは将来オープンソース化したい
10
11
ご清聴ありがとう
ございました

AWSコストの事業部別コスト配分について

  • 1.
  • 2.
    AWS Startup TechMeetup 2018-01-15 「AWSコストの事業部別コスト配分について」 1自己紹介 エネチェンジ株式会社 チーフエンジニア 電力会社、ガス会社を切り替えるなら、エネチェンジ経由で! 一般家庭だけでなく、法人向けの切替も支援しています エンジニア、積極採用してます! Ruby関西の中の人 2004年発足。2ヵ月に1回、セミナー形式の勉強会を開催 第80回 Ruby関西勉強会 1月13日(土)開催。50人が参加 発表者として登壇くださる方、あとで声かけください。 関西Ruby会議の開催時はスポンサーも募集しています 関西Ruby会議の参加者数は約 200人くらい 大手町.rb の中の人 次回、1月30日(火)大手町.rb#3 の開催を予定 東京駅、各線大手町駅から直結! テーマは「マークアップで役立つ!Ruby」 Ruby の初級者がメインターゲット
  • 3.
    AWS Startup TechMeetup 2018-01-15 「AWSコストの事業部別コスト配分について」 AWS Billing の基本 AWS Billing Console 月額合計請求額、サービスごとの請求額 請求レポート、 AWS Cost Explorer 時間別、日別、月別の料金確認 サービス、リソースごとの料金確認 タグに基づく詳細な料金確認 デフォルトでは有効ではない AWS Billing Console で設定が必要 「AWS Black Belt Online Seminar コストの観点から見るアカウ ント管理」 https://www.slideshare.net/AmazonWebServicesJapan/aws- black-belt-online-seminar#25 2
  • 4.
    AWS Startup TechMeetup 2018-01-15 「AWSコストの事業部別コスト配分について」 エネチェンジでの AWS アカウント 事業部ごとの AWS コストを詳細に把握したい 事業ごとにもっと厳密に収支管理したい! コストの可視化をより精緻にしたい 事業部別コスト管理の定石はAWS アカウントの分割 ただし、運用が面倒になる 最近は Organization とかを使えばマシみたいだけど。。。 エネチェンジでは、相互に関係するプロジェクトも多く、 AWS アカウントの分割はあまり向かない エネチェンジでは単一の AWS アカウントで運用 AWS アカウントを分割せずに、事業部別にコストを把握するた めに、やったことを話します 3
  • 5.
    AWS Startup TechMeetup 2018-01-15 「AWSコストの事業部別コスト配分について」 用語の整理と、目標 直課: 該当のリソースのコストを直接その事業部に関連 付けて集計すること 配賦: 一定の配賦基準に基づいて、該当のリソースの費 用を各事業部に紐づけること 直課した費用の比率で配賦する方式を採用 ほかの代表的な配賦基準としては、所属人員の頭割り、売上比率 などがあります。 4 できる限り多くのリソース費用を 直課 させる! 目標
  • 6.
    AWS Startup TechMeetup 2018-01-15 「AWSコストの事業部別コスト配分について」 コスト配分タグの利用 リソースの費用をタグの値ごとに CSV で取得可能 Excel / Google Spreadsheet により、集計 理論的にはカンタンそうだが・・・ 数々の問題が! 分類のためにはそもそもタグ付けできていることが前提 努力すれば、解決可能。詳細後述 Reserved Instance どの事業のために購入した RI かが不明 どのタイミングでどう適用されたか不明 直課せず、事業部間で配賦することで解決。 Data Transfer どの事業の Data Transfer か分類されない 直課せず、事業部間で配賦。 消費税、サポート 配賦 5
  • 7.
    AWS Startup TechMeetup 2018-01-15 「AWSコストの事業部別コスト配分について」 リソースへのタグ付け 失敗理由: EC2 には気合でガッとがんばって主導でタグを設定 EC2 以外のリソースはタグ付していなかった 特に EBS などはタグがなし。共通費に分類されていた すべてのリソースを徹底的にタグ付け! EC2 に設定されたタグを元に全リソースにタグをつける スクリプトを Ruby で開発 詳細は Qiita の記事「tsort について」を参照 https://qiita.com/cuzic/items/6d6587b522cb5683befe ①グラフと見立て、②トポロジカルソートし、③ 強連結結合と なるノードにタグをコピーするスクリプトを開発 6 EC2 EBS スナップ ショット AMI ENI EIP
  • 8.
    AWS Startup TechMeetup 2018-01-15 「AWSコストの事業部別コスト配分について」 (参考)RDS の場合 RDS には、設定されたタグをスナップショットに展開 する機能がある https://docs.aws.amazon.com/AWSCloudFormation/latest/U serGuide/aws-properties-rds-database-instance.html#cfn- rds-dbinstance-copytagstosnapshot なぜ、EC2 には同等の機能がないのか・・・? 見つけられないだけ? EC2にも同等機能があれば、開発の必要なかった 7
  • 9.
    AWS Startup TechMeetup 2018-01-15 「AWSコストの事業部別コスト配分について」 結果として NoTag の費用の遷移 2017年9月 55% 2017年10月 55% 2017年11月 46% ※ タグ付スクリプト開発・実行 2017年12月 40% 着実に NoTag の費用が減ってきた! 8
  • 10.
    AWS Startup TechMeetup 2018-01-15 「AWSコストの事業部別コスト配分について」 Future Work 課題1:ASG によりリソースが頻繁に増減 Auto Scaling Group のインスタンスは、 頻繁に Launch 、Terminate を繰り返している タグ付スクリプトを実行したあとにできたリソース群には タグがなく、 NoTag となっていた タグ付スクリプトを定期実行! 専用の AMI を使い、Data Pipeline で定期実行 すでに目途が立っている。やるだけの状態 課題2: タグ付スクリプトのオープンソース化! 誰でも使えるようにしたい! 時間を見つけて取り組みたい・・・。 9
  • 11.
    AWS Startup TechMeetup 2018-01-15 「AWSコストの事業部別コスト配分について」 まとめ 事業別コスト管理の定石はアカウントの分割 運用の面倒さとのトレードオフ 要件次第でアカウントの分割が適用できないこともある エネチェンジではタグでコスト管理する方針を採用 EC2 にさえタグがあれば、EBS ほかにも自動で同じタ グを付与するスクリプトを独自開発 より多くの費用を事業部に直課させることに成功 開発したスクリプトは将来オープンソース化したい 10
  • 12.