こんにちは、テクニカルサポート課の 佐藤 光晃です。
私は今年10月にサーバーワークスに入社し、現在は AWS 技術サポート対応者の一人となっております。
私の人生の中で一番触れてきた IT 技術として Oracle Database があり、AWS の中では RDS for Oracle が気になっておりました。
今回は RDS for Oracle のトラブルシューティングやパフォーマンス調査に利用できるサービスやツールを紹介したいと思います。
AWS サービス
Amazon CloudWatch Metrics
Amazon CloudWatch は AWS リソースやアプリケーションの監視を行うサービスです。
CPU 使用率などのシステムのパフォーマンスを示す時系列の情報を「メトリクス」と呼び、Amazon CloudWatch Metrics はそのメトリクスの収集、集計、可視化を行います。
オンプレミスでは OS のコマンドやパフォーマンス監視ツール、Statspack や AWR などの OS 統計情報から調査が必要でしたが、AWS では CloudWatch があれば収集の手間が減らせるうえにグラフによる可視化でボトルネック等が探しやすいです。
Amazon CloudWatch Logs
独自のアプリケーションや各種 AWS サービスのログを収集して監視や保存を行うサービスです。
RDS for Oracle ではアラートログ、トレースログ、監査ログ、リスナーログを CloudWatch Logs に出力できます。CloudWatch は監視機能により、特定のイベントが発生した際、通知を飛ばす機能もあります。
一例として、監査ログを監視することで意図しないデータベースの設定変更が行われた場合に管理者に通知を飛ばすこともできます。このサービスはデータベースに限らず利用できるので死活管理としても便利だと思います。
Performance Insights
データベースの負荷をモニタリングできる機能で、Amazon RDS、および、Amazon Aurora で利用可能なサービスとなります。
オンプレミス版など、従来の Oracle Database ユーザーにとっては Statspack や AWR で時間のかかっている SQL や待機イベントからボトルネックを調査していると思います。AWS では Performance Insights によってパフォーマンス調査を容易にしております。
AWS のブログ (初めてのPerformance Insights入門) でも紹介されておりますが、グラフで負荷が高かった時間帯や、処理が長い SQL を手間をかけずに確認できるようになっております。
Amazon RDS での Performance Insights の概要 - Amazon Relational Database Service Amazon Aurora での Performance Insights の概要 - Amazon Aurora
拡張モニタリング
Amazon RDS、および、Amazon Aurora で利用可能なサービスで、OS メトリクスを収集する事が目的となるサービスです。これだけの説明だと CloudWatch Metrics があれば足りてそうに見えるので差異を以下に記載しております。
CloudWatch Metrics との違いは公式ドキュメントでも記載されておりますように、情報の取り方が異なります。また、拡張モニタリングは情報取得の間隔として最短で 1秒 を指定できます。
CloudWatch でも 1秒単位での情報収集は可能ですが、メトリクスとして使用可能な時間に制限 (3時間) があるため、Amazon RDS、および、Amazon Aurora において OS の情報収集は拡張モニタリングのご利用をおすすめします。
Enhanced Monitoring の概要 - Amazon Relational Database Service
Enhanced Monitoring の概要 - Amazon Aurora
Oracle のサービス、ツール
AWR / ADDM / ASH
RDS for Oracle でも変わらず利用可能です。ただし、RDS for Oracle で利用する場合でも Enterprise Edition + Diagnostic pack が必要です。
また、Amazon RDS ではホストに直接アクセスすることはできません。その関係でレポート出力のコマンドが変わっておりますので AWS 公式ドキュメントをよくご確認いただく必要がございます。
一例として、AWR レポート生成コマンドを以下に記載いたします。
・従来の Oracle Database の AWR レポートの生成
@$ORACLE_HOME/rdbms/admin/awrrpt.sql
・RDS for Oracle での AWR レポートの生成 ※スナップショット範囲 101~106 を指定
exec rdsadmin.rdsadmin_diagnostic_util.awr_report(101,106,'TEXT');
Oracle DB インスタンスの一般的なデータベースタスクの実行 - Amazon Relational Database Service
Oracle Statspack
Statspack も RDS for Oracle で変わらず利用可能です。こちらも従来の Oracle Database ではインストールスクリプトを実行しておりましたが、RDS for Oracle ではオプショングループに Statspack オプションを追加することで利用可能となります。
細かいですが、こちらもレポート生成時のコマンドが違うものになります。
・従来の Oracle Database の Statspack レポートの生成
@$ORACLE_HOME/rdbms/admin/spreport.sql
・RDS for Oracle での Statspack レポートの生成 ※スナップショット範囲 101~106 を指定
exec rdsadmin.rds_run_spreport(101,106);
Oracle Statspack - Amazon Relational Database Service
Oracle SQLT
Oracle SQLT も RDS for Oracle で変わらず利用可能です。RDS for Oracle で利用する場合にも SQLT の準備は My Oracle Support からダウンロードが必要となります。
AWS で利用する際の前提条件もございますので、ご利用を希望する場合には AWS 公式ドキュメントをご参照いただきたく存じます。
Oracle SQLT - Amazon Relational Database Service
Oracle Enterprise Manager Cloud Control (EMCC)
RDS for Oracle を EMCC で管理することができます。既に EMCC を利用、かつ、Oracle Dabatase 以外の Oracle 製品も管理している場合に利用する機会があると思われます。
新規で RDS for Oracle をお使いいただく場合や、EMCC による管理を行ってない場合には管理コストや導入時の前提条件が複雑なことから個人的にはおすすめしません・・・。
Enterprise Manager Cloud Control 向け Oracle Management Agent - Amazon Relational Database Service
SQL Developer
SQL Developer はざっくりで言うと、Oracle 社が提供している IDE で、JDK があれば動く EMCC より導入が楽な管理ツールです。
私が経験してきた中ではあまり使ってる人はいなかったかな・・・という印象ですが前述の AWR レポートとかが簡単に作れるので便利なツールです。
Oracle SQL Developer を使用した DB インスタンスへの接続 - Amazon Relational Database Service
その他
特にパフォーマンスチューニングのご経験がある方が聞き覚えがあるかと思いますが、RDS for Oracle でも 10046 トレースや systemstate/hanganalyze の取得が可能です。
Amazon RDS for Oracle で Oracle 診断イベントをシステムレベルで設定する | Amazon Web Services ブログ
Oracle Database のログファイル - Amazon Relational Database Service
まとめ
以上が RDS for Oracle のトラブルシューティングやパフォーマンス調査に利用できるサービスやツールとなります。
AWS のサービスがあれば基本的に事足りそうですが、従来からあるツールで調査したい、という人向けの機能も備わっており、Oracler な人たちがクラウドな環境に変わっても対応しやすいのかな、という印象を持ちました。
最後に AWS が案内している RDS for Oracle で高い CPU 使用率が発見された時の対応指針について紹介します。上記で紹介した AWS のサービスや Oracle のツールでトラブルシューティングを進めるうえで参考になるドキュメントですので、参考にしていただければと思います。
佐藤 光晃 (記事一覧)
マネージドサービス部・テクニカルサポート課
2022年10月にサーバーワークスに入社しました。
前職でもテクニカルサポートに従事しており、情報収集に役立つサービスやツールに興味があります。2023年8月にAWS資格12試験全冠しました。