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
550
1on1やってみてるよ
mist_dev
0
290
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
21
1.3k
Automating Front-end Workflow
addyosmani
1370
200k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Being A Developer After 40
akosma
90
590k
Embracing the Ebb and Flow
colly
86
4.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Thoughts on Productivity
jonyablonski
69
4.7k
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.