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
Trusted Advisor の対応推奨項目の diff をとる
Search
Mai Aisaka
January 30, 2025
1
340
Trusted Advisor の対応推奨項目の diff をとる
Trusted Advisor つかってますか?週次でのチェックにつかえそうなdiff取る手段をまとめてみました!
Mai Aisaka
January 30, 2025
Tweet
Share
More Decks by Mai Aisaka
See All by Mai Aisaka
SRE が Ruby アップグレードの時にやっていること (SRE Kaigi 2025 LT)
mist_dev
0
540
1on1やってみてるよ
mist_dev
0
290
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
500
Documentation Writing (for coders)
carmenintech
72
4.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Being A Developer After 40
akosma
90
590k
How to Ace a Technical Interview
jacobian
277
23k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Why Our Code Smells
bkeepers
PRO
337
57k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
Typedesign – Prime Four
hannesfritz
42
2.7k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
Transcript
©iCARE Co.,Ltd Trusted Advisor の対応推奨項目の diff をとる あいさか (@mist_dev)
©iCARE Co.,Ltd 自己紹介 • あいさか (@mist_dev) • iCARE SRE 2年生
• Ruby💎とビール🍺が好き ◦ 日本のクラフトビールが好き • 好きなクラフトビール ◦ 熊本の天草ソナービール🍺 ◦ フルーツスムージーなビールがおいしい
©iCARE Co.,Ltd きょうの話 • Trusted Advisor つかってますか? ◦ AWS 的な構成最適解をチェックして教えてくれる
▪ S3 のブロックパブリックアクセスちゃんと有効にしてる?とか ▪ RDS のバックアップちゃんと取ってる?とか • うちのチームでは週一で項目のチェックをしています ◦ AWS SDK for Ruby v3 で取得し diff を取っています
©iCARE Co.,Ltd きょうの話
©iCARE Co.,Ltd • region は us-east-1 に設定する 準備 require "aws-sdk"
aws_profile_name = ARGV[0] client = Aws::TrustedAdvisor::Client.new( region: 'us-east-1', profile: aws_profile_name )
©iCARE Co.,Ltd • チェックが必要な項目をレベル関係なく全件取得する list_checks で対応を要する項目を取得 checks = [] checks_next_token
= nil loop do options = { language: "ja", max_results: 200, next_token: checks_next_token }.compact results = client. list_checks(options) checks_next_token = results.next_token checks << results.check_summaries break if checks_next_token.nil? end
©iCARE Co.,Ltd list_recommendations で対応を要する項目を取得 • マネジメントコンソールの赤い(error)実施推奨項目を取得する recommends = [] recommends_next_token
= nil loop do options = { status: "error", next_token: recommends_next_token }.compact results = client. list_recommendations(options) recommends_next_token = results.next_token recommends << results.recommendation_summaries break if recommends_next_token.nil? end
©iCARE Co.,Ltd 取得した結果をマージ • 取得した結果をマージし、error項目のタイトルだけをresultとして抽出する ◦ 結果は arn で突き合わせる result
= recommends.flatten.filter_map do |recommend| check = checks.flatten.find { |check| recommend.check_arn == "arn:aws:trustedadvisor:::check/#{check.id}" } check if check && recommend.resources_aggregates.error_count > 0 end
©iCARE Co.,Ltd • 先週分と比較した diff が確認できる ◦ こんなかんじで確認できる。便利 できた
©iCARE Co.,Ltd ある日の diff • \突然の日本語化/ ◦ スルーしたよ
©iCARE Co.,Ltd ©iCARE Co.,Ltd Thank you.