ハイブリッドクラウド環境は、パブリッククラウドとプライベートクラウドの両方の長所を兼ね備えています。
セキュリティと広範な機能、サービスの多様性、耐久力を組み合わせることで、企業は、高いデータ制御能力と迅速かつコスト効率の高い運用能力を有することができます。とはいえ、クラウドが提供するダイナミックで多様なアプリケーション環境を複雑にしているのは、各コンポーネントが、それぞれ独自の依存関係を重ねているからです。
監視ツールが各コンポーネントの監視に最適化されていなければ、拡張されたクラウド環境の管理は断片的かつ煩雑さが残り、運用担当者の負担は増すばかりです。
本稿「ハイブリッドクラウド環境構築 運用編」では、以下に、ハイブリッドクラウド環境の運用に関わる項目を取り上げます。
- クラウド運用に課題となる複雑さの管理、依存関係、支出の最適化と可視化
- クラウド運用時に考慮すべき監視機能とその考察
- クラウドはビジネス変革の旅を加速するデジタルイノベーションを成熟させる
クラウド運用に課題となる複雑さの管理、依存関係、支出の最適化と可視化
ハイブリッドクラウドの人気の高まりとともに、複雑さの管理、独自の依存関係や、支出の最適化と可視化が課題となっています。管理・監視における今日の主な関心事の一つは、オンプレミスのインフラとプライベートクラウドおよびパブリッククラウドに展開されたソフトウェアおよびハードウェアの可視化を実現することです。では、効率的なハイブリッドクラウドの監視とはどのようなものでしょうか。
ワークロードを可視化する監視ツール、利用中のクラウドサービスにとって非常に重要な機能を提供しますが、Azureには、Unified Monitoring、Azure Application Insights、Azureアラート、Network Watcher、AKSクラスターモニタリングなど、Azureには、問題を短時間かつプロアクティブに特定するAzure標準搭載のモニタリング機能があります。
出典:Microsoft社 HP 「Azure Monitor の概要」より抜粋 https://docs.microsoft.com/en-us/azure/azure-monitor/
クラウド運用時に考慮すべき監視機能とその考察
Azure Monitoringは、Azure環境からテレメトリデータを収集、分析します。またAzureサービスの可用性を維持し、アプリケーションのパフォーマンスを向上させます。アラート通知とその分析、外部システムから得られるデータに基づいて動作することで、問題を短時間でプロアクティブに特定します。Azureのネイティブ機能なので、インフラストラクチャ監視としてまず利用しておきたいところです。
Azure Monitoring
メトリック、ログ、およびアラートは監視の主要な機能ですが、メトリック、ログ、アラートを1つの統合したソリューションとして機能させています。
メトリクス
メトリクスは、利用されているほとんどのAzureサービスから自動的に収集されます。これらのメトリクスはほぼリアルタイムで利用可能で、多次元のカスタムチャートを作成して視覚化することができます。
ログ
Azure Monitorは、監視、管理、監査、セキュリティ、およびAzureの他のすべてのログタイプからログを収集する中心地点です。Kustoクエリを実行して、診断、根本原因の分析、統計、視覚化も可能です。
アラート
Azure Monitorのアラートは、クリティカルな状況をプロアクティブに通知し、是正措置を取ることができます。ログ(分析ベースまたはメトリクスベース)、Ping、Azure ADアラートを、マルチリソースおよび複数の時系列ベースのルールで設定し、通知用のアクショングループを設定することができます。
仮想マシンの監視
Azure Monitor for Virtual Machines(VM)は、LinuxおよびWindows VMのパフォーマンスとデータを監視し、カスタマイズ可能なアラートしきい値を使用してVMの正常性と可用性を管理します。VM Monitorを通して、仮想マシンの性能やマップが正しい状態で維持されているかを確認することができます。マップでは、VMのバックエンドの依存関係が適切に接続されているかを確認し、VMのクライアントが影響を受けていないかを通知します。また、ゲストOSの問題のトラブルシューティングも提供し、VMリソースの使用率に関する情報を収集します。
パフォーマンス診断
パフォーマンス診断は、仮想マシンのパフォーマンス問題をトラブルシューティングするためのツールの一つです。例えば、VM内のパフォーマンスの低下、高いディスク使用率、高いCPUの使用率を特定するために利用できます。管理対象となるAzureプロセスでガベージコレクションに起因する問題が検出された場合でも、まずはパフォーマンス診断ツールから関連する情報を収集します。
Application Insightsを使って分析する
Application Insightsを使用して、稼働中のアプリケーションを監視できます。パフォーマンスの異常、依存関係、要求率と応答時間、パフォーマンスカウンター、例外処理等を検出し、ユーザーアクティビティに関連する問題診断・分析ツールが含まれています。
出典:Microsoft社 HP 「Azure Monitor の概要」より抜粋 https://docs.microsoft.com/en-us/azure/azure-monitor/
アプリの状態と可用性を監視する
サービス正常性(Service Health)
サービス正常性(Service Health) は、Azureのメンテナンスやインシデントに関わる情報を通知し、利用者がダウンタイムを軽減するために適切な措置を取れるようにします。Azureリソースやリージョンの定期的なメンテナンスは、何らかの影響を与える可能性もあるため、事前に通知されます。それにより、利用者はそれに応じた行動をとることができます。
以下のサービス正常性(Service Health)の3つのイベントは、いくつかの予期せぬエラーと計画的なダウンタイムを含んでいます。
- サービスの問題
サービスの停止など、Azureリソースで発生している現在の問題についてのレポートが含まれています。 - 計画メンテナンス
Azureでスケジュールされたサービスのレポートを含む定期的なメンテナンス情報です。 - 正常性の勧告
サービスの中断を回避するために対応すべき問題を報告します。
Azureの状態(Azure Status)
Azure状態ページは、Azureサービスとリージョンの状態に関する情報を提供します。これは、ユーザーがパフォーマンスと効率を向上させるために適切なリージョンを選択できるように、様々なリージョンでのリソースの可用性の理解を促します。ステータスページは、Azure Service Healthと連動しており、サービス問題のトラブルシューティングや計画的なメンテナンスに効果を発揮します。
Azure AppServiceとサービスの可用性
AppService やその他のサービスの可用性を確認する方法があります。Ping テストアラートは、異なるリージョンにおける AppService の可用性を特定し、検証します。正確な可用性可否の情報を受け取ることで、それに基づいた適切な行動をとることができます。
出典:Microsoft社 HP 「Azure Monitor の概要」より抜粋 https://docs.microsoft.com/en-us/azure/azure-monitor/
Azureアラートの特徴
- メトリクスアラート
時間をかけて収集・保存された一連の測定値やカウントです。 - アクティビティログアラート
アラートで指定された条件に一致する管理イベントが発生するなど、状態の変化が発生するとすぐにトリガー通知されます。 - スケジュールされたクエリアラート
Kustoクエリに関する言語ベースのログ分析アラートです。 - pingテストアラート
これらのアラートは、AppServiceの地理的な可用性を確認するのに役立ちます。 - 予算アラート
これらは、コストまたは使用量に関連しています。コストが定義されたしきい値単位を超えると通知されます。 - サインインアラート
ユーザーのサインインアクティビティと、管理されているアプリケーションの詳細情報です。 - 監査ログアラート
ログアラートは、ユーザーおよびグループ管理アプリケーション、およびディレクトリアクティビティに関する情報に基づいて生成されます。 - ヘルスアラート
サービスの停止やダウンタイムに基づくAzure Service Healthのアラートです。
ネットワークパフォーマンスモニター(Network Performance Monitor)
ExpressRouteのネットワークパフォーマンスモニター
ネットワークパフォーマンスモニター(Network Performance Monitor)は、Azureインフラストラクチャとオンプレミスの場所の間の接続を監視するクラウドベースのネットワーク監視ソリューションです。NPM for ExpressRouteは、ネットワークの問題の特定と解決に役立ちます。
高い帯域幅の使用率
利用者が高い帯域幅使用率(使用状況)にある場合は、平均遅延とパケット損失とともに、ExpressRoute回線のAzureプライベートピアリングの帯域幅使用率を表示する機能があります。
Express Routeの接続損失またはダウンタイムポイントのボトルネックの特定
ネットワークパフォーマンスモニターは、接続の損失、エンドツーエンドのダウンタイムを識別します。トポロジダッシュボードを使用して、Azure VNETからオンプレミスに問題を生成しているホップを検出するのに役立ちます。
サブネットネットワーク内のネットワーク遅延
ネットワークパフォーマンスモニターを使用すると、ネットワーク遅延、ピーク損失が発生する可能性についても特定します。ネットワーク遅延、ノードリンク間のピーク損失は、サブネットワークリンク単位で方向を指定し、観察したい日付、期間を選択し、表示することができます。例えば、ある特定期間のAzure VNETからオンプレミスへの通信、またはVNETからAzureへの通信といった形です。
Express Route接続性問題
回線接続に問題が生じるのは非常に稀ですが、回線接続問題の診断情報を提供します。2つのエンドポイントは、すべてのホップを含むExpressRouteを介して接続されていません。この問題を解決するために適切なアクションを実行するのに役立ちます。
ネットワークモニター(Network Watcher)
接続のトラブルシューティング時に、VM、完全修飾ドメイン名(FQDN)、URI(Uniform Resource Identifier)、またはIPv4アドレス間の接続を確認するのに役立ちます。Network Watcherのコネクションモニターは、通信を監視し、VMとエンドポイント間の到達可能性、遅延、およびネットワークトポロジの変更について伝達します。
パケットキャプチャ
Network Watcherのパケットキャプチャでは、リソースグループ下の仮想マシンとの間のトラフィックをキャプチャすることができます。パケットキャプチャ出力ファイル(.cap)は、ストレージアカウント、ファイル、またはその両方に保存することができ、ネットワークキャプチャツールでより詳細な分析を行うことができます。
検証IPフロー検証
Network WatcherのIPフローは、仮想マシンとの間でパケットが許可されているか拒否されているかを検証します。仮想マシンのIPフローを検証するためには、いくつかのパラメーターを設定する必要があります。通常、ネットワークセキュリティグループが管理するパケット(IPフロー)を拒否したルール名で処理結果が通知されます。
コンテナ用Azureモニター
Container Insights
Container Insightsは、以下にデプロイされたすべてのコンテナワークロードのパフォーマンスを監視するように設計された機能です。
- Azure Kubernetes Service(AKS)
- Self-managed AzureのKubernetesクラスターが使用してホストされているAKSエンジン
- Azure Container Instance(ACI)
- Azure Red Hat Open ShiftおよびAzure Arc対応のKubernetes
- Self-managed Kubernetesクラスターは、オンプレミスと上にホストされているAzureのスタック
Azure Monitor for containersは、メトリクスAPIを使用して、Azure Kubernetesサービスで利用可能なノード、コンテナ、コントローラからメトリクスとプロセッサ情報を収集し、パフォーマンスを可視化します。Linux用のLog analytic agentは、Azure Kubernetesで利用可能なクラスター、メトリクス、ログを収集します。
kube-apiserver、kube-auditなどの診断設定を有効にすることで、ログ分析のワークスペース、ストレージ、イベントハブのいずれかに送信することができます。
ログクエリと診断設定
コンテナの監視により、コンテナのホストとコンテナから、パフォーマンスメトリック、インベントリデータ、ヘルス状態情報などのさまざまなデータセットを収集できます。システムは3分ごとに情報またはデータを収集し、Azure Monitorサービスの下のLog Analytics Workspace(LAW)に転送します。後で、クエリを使用した詳細な分析に使用できます。Kustoクエリを使用してAzure Monitorでデータをクエリできます。
AzureポータルからKubernetesリソースにアクセスする(プレビュー)
プレビュー機能には、Azure Kubernetes Service(AKS)クラスター内のKubernetesリソースに簡単にアクセスするためのKubernetesリソースビューアー(プレビュー)が含まれています。これは、kubectlコマンドラインツールとAzureポータル間のコンテキスト切り替えを減らし、Kubernetesリソースの表示と編集のエクスペリエンスを合理化するのに役立ちます。
さらに、以下の3つのセクションに分類されます。
- 名前空間は、クラスターの名前空間を表示します。名前空間リソースをフィルタリングして表示できます。
- ワークロードには、クラスターにデプロイされたデーモン、デプロイメント、レプリカに関する情報が表示されます。
- サービスと入力は、すべてのクラスターのサービスと入力リソースを示します。
Deployment Insightsを監視する
Deployment Insights はkubernetesリソースビューを示します。ここで、ユーザーは個々のCPU、メモリ、およびデプロイメントの使用状況のステータスを視覚化できます。
クラウドはビジネス変革の旅を加速しデジタルイノベーションを成熟させる
以上、運用に有益なAzure に標準搭載されている監視機能について紹介しました。リソース、プラットフォーム、およびActive Directoryの内部の詳細を取得するための組み込みの強力な機能であり、サードパーティのツールとの統合に煩わされることなく、CPU使用率、アプリの可用性、アクティビティ、パフォーマンスなどの詳細を確認することができます。
Azureの機能は量、質とも日々、充実しており、SentinelなどのAzureインターフェイスから他のクラウドプロバイダーを監視するためのツールを導入しています。
クラウドに移行されたインフラ、アプリケーションは、高い可視性をもたらし、監視と管理の課題を高い確率で解決します。アジリティ、スピード、継続的な価値に関するビジネス要件を満たすために、クラウドは真に新しいビジネスモデルを作成するビジネスイノベーションプラットフォームとなるでしょう。
戦略を立て、より迅速なサービスリリースと浸透を可能にするためのリソースの動員と環境移行、クラウドネイティブなセキュリティサービス、オートスケーリング機能を使ったDevSecOpsを実現する管理と保護、運用計画を確立することで、企業はビジネス変革の旅を加速し、デジタルイノベーションを成熟させることができます。