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
270
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
450
1on1やってみてるよ
mist_dev
0
280
Featured
See All Featured
A Tale of Four Properties
chriscoyier
158
23k
Producing Creativity
orderedlist
PRO
344
40k
How to Ace a Technical Interview
jacobian
276
23k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
410
KATA
mclloyd
29
14k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Into the Great Unknown - MozCon
thekraken
35
1.7k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7.1k
GraphQLの誤解/rethinking-graphql
sonatard
69
10k
A designer walks into a library…
pauljervisheath
205
24k
The Pragmatic Product Professional
lauravandoore
32
6.4k
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.