Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LambdaでBilling Alertを拡張してみた
Search
Mamoru Ohashi
July 14, 2016
Technology
0
39
LambdaでBilling Alertを拡張してみた
JAWS-UG アーキテクチャ支部 クラウドネイティブ分科会#10
LT枠発表内容です。
Mamoru Ohashi
July 14, 2016
Tweet
Share
More Decks by Mamoru Ohashi
See All by Mamoru Ohashi
今の私を形作る4つの要素と偶然の出会い(セレンディピティ)
mamohacy
2
110
フルリモートワークはエンジニアの夢を叶えたか? #cm_odyssey
mamohacy
3
910
ソフトウェア開発子会社立ち上げのためのタスク管理術〜Asana活用で"混乱期"を乗り越える〜
mamohacy
3
760
NW-JAWS誕生秘話:シーズン1を終えるにあたって
mamohacy
1
220
リスキリングの特効薬!「技術コミュニティ」のススメ
mamohacy
2
1.8k
KDDIにおけるクラウド活⽤のあゆみ〜CCoEが率いる社内カルチャー変⾰〜
mamohacy
3
310
シゴトをジモトに運び込め〜大企業でCCoEやってた私が地元に事業所を作るまで〜
mamohacy
2
530
地域ICTクラブ 令和4年度 地域交流会 in 静岡(沼津)
mamohacy
1
790
コミュニティづくりは甘くない!〜亀田さんからの宿題回答編〜
mamohacy
2
190
Other Decks in Technology
See All in Technology
戦えるAIエージェントの作り方
iwiwi
2
810
OSSで50の競合と戦うためにやったこと
yamadashy
3
1k
プロダクト開発と社内データ活用での、BI×AIの現在地 / Data_Findy
sansan_randd
1
620
20251027_findyさん_音声エージェントLT
almondo_event
2
490
[re:Inent2025事前勉強会(有志で開催)] re:Inventで見つけた人生をちょっと変えるコツ
sh_fk2
1
940
OPENLOGI Company Profile for engineer
hr01
1
46k
【SORACOM UG Explorer 2025】さらなる10年へ ~ SORACOM MVC 発表
soracom
PRO
0
170
組織全員で向き合うAI Readyなデータ利活用
gappy50
5
1.6k
AI時代の発信活動 ~技術者として認知してもらうための発信法~ / 20251028 Masaki Okuda
shift_evolve
PRO
1
120
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
0
390
dbtとAIエージェントを組み合わせて見えたデータ調査の新しい形
10xinc
7
1.4k
DSPy入門
tomehirata
4
500
Featured
See All Featured
For a Future-Friendly Web
brad_frost
180
10k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
890
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
Mobile First: as difficult as doing things right
swwweet
225
10k
Transcript
Mamoru Ohashi @mamohacy @mamohacy#20160714 LambdaでBilling Alertを 拡張してみた 〜 ⾮マネコン/⽇別31段階/無期限繰返通知 〜
2016.07.14
1 ⼤橋 衛(オオハシマモル) 1974/10/01(41歳) AWS Solution Architect(associate) アプリエンジニア12年 インフラエンジニア4年 クラウドエンジニア3年(=AWS歴)
2016/07現在、現在⼤⼿通信会社にて AWSコンサル/セキュリティ監査業務 家族︓妻、娘2⼈ 趣味︓スノーボード、読書、DIY 絶賛本名プレイ中 @mamohacy http://blog.mamohacy.com/ ⾃⼰紹介 @mamohacy#20160714
2 AWS Summit Tokyo 2016 に登壇しました @mamohacy#20160714 http://cloudblog.kddi.com/iaaspaas/4279/
使ってますか︖ Lambda
使ってますよ︕ Lambda
5 使ってますよ︕Lambda うちでは主に 「運⽤管理ツール」として使ってます ・Slackに投げた勤怠連絡をメールに転送 ・billing情報をSlackに通知 ・IAM管理統制とセキュリティ統制⾃動化 ・侵⼊テスト申請⾃動化 ・などなど @mamohacy#20160714
その中から今回は 「拡張版 Billing Alert」をご紹介︕
開発部⾨Y 開発部⾨X ⽀払アカウント @mamohacy#20160714 弊社のAWS利⽤費⽀払い管理 システムA 開発 商⽤ 検証 システムB
開発 システムC 開発/検 証 商⽤ AWS チーム 開発 部⾨ :AWSアカウント
7 Billingの課題 「予算策定は開発部⾨」 「⽀払とBilling Alert設定はAWSチーム」 p 各部⾨から予算情報を取得 p 予算情報/過去実績から閾値を算出・予測 p
アカウントAにBilling Alertを設定 p アカウントBにBilling Alertを設定 p アカウントCに・・・・ p あ、Alert⾶んだ。確認しなきゃ。 p え︖負荷試験中だから⼤丈夫︖そうですか・・・ p は︖来週に緊急リリース︖マジっすか︖ @mamohacy#20160714
@mamohacy#20160714 やってられるかァ︕
@mamohacy#20160714 ってことで Billing Alert を Lambda で 拡張してみました
10 純正Billing Alert機能の特徴 Ø 親の介在が必須 Ø ⼦側が簡単に扱えない @mamohacy#20160714 純正Billing Alertの特徴
ü要マネコン ü予算管理機能使えるのは親側だけ ü期間指定による閾値設定は出来ない üアラーム通知は閾値超過後の1回のみ
11 純正Billing Alert機能の特徴 Ø 親の介在は初期セットアップ時のみ Ø ⼦側が簡単に扱える @mamohacy#20160714 拡張版Billing Alertの特徴
üマネコン不要 ü⼦側で設定ファイルを作りS3アップロードすればOK ü⽉初からの経過⽇数毎に閾値を設定可能(Max31段階) ü閾値超過時は設定直すまで1時間おきにアラーム通知
12 アーキテクチャ @mamohacy#20160714 S3 bucket User confi g set billing
alarm reset alarm status Billing Alert CloudWatch email notification SNS upload invoke notify create 0:00/daily 0:00/hourly invoke invoke alarm アラーム状態の リセット Billing Alertの セット
13 config • ⽇毎に段階的に予算設定が可能 (最⼤31段階) • 実証実験中、負荷試験中、S-in、 キャンペーンなどのイベントに 合わせて予算を決め、ユーザー が⾃分⾃⾝でテキストファイル
をS3に保存する • configファイルを置かなければ Alert処理は無効になる @mamohacy#20160714 #day, threshold(USD) 10, 200 20, 400 ・・・・ 31, 600 aws_budget.txt
reset-alarm-status.py set-billing-alarm.py @mamohacy#20160714 コア・プログラム 43 steps(*include comments) 183 steps(*include comments)
15 ポイント その1 @mamohacy#20160714 cw_alarm_description = cw_alarm_description.replace("%THRESHOLD%", threshold) cw_alarm_action =
cw_alarm_action.replace("%ACCOUNT_ID%", account_id) #Alarmの設定 response = cloud_watch.put_metric_alarm(AlarmName=cw_alarm_name, AlarmDescription=cw_alarm_description, ActionsEnabled=True, AlarmActions=[cw_alarm_action], Namespace=cw_metric_namespace, MetricName=cw_metric_name, Statistic='Maximum', Dimensions=[ {'Name': 'Currency’, 'Value': 'USD’}, {'Name': 'LinkedAccount’, 'Value': account_id } ], Period=21600, EvaluationPeriods=1, Threshold=int(threshold), ComparisonOperator='GreaterThanThreshold' ) set-billing-alarm.py configから読んだ 閾値をalarmにセッ ト
16 ポイント その2 @mamohacy#20160714 alarm_name="Estimated Charges” # 実施要否判定() response =
cloud_watch.describe_alarms(AlarmNames=[alarm_name], StateValue='ALARM’) if len(response['MetricAlarms']) <= 0: return 0 # アラームステータスをリセット(強制的にアラームじゃない状態に戻す) response = cloud_watch.set_alarm_state(AlarmName=alarm_name, StateValue='INSUFFICIENT_DATA', StateReason='’,StateReasonData='{}’) return 0 reset-alarm-status.py 閾値超えてれば即 座にアラームが発 生!
17 拡張版 Billng Alertの導⼊効果 ü親による⼀括予算管理が不要に ü有効化/無効化の設定も⼦側で üAlert通知後の判断も⼦側からスタート (設定修正漏れ/恣意的/バグ/障害 etc...) 親アカウント側の予算管理&BillingBurst対応⼯数が
「実質ゼロ」 に︕ @mamohacy#20160714
@mamohacy#20160714 ご清聴ありがとうございました︕