Azureにおけるパフォーマンスの可視化とその役割
<1.概要>
<1.監視ツール>
クラウド上で稼働している仮想マシンや、アプリケーション、ネットワークの運用において、正常かつ効率的に稼働をしているかの監視を常に行う必要性があります。それはAzureも例外ではありません。
Azureでは「Azure Monitor」と呼ばれる監視ツールが稼働の監視を行っています。
「Azure Monitor」とは、Azure上で構築したクラウドとオンプレミス利用に関する統計情報を収集して障害発生を防ぎます。また、適切なスケーリングを行い、システムの安定性の確保、ネットワークの状況監視して問題点の発見を行うと同時にパフォーマンスの改善をも行っています。
<2.構成と役割>
<1.Azure Monitorの構成>
Azure Monitorは以下2つの形態で収集したデータを用いた機能を有しています。
・IaaS系 | <データリソース> |
・仮想マシンのメモリやディスク容量など | |
・オペレーションシステム |
・PaaS系 | <データリソース> |
・アプリケーション | |
・サブスクリプション | |
・テナント(複数ユーザーに置ける共有状態)など |
<2.各形態のデータ検出>
- 1.IaaS系
- 2.PaaS系
「Azure Monitor for VMs」を利用してインフラストラクチャーデータの検出を行います。
「Azure Application Insights」と「Azure Monitor for Containers」を利用してアプリケーションのデータを検出します。
<3.運用の対応>
運用時の対応には「Log Analytics」を利用します。
「Log Analytics」とは、運用時のトラブルシューティングや正常状態を診断、分析を行います。また、アプリケーションの運用には機械学習アルゴリズムで自動作成される「スマートグループのアラート」、「自動化アクション」によるサポートによって運用負荷を軽減します。
<4.全体的機能>
機能 | 機能詳細 | 解説 |
・Insight(洞察) | ・仮想マシン(VM)の監視による洞察 | ・様々なプロセスやリソースおよび、外部プロセスに対しての相互接続された遺残関係などの各OSが設定された仮想マシンのパフォーマンスと正常性の分析が行われます。 |
・アプリケーション、コンテナーの監視による洞察 | ・「Application Insights」はクラウドとオンプレミスのどちらか ホストされていても、webアプリケーションの可用性、パフォーマンス等を監視します。一方でコンテナ―向けは「Azure Kubernetes service」でコンテナーワークロードのパフォーマンスを監視します。API経由でメモリやプロセッサメトリックを収集することで可視化します。 | |
・監視結果によるソリューション支援 | ・特定のアプリケーションか、サービスに関する洞察提供するロジックを1つにまとめます。 |
機能 | 機能詳細 | 解説 |
・Visualize(可視化) | ・ダッシュボードによる可視化 | ・ダッシュボードを利用することによりメトリックとログを含む種類のデータを組み合わせてportal内のウィンドウに表示して、可視化します。 |
・カスタムビューによる可視化 | ・ビューは、ログデータを視覚的に表現します。ビューそれぞれには単一のタイルが含まれているため、ドリルダウンすることで重要なデータを集約したリストの表示やグラフによる視覚的表現で表示できます。 | |
・Power Blよる可視化 | ・さまざまなデータソースを対話操作で視覚化するビジネス分析サービスで、組織内外部のユーザーとデータを効率的に共有できます。 | |
・ブックによる可視化 | ・レポートのニーズに合わせて様々にスタイルの可視化がサポートされています。 |
機能 | 機能詳細 | 解説 |
・Analyze(分析) | ・メトリックの分析 | ・定期的に収集される特定の辞典のシステム状況の事です。使用することで、シンプルなロジックで迅速にアラートの生成が行えます。 |
・ログの分析 | ・メトリックのデータは数値として表示します。一方でログはデータの詳細説明のテキストを追加して、他のデータと合わせて活用できます。 |
機能 | 機能詳細 | 解説 |
・Respond(対応) | ・アラートの発行 | ・Azureの分析プラットフォームほユーザーにアラート発信の基盤として使用ができます。 |
・スケーリング等の自動化 | ・適せな量のリソースを実行してアプリケーションにかかる負荷の処理やリソース追加による負荷の増加に対応してアイドル状態のリソースを削除して経費の節約に繋がります。 |
機能 | 機能詳細 | 解説 |
・Integrate(統合) | ・Log Apps | ・さまざまなシステム、サービスと統合されたワークフローほ使用して、タスクやビジネスプロセスの自動化ができるサービスです。 |
・APIへのエクスポート | ・メトリックとログの読み書き、生成されたアラートのアクセスに複数のAPIで利用ができ、構成や取得も可能です。 |
<3.視覚的な洞察機能>
<1.3つの重要機能>
「Monitor」によって収集したデータを可視化し、KPI(重要業績評価指標)に統合したパフォーマンスを発揮しているかを視覚的に洞察します。以下はその中でも重要ような物になります。
- 1.Azure Application Insights
- 2.Azure Monitor for Containers
- 3.Azure Monitor for VMs
webアプリケーションのパフォーマンス管理機能で、主に使用状況のモニタリングを行っており、障害に対して高い可用性の維持とパフォーマンスを最大限発揮します。
特長はオンプレミス、クラウド、ハイブリッドクラウド等にアプリケーションがホストされていても場所を問わないことや、.NET、JAVA EE等のプラットフォームで機能することです。
異常を検知する機能は、インストルメンテーションパッケージをwebアプリケーションにインストールしておくことでテレメトリデータを収集します。また、バックグラウンドのコンポーネントやwebページ中のJavaScriptの監視も可能です。
収集したデータはシンプルかつスマート検出と手動アラートのほかに、アプリケーションマップ、メトリックエエクスプローラー等によるライブメトリックスストリーム等のグラフィカルな表示方法があります。それらをダッシュボードで複数のデータと組み合わせてチーム内で共有することが可能です。
コンテナー化によるアプリケーションのデプロイと管理を行う「Azure Kubernetes Server(AKS)」管理機能です。
特長はオープンソースによるコンテナー化によるデプロイやスケーリングの運用時の自動化のためのツールであります。しかし、開発チームと運用チームを連携して、継続的なインテーグレーションとデプロイを行うことで、エンタープライズの開発レベルを迅速化させます。
パフォーマンスの把握には、「Kubernetes 」のコントローラー、ノード、コンテナーからメトリックならびにログを収集して行います。収集は、コンテナー化したLinux向けの「Log Analyticsエージェント」を使用することで自動的に集めます。
IaaS系の監視ツールとして仮想マシンやネットワークの滋養隊を監視する機能です。
特長はAzure上の各種OSの仮想マシンのパフォーマンスだけではなく、外部のオンプレミスや別クラウドの監視サポートも行っています。
また、アプリケーションのパフォーマンスと可用性の予測が可能であり、障害の早期発見やパフォーマンスを最大限発揮させるためにボトルネックの検証やネットワークの問題をサービス全体で把握します。
問題発生時はメインの仮想マシン以外のオンプレミスや他に利用しているクラウドと関連しているかの確認をします。
<4.まとめ>
「パフォーマンス」の低下は作業効率を下げるだけでなく、顧客満足度の損失を招くきっかけになりかねません。低下させないためにも常に監視して正常値での稼働が検出できるように問題解決に対応しておくことが大事です。
Azure Monitorを活用することで監視や問題解決の自動化によって柔軟なスケーリングが実現し、運用する上での負荷軽減等のメリットがあります。