Azureサービスの運用に欠かせない「Azure Monitor」について解説

はじめに

一昔前のサーバー運用と言えばサーバーやネットワーク機器、周辺機器等を一式購入し、社内スペースに設置して運用・管理を行う「オンプレミス」か、社内ではなくデータセンターにサーバーを設置して運用・管理をする方法がほとんどでした。サーバーは1台でも高額ですがシステムの規模が大きくなればなるほど各役割を持つサーバーをそれぞれ分けた複数台構成が必須となり、それら複数サーバーを設置するラック等も合わせると購入代金だけで数千万単位のコストで発生することも珍しくありません。その他に運用・保守を外部に任せるとなるとその分の費用もプラスされます。

以上のような状況を打破したのがクラウドサービスの進化です。多くのシステムでは個人情報などの機密データを扱うため、以前はセキュリティ面から見た場合に外部サーバーにそれらのデータを保存することでの情報流出等のリスクが懸念される状況がありました。しかし、インターネットビジネスの普及や、インターネット上で扱うデータ量の増加によるシステム拡張の必要性が高まったことが後押しし、クラウドサービスも様々な問題をクリアしたうえで大手企業から正式なサービスとしてリリースできる状態にまで進化を遂げました。

代表的なサービスとしては、2006年に企業向けにリリースされたAmazonのAWSや、2008年にリリースされたGoogleの「Google Cloud Platform」です。Microsoftはその後の2010年に「Microsoft Azure」をリリースし、日本国内でもクラウドサービスの利用がより身近になった状況です。

今回はそんなMicrosoft Azureのシステム監視サービス「Azure Monitor」について詳しく紹介します。すでにMicrosoft Azureを利用していて、これから「Azure Monitor」を使って本格的な監視をしようと思っている、オンプレミスからMicrosoft Azureへのシステム切り替えを検討しているというエンジニアの方、インフラエンジニア・クラウドエンジニアを目指しているという方はぜひご覧ください。

Microsoft Azureの概要

Microsoftが提供するクラウドサービスであるため他のMicrosoft製品との相性が特に良いですが、その他OSとの連携も可能です。また、クラウドだけではなくオンプレミスサーバーとの連携も可能となっています。なお、公式サイト上では、Azureの導入事例として三菱重工やヤマト運輸、東京メトロ等の大企業における導入事例が紹介されていることから、利便性があり指示されているサービスであることがわかります。

サービスの形態としてはIaaS(Infrastructure as a Service/略称はイアースと発音される)、PaaS(Platform as a Service/略称はパースと発音される)が該当し、Webシステムの開発はもちろん、Azureでは近年進化の著しいIoTや人工知能、データ分析、ブロックチェーンといった分野のシステム開発が行えるプラットフォームの提供がされています。

これまでクラウドサービスに触れて来なかった方に向けて簡単に説明しますが、クラウドサービスには大きくIaaS、PaaS、SaaS(Software as a Service/略称はサースと発音される)というサービス形態があります。正式名称を見るとわかりやすいですが、IaaSはシステムのサーバーやネットワークといったインフラ環境そのものを構築できるサービスです。対するPaaSは、インフラ環境こそあらかじめ用意されているものの、OSやミドルウェアを任意に選択して開発環境の構築が可能なサービスです。なお、Azureには該当がないものの、SaaSはすでにサービスの仕様がある程度決められているソフトウェアやアプリケーションのことを表します。

Microsoft Azureの主な特徴

Azureは多くのクラウドサービスと同様に従量課金制であるため初期費用というものは発生せず、追加した機能ごとの料金や、データ使用量等によって料金が加算されていく仕組みとなっています。あらかじめパッケージとして用意されているサービスであると実際に利用しない機能があってもその分の料金を支払うこととなりますが、Azureの場合は必要な機能のみを自身で選択して追加できるためコスト削減に向いています。一方で、例えば毎月のデータ使用量等がある程度予測できていなかったり、適切な設定ができていないと、意図しない高額となる可能性もあるので注意が必要です。それでも、物理的な機器を購入する必要がない、サーバーを設置するスペースが不要、環境構築や一部の運用・保守が不要になるという点でAzureのようなクラウドサービスはコスト削減に繋がる可能性が高いと言えます。

以上は多くのクラウドサービスに共通する部分が多いですが、Azureに関しては一部サービスが12 か月間無料で利用できたり、無料アカウント作成後30日間は無料サービス以外に200ドルのクレジットが利用できたり、サービスによっては一定の制限の下、無期限で無料利用可能のものがあったりと、初めてクラウドサービスを利用する場合におすすめの特典が揃っています。なお、これら特典はこの記事を執筆している2023年2月の内容であるため、実際に申し込みされる際は、受けられるサービスの詳細を必ず公式ページ上で確認してから契約に進みましょう。

Microsoft Azureで提供されているサービス

今回メインで取り上げるのは監視サービスである「Azure Monitor」ですが、それ以外の代表的なサービスについて簡単に紹介します。ぜひAzureの利用を検討する際の参考にしてください。

一つ目はAIサービスとなる「Azure AI」です。機械学習モデルの構築やトレーニング、ボットサービスの作成ができる様々な機能が提供されています。二つ目は「DevOps(デブオプス)」です。「DevOps」の語源は「開発(Development)」と「運用(Operations)で、両者は目標を達成するまでの手段が大きく異なるため、対立が生まれやすい部分と言われています。そんな両者をうまく親和させて円滑に、効率良く開発を進められるようサポートするのがAzureのDevOps関連サービスです。「Azure Monitor」はこのサービスの一部に含まれています。

三つ目は「Azure Active Directory」です。オンプレミスでWindowsサーバーを運用したことがある方はすでにご存知かと思いますが、運用システムの安全性や各種IDの保護、ユーザーやグループの管理、シングルサインオンの実現、各端末環境の統一が可能なサービスです。なお、Azure Active Directoryはインターネット上のアカウント管理が主な用途となり、データの保護、アプリケーションとの統合機能がある点等、オンプレミスのActive Directoryとは異なる部分もあることに注意が必要です。四つ目は「Storage」です。クラウド上でのデータ共有、仮想マシンで利用するデータ保存場所の確保、バックアップ、データ移行を行うためのAzure BackupやFile Storage、Disk Storageといった機能が利用できます。

他にもWebアプリケーション等を素早く開発できる「Webサービス」や、仮想マシンの管理や拡張が可能な「コンピューティングサービス」、「セキュリティサービス」等、ユーザーの希望があれば多様なサービスの利用が可能となっているのがAzureです。

システム監視を行う意味

システム開発は実装やテストが済んで本番稼働したらプロジェクトがクローズするわけではなく、その後の運用・保守も含まれています。運用・保守は主にインフラエンジニアやSE等の職種が担当しますが、仕事の内容としては日々の監視業務や定期的なメンテナンス、障害発生時の対応等があります。特に監視は稼働したその日から必須であり、日々の監視によってシステムに起こっている異常を検知し、いち早く対処することを可能とします。しかし、監視といっても実際にエンジニアが張り付いてシフト制で警備員のように目視し続けるというようなことはなく、様々なツールをサーバー上で起動させ、異常を検知した際に携帯端末等にアラートを送るという方法が採られる現場がほとんどでしょう。

今回取り上げる「Azure Monitor」もそんな監視ツールの一つであり、サービスが正常な動作をしているか、エラーログ、異常なログが吐かれていないか、CPUやメモリ、ネットワーク帯域に高負荷が発生していないか、ハードディスク容量が不足していないか、サービスが応答できる状態にあるかといったことを常時確認できる機能が備わっています。

例えば、人気のオンラインショップや宿泊予約サービス、イベントの紹介サイト等、システムの停止が発生した場合は、ビジネスや購入における多くの機会を失ってしまう可能性があります。また、2022 FIFAワールドカップでのインターネット配信の際に騒がれたように、大量なアクセスが予測される状況下においてほとんど停止することなく配信を続けられたということで、直接の売り上げはなくとも知名度や企業名のネームバリューが上がることもあります。

以上のように、システムを停止することなく稼働し続けること、障害が発生したとしても最小限の時間で復旧できるように備えておくことは、結果として企業の利益やイメージアップに繋がるとも言えます。その備えとなるのが、監視システムにおける適切なデータの収集や設定です。一つも障害を発生させないために、たとえどんな小さな異常値であっても全て拾ってアラートを飛ばすというような設定をしてしまっては次第に誰もアラートに反応しなくなり、本当に必要なアラートを逃して障害に発展してしまうという可能性があるので、ある程度の許容範囲を設けて適切な設定やチューニングを行うことが重要です。

また、重要度にかかわらず何でもかんでもログやバックアップを収集するというようなことをしていると、ディスク容量がすぐ逼迫して拡張が必要になったり、クラウドサービスであれば従量課金制であるために使用料分の莫大なコストがかかったりということもあります。そういった面からも、適切な設定・チューニングを施したうえでの運用・保守業務は欠かせません。それでは、以上のことを踏まえAzure Monitorでできることやその特徴を見ていきましょう。

Azure Monitorはどんなサービス?

Azure Monitorでできる主なことは「Azure環境監視」「IaaS環境、オンプレミス 環境の監視」「監視結果アラート・アクション」の3つです。なお、仮想マシン環境の様々な情報を保存して監視をするためには「VM Insights」のインストールが必要となり、オンプレミス環境の場合は「LogAnalytics」のエージェントをインストールする必要があることを覚えておいてください。

「Azure環境監視」とは、Microsoft社のAzureサービス自体が正常に動作しているかをリージョンごと、サービスごとに確認するものです。障害等が発生した際にはアラート通知を受け取れるように設定することが可能な他、Azure上で行われたログイン等の操作ログを確認することもできます。

「IaaS環境、オンプレミス 環境の監視」では、前述したように監視対象に「VM Insights」や「LogAnalytics」のエージェントをインストールすることで、CPUやメモリといったリソース監視や、OS全体におけるイベントログ、アプリケーションにおけるアプリケーションログの確認が可能となります。これらはオンプレミス環境のWindowsサーバー上でリソース監視やWindowsのイベントログを確認するのと同じことです。いずれも数値の閾値や、ログのカテゴリやメッセージ内容を設定することでメール・SMSでアラート通知を行うことも可能となりますが、これが3つ目の「監視結果アラート・アクション」に該当します。なお、Azureでは通知するだけではなく、AzureFunctionやRunbookという機能を合わせて利用することで、条件に一致した際にあらかじめ指定した処理(アクション)を実施することも可能です。例えば、CPU使用率が一定の閾値を超えた際に自動的に再起動するといった設定等です。

監視データのログとメトリック

Azure Monitorを利用する際に触れずにはいられないログとメトリックという言葉ですが、Azure Monitorではアプリケーション、OS、Azureリソース、Azureサブスクリプション、Azureテナントといった各階層からこれらのデータを取得し、監視に利用します。ログやメトリックに関しては、すでに監視業務を担当したことがある方は馴染みがあるかもしれませんが、特にメトリックという言葉は聞き慣れない方もいることでしょう。ログは発生したイベントの状況を時系列でテキストとして記録したものであり、メトリックはCPU等のリソース使用状況や、トラフィックの状況といったある時点でのシステムの状態を示すデータであり、これを活用することでグラフやレポートとして可視化ができるようになります。

課金の仕組みについて

Azure Monitorを利用するに当たっては、料金がかかる仕組みを十分に理解しておく必要があります。しっかり把握していないと、コスト削減のためにクラウドサービスを利用しているにもかかわらず監視のデータ量によって莫大なコストがかかってしまう可能性があるためです。

なお、Azure Monitorではデータの取り込み、保存の両方に対して別々に課金が発生します。Log AnalyticsやApplication Insightsを利用した場合は取得したデータ量によって課金されますが、あらかじめ決められたデータ量までの料金が固定された「コミットメントレベル」というプランも用意されています。システム稼働前から大量のデータ利用がわかっている場合や、予算を出しやすくするためにはコミットメントレベルで契約するのがおすすめです。ログデータの保存においては1GBごとの課金が発生します。ただし、Log Analyticsワークスペースの場合は利用し初めから31日間、Application Insightsの場合は90日間まで無料で保存が可能です。

また、メトリックには「標準メトリック」と「カスタムメトリック」の2種類が存在しますが、標準の方は無料、カスタムの方は150MB/1ヶ月まで無料、それ以降は課金が発生します。

アラート機能の利用時にも課金が発生します。アラートで課金が発生する対象は、アラートルールの設定と、アラート通知です。アラートルールは、どのような時に通知するかというルール設定ですが、こちらはメトリック、ログ、アクティビティログといった監視対象によって課金の仕組みが異なることに注意が必要です。通知に関しては、1ヶ月の中で1,000通のメール、1,000件のプッシュ通知、100,000件のWeb hook(HTTPで通知する仕組み)まで無料で、それ以上利用した場合は通知の種類や数・件数によって課金されます。

以上がAzure Monitorの主な課金対象ですが、実際の料金については変更されることも考えられるため、Microsoft Azureの公式サイトにて都度ご確認ください。

Azure Monitorの特徴から見えてくるメリット・デメリット

最後にこれまでの内容の振り返りを含め、Azure Monitorのメリット・デメリットを紹介します。

監視ツール全般に言えることではありますが、Azure Monitorを利用することで障害に繋がりそうなリスクを事前に検知して対策を打つことができる点は、大きなメリットとなります。また、クラウド、オンプレミス両方の環境に渡って総合的にデータ収集・監視が行えるのもメリットの一つです。さらに、Microsoft製品との相性も良いため、PowerBI(BIはBusiness Intelligenceの略)というツールと連携することで可視性の高いグラフ等の作成ができ、ビジネスに生かすことが可能となります。

デメリットとしては、Azure Monitor独自の仕組みがあったり、サービスの仕様変更・名称変更が発生したりということがあるため、慣れて使いこなせるまでの学習コストがかかるという点が挙げられます。料金の仕組みを正しく理解したうえで適切な設定をしていないと思った以上のコストがかかってしまうという点もデメリットの一つと言えます。しかしこれらのデメリットは、Azure Monitorの理解を深めることで解消できるものとなります。

まとめ

Azure Monitorは今回機能が充実している一方で、使いこなすまである程度の学習や慣れが必要になる状況があります。しかし、Microsoft Azureでシステム監視を行うためには欠かせないサービスであり、便利な機能が揃っていることも事実なので、ぜひこの記事をきっかけにAzure Monitorを使いこなせるエンジニアを目指してみてはいかがでしょうか。

なお、MicrosoftにはAzureに関する認定資格が複数あり、Azure Monitorはそのうちの一部試験の出題内容にも含まれているため、Azure Monitorの理解を深める際には資格試験を活用してみるのも一つの方法と言えます。Microsoftの認定資格はAzureだけではなく非常に高範囲で多数あり複雑なため、受験をしてみたいと思った方は、Microsoftの公式ページ内にある「認定資格(learn.microsoft.com)」で詳細を確認してみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です