Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
RDS のトラブル発生に備えて!やっておくべき設定・監視 #jawsdays2021 #jawsdays2021_B
もっさん
March 20, 2021
Technology
0
3k
RDS のトラブル発生に備えて!やっておくべき設定・監視 #jawsdays2021 #jawsdays2021_B
もっさん
March 20, 2021
Tweet
Share
More Decks by もっさん
See All by もっさん
WorkSpacesへのアクセス制限を考える
_mossann_t
0
1.1k
JAWSと出会ったエモい話
_mossann_t
0
200
Other Decks in Technology
See All in Technology
Deeplearning from almost scratch
hn410
0
580
srenext2022-skaru
mixi_engineers
0
380
20220510_簡単にできるコスト異常検出(Cost Anomaly Detection) /jaws-ug-asa-cost-anomaly-detection-20220510
emiki
2
310
Embedded SRE at Mercari
tcnksm
0
780
AWS CloudShellという推しサービスについて / lt-20220502-jawsug-cli
becominn
0
640
インフラエンジニアBooks 30分でわかる「Dockerコンテナ開発・環境構築の基本」
cyberblack28
11
6.6k
モデリング、コンテキスト トランジション +1 / Data modeling
ishiayaya
0
110
220428event_karibe_part
caddi_eng
0
180
目と耳を持った自然言語処理 - スタートアップにおける価値創出のために
yag_ays
PRO
0
510
株式会社オプティム_採用会社紹介資料 / optim-recruit
optim
0
5.2k
數據的多重宇宙 @ LINE Taiwan
line_developers_tw
PRO
0
360
キャッチアップ Android 13 / Catch up Android 13
yanzm
2
870
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
638
52k
Intergalactic Javascript Robots from Outer Space
tanoku
261
25k
Building an army of robots
kneath
299
40k
The Mythical Team-Month
searls
208
39k
Why You Should Never Use an ORM
jnunemaker
PRO
47
5.5k
Six Lessons from altMBA
skipperchong
14
1.3k
It's Worth the Effort
3n
172
25k
Making Projects Easy
brettharned
98
4.3k
Writing Fast Ruby
sferik
612
57k
Web development in the modern age
philhawksworth
197
9.3k
Rails Girls Zürich Keynote
gr2m
86
12k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
3
430
Transcript
RDSのトラブル発生に備えて! やっておくべき設定・監視
橋本(伊豫谷) 優希 / もっさん Yuki Hashimoto(Iyotani) / mossan Twitter :
@_mossann_t クラスメソッド株式会社 オペレーション部 テクニカルサポートエンジニア 好きなAWS サービス : WorkSpaces , IoT Core ブログhttps://dev.classmethod.jp/author/iyotani-yuki/
本セッションの対象者 • RDS を使い始めたばかりの方 • RDS のモニタリング・ログの設定を行ったことがない方 • モニタリング・ログ設定の重要性を説明する立場の方
今日お話しすること • RDS のモニタリング・ロギング機能の概要 • 各機能の設定手順 お話ししないこと • ログやメトリクスからの切り分け手法 •
サードパーティ社製品の概要や設定方法 • データベースのチューニング
突然ですが
RDSがなんだかおかしい!!! ……といった場面に遭遇したことはありますか?
「なんだかおかしい」の具体例 • 応答遅延 • 応答してない • アプリケーションやWEBサーバとの接続断 • 再起動
調査しようとしたけれど…… • RDS のCloudWatch 標準メトリクスには EC2でいう「StatusCheckFailed」がない →システム側(AWS基盤側)の問題なのか、インスタンス内部の問題なのかは CloudWatch 標準メトリクスの値からは読み取りにくい •
CPU使用率が高い理由は CloudWatch だけではわからない (処理が重いクエリのせい ? メンテナンス? 他の原因?) • メモリ使用率はCloudWatch 標準メトリクスでは取得できない
原因が不明 = 改善できない
RDS のモニタリング・ログ機能は CloudWatch 標準メトリクスだけではない! • Performance Insights • 拡張モニタリング •
スロークエリログ • RDS イベントに対する通知
RDS のモニタリング・ログ機能は CloudWatch 標準メトリクスだけではない! • Performance Insights • 拡張モニタリング •
スロークエリログ • RDS イベントに対する通知
Performance Insights • DB への負荷がグラフで可視化できる • 以下のことがわかる • アクティブなセッション数 (DBのレスポンス待ちの接続数
) • 待機イベント(ボトルネックになっているイベント ) • DB への負荷が高いクエリ • 最大 vCPU 値 参考:Performance Insights の概要 - Amazon Relational Database Service https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.html
Performance Insights • RDS コンソールから RDS インスタンスを作成する場合、デフォルトで有効になっている • 作成時にPerformance Insights
を有効化していなかった場合も、後から有効化できる • データの保持期間を選択できる • 7日間(無料枠あり) • 2年間(長期保存) 参考: Performance Insights の有効化と無効化 - Amazon Relational Database Service https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_PerfInsights.Enabling.html 料金 - Performance Insights | AWS https://aws.amazon.com/jp/rds/performance-insights/pricing/
Performance Insights • RDS コンソールの場合:[データベース] - 対象DBインスタンスを選択 - [変更]
Performance Insights • AWS CLI の場合:rds modify-db-instance コマンド 参考:Performance Insights
の有効化と無効化 - Amazon Relational Database Service https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_PerfInsights.Enabling.html aws rds modify-db-instance \ --db-instance-identifier sample-db-instance \ —enable-performance-insights
RDS のモニタリング・ログ機能は CloudWatch 標準メトリクスだけではない! • Performance Insights • 拡張モニタリング •
スロークエリログ • RDS イベントに対する通知
拡張モニタリング • メモリ使用率など、OSからのメトリクスを取得できる • どのプロセスやスレッドで CPUが使われているのかわかる • CloudWatch Logs にデータが保存できる
参考:拡張モニタリングの使用 - Amazon Relational Database Service https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html
拡張モニタリング • [データベース] - 対象データベースを選択 - [変更] -モニタリング
RDS のモニタリング・ログ機能は CloudWatch 標準メトリクスだけではない! • Performance Insights • 拡張モニタリング •
スロークエリログ • RDS イベントに対する通知
スロークエリログ • 実行に時間がかかっているクエリを記録することができる • 閾値は自分で設定することができる (デフォルトは10秒) • パラメータグループの値を変更することで設定可能 参考:拡張モニタリングの使用 -
Amazon Relational Database Service https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html
スロークエリログ • [パラメータグループ] - [編集] - slow_query_log の値を 1にする 参考:MySQL
を実行している Amazon RDS DB インスタンスのログを有効にしてモニタリングする https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-mysql-logs/
スロークエリログ 設定するパラメータ 参考:MySQL を実行している Amazon RDS DB インスタンスのログを有効にしてモニタリングする https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-mysql-logs/ slow_query_log
有効 (1) / 無効(0) Long_query_time 実行時間の閾値(秒) slow_query_log_file ログファイルパス
スロークエリログ 設定の注意点 設定の反映に再起動が必要になる場合がある • パラメータグループの入れ替えを行う場合 (デフォルトのパラメータグループの値は変更できない ) • 変更した値の「適用タイプ」が static
の場合 参考:MySQL を実行している Amazon RDS DB インスタンスのログを有効にしてモニタリングする https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-mysql-logs/
RDS のモニタリング・ログ機能は CloudWatch 標準メトリクスだけではない! • Performance Insights • 拡張モニタリング •
スロークエリログ • RDS イベントに対する通知
RDS イベントに対する通知 • RDS のイベントサブスクリプション機能を使って、 RDS へなんらかのイベントが発生した時、 Eメール通知やSNS トピックへ配信できる •
特定インスタンスや特定クラスターのみ、特定のイベントのみ通知することも可能 参考:Amazon RDS イベント通知の使用 - Amazon Aurora https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/USER_Events.html
RDS イベントに対する通知 • [イベントサブスクリプション ] - [イベントサブスクリプションの作成 ]
RDS イベントに対する通知 • Eメール通知の場合 : [新しいEメールトピック] • 「これらの受取人を含みます」にメールアドレスを記載
RDS イベントに対する通知 • 2021 / 02 /19 の神アップデート (AWS さん本当にありがとうございます
) Amazon RDS がマルチ AZ 配置用の新しいイベントを発行 https://aws.amazon.com/jp/about-aws/whats-new/2021/02/amazon-rds-publishes-new-ev ents-multi-az-deployments/ • RDS がマルチAZ 配置の場合、フェイルオーバー 理由が イベントでわかるように • 従来は、フェイルオーバーの要因をユーザーが知ることができる項目はなかった 参考:[アップデート] RDS マルチAZ配置で「フェールオーバー時の ”理由”」がイベントログで確認できるようになりました! | DevelopersIO https://dev.classmethod.jp/articles/rds-publishes-new-events-multi-az-deployments/
RDS のモニタリング・ログ機能は CloudWatch 標準メトリクスだけではない! • Performance Insights • 拡張モニタリング •
スロークエリログ • RDS イベントに対する通知
注意事項 • RDSのパフォーマンスにわずかに影響する可能性がある →どうしてもパフォーマンス低下が見受けられる場合は、 データの取得頻度を減らす、メトリクスの粒度を大きくするなどの調整を検討ください • 今回紹介したモニタリングデータやログは、設定以後から取得可能 →設定をオンにする以前のデータは遡って取得できない 問題が発生した時に備えて、ぜひモニタリング・ログデータの取得設定を!
最後に • RDS に限らず、サーバは落ちるもの • 大事なデータベースは、マルチ AZなどの冗長化や リードレプリカなどの負荷分散の検討が必要 • 落ちた時に、落ち着いて状況を把握したり、次につながる改善策を考えるためにも、
モニタリングとロギングは超大事
原因がわかれば怖くない!
None