Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RDS のトラブル発生に備えて!やっておくべき設定・監視 #jawsdays2021 #jawsdays2021_B

RDS のトラブル発生に備えて!やっておくべき設定・監視 #jawsdays2021 #jawsdays2021_B

もっさん

March 20, 2021
Tweet

More Decks by もっさん

Other Decks in Technology

Transcript

  1. RDSのトラブル発生に備えて!
    やっておくべき設定・監視

    View Slide

  2. 橋本(伊豫谷) 優希 / もっさん
    Yuki Hashimoto(Iyotani) / mossan
    Twitter : @_mossann_t
    クラスメソッド株式会社 オペレーション部
    テクニカルサポートエンジニア
    好きなAWS サービス : WorkSpaces , IoT Core
    ブログhttps://dev.classmethod.jp/author/iyotani-yuki/

    View Slide

  3. 本セッションの対象者
    ● RDS を使い始めたばかりの方
    ● RDS のモニタリング・ログの設定を行ったことがない方
    ● モニタリング・ログ設定の重要性を説明する立場の方

    View Slide

  4. 今日お話しすること
    ● RDS のモニタリング・ロギング機能の概要
    ● 各機能の設定手順
    お話ししないこと
    ● ログやメトリクスからの切り分け手法
    ● サードパーティ社製品の概要や設定方法
    ● データベースのチューニング

    View Slide

  5. 突然ですが

    View Slide

  6. RDSがなんだかおかしい!!!
    ……といった場面に遭遇したことはありますか?

    View Slide

  7. 「なんだかおかしい」の具体例
    • 応答遅延
    • 応答してない
    • アプリケーションやWEBサーバとの接続断
    • 再起動

    View Slide

  8. 調査しようとしたけれど……
    • RDS のCloudWatch 標準メトリクスには
    EC2でいう「StatusCheckFailed」がない
    →システム側(AWS基盤側)の問題なのか、インスタンス内部の問題なのかは
     CloudWatch 標準メトリクスの値からは読み取りにくい
    • CPU使用率が高い理由は CloudWatch だけではわからない
    (処理が重いクエリのせい ? メンテナンス? 他の原因?)
    • メモリ使用率はCloudWatch 標準メトリクスでは取得できない

    View Slide

  9. 原因が不明 = 改善できない

    View Slide

  10. RDS のモニタリング・ログ機能は
    CloudWatch 標準メトリクスだけではない!
    • Performance Insights
    • 拡張モニタリング
    • スロークエリログ
    • RDS イベントに対する通知

    View Slide

  11. RDS のモニタリング・ログ機能は
    CloudWatch 標準メトリクスだけではない!
    • Performance Insights
    • 拡張モニタリング
    • スロークエリログ
    • RDS イベントに対する通知

    View Slide

  12. 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

    View Slide

  13. 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/

    View Slide

  14. Performance Insights
    • RDS コンソールの場合:[データベース] - 対象DBインスタンスを選択 - [変更]

    View Slide

  15. 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

    View Slide

  16. RDS のモニタリング・ログ機能は
    CloudWatch 標準メトリクスだけではない!
    • Performance Insights
    • 拡張モニタリング
    • スロークエリログ
    • RDS イベントに対する通知

    View Slide

  17. 拡張モニタリング
    • メモリ使用率など、OSからのメトリクスを取得できる
    • どのプロセスやスレッドで CPUが使われているのかわかる
    • CloudWatch Logs にデータが保存できる
    参考:拡張モニタリングの使用 - Amazon Relational Database Service
    https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html

    View Slide

  18. 拡張モニタリング
    • [データベース] - 対象データベースを選択 - [変更] -モニタリング

    View Slide

  19. RDS のモニタリング・ログ機能は
    CloudWatch 標準メトリクスだけではない!
    • Performance Insights
    • 拡張モニタリング
    • スロークエリログ
    • RDS イベントに対する通知

    View Slide

  20. スロークエリログ
    • 実行に時間がかかっているクエリを記録することができる
    • 閾値は自分で設定することができる (デフォルトは10秒)
    • パラメータグループの値を変更することで設定可能
    参考:拡張モニタリングの使用 - Amazon Relational Database Service
    https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html

    View Slide

  21. スロークエリログ
    • [パラメータグループ] - [編集] - slow_query_log の値を 1にする
    参考:MySQL を実行している Amazon RDS DB インスタンスのログを有効にしてモニタリングする
    https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-mysql-logs/

    View Slide

  22. スロークエリログ
    設定するパラメータ
    参考: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 ログファイルパス

    View Slide

  23. スロークエリログ 設定の注意点
    設定の反映に再起動が必要になる場合がある
    • パラメータグループの入れ替えを行う場合
    (デフォルトのパラメータグループの値は変更できない )
    • 変更した値の「適用タイプ」が static の場合
    参考:MySQL を実行している Amazon RDS DB インスタンスのログを有効にしてモニタリングする
    https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-mysql-logs/

    View Slide

  24. RDS のモニタリング・ログ機能は
    CloudWatch 標準メトリクスだけではない!
    • Performance Insights
    • 拡張モニタリング
    • スロークエリログ
    • RDS イベントに対する通知

    View Slide

  25. RDS イベントに対する通知
    • RDS のイベントサブスクリプション機能を使って、
    RDS へなんらかのイベントが発生した時、 Eメール通知やSNS トピックへ配信できる
    • 特定インスタンスや特定クラスターのみ、特定のイベントのみ通知することも可能
    参考:Amazon RDS イベント通知の使用 - Amazon Aurora
    https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/USER_Events.html

    View Slide

  26. RDS イベントに対する通知
    • [イベントサブスクリプション ] - [イベントサブスクリプションの作成 ]

    View Slide

  27. RDS イベントに対する通知
    • Eメール通知の場合 : [新しいEメールトピック]
    • 「これらの受取人を含みます」にメールアドレスを記載

    View Slide

  28. 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/

    View Slide

  29. RDS のモニタリング・ログ機能は
    CloudWatch 標準メトリクスだけではない!
    • Performance Insights
    • 拡張モニタリング
    • スロークエリログ
    • RDS イベントに対する通知

    View Slide

  30. 注意事項
    • RDSのパフォーマンスにわずかに影響する可能性がある
    →どうしてもパフォーマンス低下が見受けられる場合は、
     データの取得頻度を減らす、メトリクスの粒度を大きくするなどの調整を検討ください
    • 今回紹介したモニタリングデータやログは、設定以後から取得可能
    →設定をオンにする以前のデータは遡って取得できない
     問題が発生した時に備えて、ぜひモニタリング・ログデータの取得設定を!

    View Slide

  31. 最後に
    • RDS に限らず、サーバは落ちるもの
    • 大事なデータベースは、マルチ AZなどの冗長化や
    リードレプリカなどの負荷分散の検討が必要
    • 落ちた時に、落ち着いて状況を把握したり、次につながる改善策を考えるためにも、
    モニタリングとロギングは超大事

    View Slide

  32. 原因がわかれば怖くない!

    View Slide

  33. View Slide