Amazon Web Services ブログ
SAP HANA監視: Amazon CloudWatchを使用したサーバレスアプローチ
はじめに
以前のブログ記事で、Amazon CloudWatchを使用してSAP NetWeaver ABAPベースの環境を監視する方法を紹介しました。 これにより、アプリケーションレベルでSAPワークロードを監視する簡単な方法を提供し、監視ダッシュボードとアラームをお客様独自の要件に合わせられるようにします。このブログ記事では、SAP HANA用にAmazon CloudWatchとAWS Lambdaを基にした同様のサーバレスアプローチを提供することで、このソリューションを完全にします。
このアプローチにより、お客様はサーバーやエージェントの導入、あるいは管理をする必要がなく、低コストでSAP HANA環境を効率的に監視できます。このソリューションは、AWS Serverless Application RepositoryかAWS CloudFormationを使用してシームレスかつ数分で展開できます。CloudWatchのカスタムメトリクス機能と新しい埋め込みログフォーマット機能を使用します。これにより、CloudWatchの中で、SAP HANAデータベースレベルの性能データのような独自のメトリクスを簡単に発行でき、しきい値とアラームを作成できます。
アーキテクチャ
次のアーキテクチャ図は、AWS CloudFormationで展開される監視構成を示しています。
生成されたAmazon CloudWatchルールは、Node.jsベースのLambda関数を毎分トリガーし、公式のSAP HANA Client Libraryを通じてSAP HANAデータベースに対して複数のSQLステートメントを実行します。この接続は、既存のAmazon Virtual Private Cloud (VPC)にLambda関数を追加して確立します。
SAP HANAの認証情報と接続情報は、AWS Secrets Manager内に安全に保存されており、接続を確立する際にオンデマンドで取得しにいきます。Lambda関数は、SAP HANAデータベースレベルのメトリクスを抽出し、それぞれのカスタム名前空間を追加して、CloudWatchに送付します。利用者は、その後でCloudWatch内に独自のカスタムダッシュボードを作成できます。
設定
前提条件
- SAP HANA 1.0 SPS 12以上
- SAP HANA監視用のユーザーとパスワード – “手順 1”を参照
- ポート 3<インスタンスID>13、3<インスタンスID>15のインバウンド/アウトバウンド通信を許可したAmazon VPC セキュリティグループ。Lambda関数がプライベートサブネットを介して監視対象のSAP HANAデータベースに接続できるようにするため
- 本稼働システムの場合、SAPノート 1656250に従って、CloudWatch詳細モニタリングを有効化
手順 1: 監視用のSAPユーザーを作成 (SAP HANA Studio)
ステップバイステップガイドと必要な権限が整理されたリストを参照してください。
手順 2: ソリューションを展開 (AWSコンソール)
大半のAWSリージョンでは、AWS Serverless Application Repository (AWSフランクフルトリージョンの例)からsap-monitor-hanaを検索することで、このソリューションを容易に展開できます。Show apps that create custom IAM rolesにチェックマークがついていることを確認してください。
お使いのリージョンでこれが利用できない場合、次のAWS CloudFormation テンプレートを実行して手動で展開してください。
SAP HANA ID、ホスト/IPアドレス、インスタンスID、DBユーザーとパスワード、ターゲットVPCのセキュリティグループとサブネットなど、必要な詳細をすべて注意深く入力します。入力内容とSAP HANAサーバー用のAmazon Elastic Compute Cloud (Amazon EC2)の設定も比較してください。
注: 複数のシステムを監視する場合、SAP HANAデータベース毎にこのアプリケーションの単一インスタンスを展開しなければなりません。
もしこの手順で問題が発生したら、トラブルシューティングガイドを参照してください。
手順 3: 関数をテスト (AWSコンソール)
Lambdaコンソールを開き、sap-monitor-hana-<SID>を選択して、Testを選択します。Configure test eventのページで、Create new test eventを選択して、{“refresh”:true}と入力します。
Testをクリックします。期待される出力を以下に示します。
もしこの手順で問題が発生したら、トラブルシューティングガイドを参照してください。
手順 4: スケジューラを有効化 (AWSコンソール)
CloudWatchコンソールを開きます。ナビゲーションペインで、Rulesを選択します。ルール sap-monitor-hana-<SID>を選択し、ActionsからEnableを選択して、定期的に実行されるようにします。
手順 5: ダッシュボードを作成 (AWSコンソール)
CloudWatchコンソールを開きます。ナビゲーションペインで、Metricsを選択します。カスタム名前空間の下に、 SID順に並べられたカスタムメトリクスが表示されているはずです。任意のメトリクスを選択して、出力をプレビューできます。
Dashboardsに遷移し、Create dashboardをクリックして新しいカスタムダッシュボードを設定します。Add widgetを選択し、リストからそれぞれのカスタムメトリクスを選択します。粒度と期間が一致していることを確認しましょう。Saveをクリックすることを忘れないでください。その結果、ダッシュボードは次のようになります。
注: ダッシュボードテンプレート (XML形式)は、ここから探せます。インポート (CloudWatch Dashboard → Actions → View/edit source)する前に、HANA ID (“HDB”)とAWSリージョン (“eu-central-1”)は調整してください。
手順 6: アラームを作成
アラームを作成して、指定したしきい値を超えたときに通知を受信できます。
次のように、関数 sap-monitor-hana-<SID>のLambdaメトリクス Errorsを選択して、sap-monitor自身を監視するシンプルなアラームから始めてみましょう。
対応するAmazon Simple Notification Service (Amazon SNS)のトピックを設定すれば、監視が失敗したときにEメールで通知されるよう選択できます。最新の注意を払う必要があるメトリクスのために、追加のアラームを続行してください。
性能に関する考慮事項
クエリの合計実行結果が2秒未満で、ポーリング間隔が1分のため、このソリューションのオーバーヘッドは無視できると考えられます。LambdaランタイムメトリクスやLambda関数ログを通じて厳密に監視することもできます。
コストに関する留意事項
例えば、一つのSAP HANAシステムで、無料枠を考慮しない場合、推定コストはSIDあたり月額15米ドルです。コストは、主にカスタムメトリクスの数によって決まります。保存されるログデータを制限し、長期的にコストを削減するためには、/aws/lambda/sap-monitor-hana-<SID>も1週間に 保持期限を削減してください。
収集されるメトリクス
現時点で収集されるメトリクスと重要性の完全なリストは、GitHubリポジトリにあります。ハードディスクの空き容量のような他のOS関連のメトリクスも監視したい場合は、加えてCloudWatch エージェントを展開することもできます。
貢献
このソリューションはそのまま提供されますが、GitHubリポジトリを使用したバグの報告、関連するアイデアの収集、開発者としての貢献を奨励しています。
結論
このブログ記事では、Amazon CloudWatchを使用してSAP HANAデータベースを監視する方法を紹介しました。また、AWS Serverless Application RepositoryとAWS CloudFormationを通じて展開できるSAP HANAメトリクスのベースラインを備えたすぐに使用可能なソリューションも提供しています。データベースの認証情報はAWS Secrets Manager内に安全に保存されることもお伝えしています。SAP HANAシステムへの接続は明確に定義されており、オンデマンドで簡単に無効化できます。ソースコードは公に入手可能であり、また拡張することができます。これにより、SAP HANAを監視する簡単な方法が得られ、監視ダッシュボードとアラームはお客様独自の要件に合わせて調整できます。このブログ記事がお役に立てば幸いです。ご意見やご質問はお気軽にお問い合わせください。
翻訳はPartner SA 河原が担当しました。原文はこちらです。