Amazon Web Services ブログ

NTTドコモのモバイルネットワークにおけるサービス障害検知の迅速化(第二弾)

1. はじめに

本稿では、株式会社 NTT ドコモにおいて、モバイルネットワークにおける障害検知の迅速化に向けた可視化システムを導入された事例をご紹介します。第一弾では、取り組みの背景とアーキテクチャ概要についてご紹介しました。第二弾では、技術観点において AWS Lambda や Amazon Managed Grafana がどのように使われ、構築されたか、その技術的な Tips と一緒にご紹介します。

2. 可視化システムのアーキテクチャおよび実装方法

図 1.  アーキテクチャ概要

  1. データが Amazon S3 にアップロードされたことをトリガーとして AWS Lambda が起動します。
  2. AWS Lambda によりファイルの解凍、データの抽出、集計など必要な ETL 処理が行われ、Amazon Timestream に可視化に必要なデータを格納します。
  3. Amazon Managed Grafana のダッシュボード から Amazon Timestream に対してクエリが発行され、取得したデータのメトリクスの可視化がされます。
  4. Amazon Managed Grafana のダッシュボードは、1 分ごとに自動更新されほぼリアルタイムでトラフィックの変動が確認できます。

AWS Lambda の実装

AWS Lambda では、大きくわけて2つの処理を行います。

1つ目は、Amazon S3 にアップロードされたトラフィックデータの ETL 処理です。アップロードされた CSV ファイルは、装置ごとに数千行のトラフィックデータを保持しています。そこから、時刻と装置の ID と可視化に必要なトラフィックデータを抽出します。

2つ目は、Amazon Timestream への書き込み処理です。

共通の属性を持つレコードのバッチ書き込みによりパフォーマンスとコスト最適化を行っています。

  • Amazon Timestream の書き込みコストは、書き込まれたデータ量に対して課金され、そのデータサイズは最も近い KiB に丸められるため、書き込み回数や書き込みデータ量を小さくすることでコスト最適化が可能です。AWS Lambda から Amazon Timestream への書き込み処理では、1 レコードずつ書き込むのではなく 100 レコード以内の単位でのバッチ書き込むことで書き込みパフォーマンスの最適化を行っています。さらに、属性が共通のものがある場合、共通値は書き込みごとに common_attributes (共通属性)として指定することで書き込みコストを削減しています。

Amazon Managed Grafana の実装

図2. Amazon Managed Grafana による可視化画面

オペレータ向けの可視化システムとして、Amazon Managed Grafana のダッシュボード上に複数のパネルを表示しています。

それぞれのパネルは地域ごとに、Amazon Timestream のメジャー値である ①「Attach試行数」の合計値 と ②「Attach成功数」の合計値と ③  ②を①で割った Attach 成功率 として、時系列グラフで表示しています。Attach とは、モバイルネットワークのある装置における接続セッションの確立のことであり、その成功率がパフォーマンス監視として重要な指標になります。それらメジャー値は 1 分周期で生成されているため、1 分周期でダッシュボードの自動更新を Amazon Managed Grafana のダッシュボードの機能により実現しています。これによって、1 分周期で各パネルで定義されたクエリが Amazon Timestream 向けに発行されます。オペレータがよりリアルタイムに監視を行うために、10 秒以内ですべてのパネルのデータポイントの表示がされる必要がありパフォーマンスを向上させることが重要なポイントでした。

他のパネルのクエリ結果の流用によりパフォーマンスの向上とコスト効率化を実現しています。

  • ダッシュボード内にある他の 1 つのパネルのクエリ結果を使用することができます。パネル間でクエリ結果を共有することで、データソースに対して実行されるクエリの数とクエリデータ量を削減することができ、ダッシュボードのパフォーマンスの向上とコストの最適化を実現しています。

クエリの WHERE 句に時刻範囲を指定することで必要な時間のみを表示することでパフォーマンスの向上とコスト効率化を実現しています。

  • ダッシュボード上でユーザーの指定する時間範囲によって、取得するデータの期間を変更できるようにし、指定した期間のみのデータを取得するようにしています。以下はクエリ文のサンプルです。
SELECT 
   time ,
   measure_name 
   ,SUM("Attach試行数") AS " Attach試行数" 
   ,SUM("Attach成功数") AS " Attach成功数" 
   ,ROUND((CAST(SUM("Attach成功数") AS double ))/ SUM("Attach試行数"),3) as " Attach成功率" 
   FROM $__database.$__table 
   WHERE time between from_milliseconds($__from) AND from_milliseconds($__to) 
   GROUP BY time,measure_name 
   ORDER BY time,measure_name

3. 終わりに

本稿では、NTTドコモにおけるモバイルネットワークの障害検知の迅速化のために導入された可視化システムにおいて、主に AWS Lambda と Amazon Managed Grafana の実装例をご紹介しました。これにより可視化システムの高パフォーマンスを実現し、より迅速にサービス障害に気付くことが可能となりました。今後もより大規模なデータの可視化のためにパフォーマンス観点およびコスト観点での効率化を引き続き行っていく予定です。

 

著者

株式会社NTTドコモ
ネットワーク本部 サービスマネジメント部 オペレーションシステムDX担当 
今井 識

株式会社NTTドコモにて、モバイルネットワークの遠隔監視・措置業務向け可視化システムの企画・開発・運用を一貫して行うチームのマネジメントと技術課題解決のリードを担当しています。



アマゾン ウェブ サービス ジャパン合同会社
宮崎 友貴

ソリューションアーキテクトとして通信業界のお客様の AWS 活用 を支援しています。

 

アマゾン ウェブ サービス ジャパン合同会社
高野 翔史

こソリューションアーキテクトとして製造業界のお客様の AWS 活用 を支援しています。