IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アマゾン テクノロジーズ インコーポレイテッドの特許一覧

特許7516703検出モデルのアンサンブルを使用した異常検出
<>
  • 特許-検出モデルのアンサンブルを使用した異常検出 図1
  • 特許-検出モデルのアンサンブルを使用した異常検出 図2
  • 特許-検出モデルのアンサンブルを使用した異常検出 図3
  • 特許-検出モデルのアンサンブルを使用した異常検出 図4
  • 特許-検出モデルのアンサンブルを使用した異常検出 図5
  • 特許-検出モデルのアンサンブルを使用した異常検出 図6
  • 特許-検出モデルのアンサンブルを使用した異常検出 図7
  • 特許-検出モデルのアンサンブルを使用した異常検出 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-08
(45)【発行日】2024-07-17
(54)【発明の名称】検出モデルのアンサンブルを使用した異常検出
(51)【国際特許分類】
   G06F 11/07 20060101AFI20240709BHJP
   H04L 41/142 20220101ALI20240709BHJP
   H04L 41/16 20220101ALI20240709BHJP
【FI】
G06F11/07 151
H04L41/142
H04L41/16
G06F11/07 140Z
【請求項の数】 15
(21)【出願番号】P 2023524091
(86)(22)【出願日】2021-10-20
(65)【公表番号】
(43)【公表日】2023-11-08
(86)【国際出願番号】 US2021055761
(87)【国際公開番号】W WO2022087075
(87)【国際公開日】2022-04-28
【審査請求日】2023-04-28
(31)【優先権主張番号】17/075,024
(32)【優先日】2020-10-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】506329306
【氏名又は名称】アマゾン テクノロジーズ インコーポレイテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】チャブラ、ジャスミート
(72)【発明者】
【氏名】ガスタウス、ジャン
(72)【発明者】
【氏名】ウォルター、ダグラス アレン
(72)【発明者】
【氏名】ヤヌショウスキー、ティム
(72)【発明者】
【氏名】クルカルニ、ハーシャド ヴァサント
(72)【発明者】
【氏名】ダリア、ヴィカス
(72)【発明者】
【氏名】トンギア、ラフル
(72)【発明者】
【氏名】フルンカート、ヴァレンティン
【審査官】武田 広太郎
(56)【参考文献】
【文献】特表2018-518762(JP,A)
【文献】特開2005-223847(JP,A)
【文献】特開2002-023833(JP,A)
【文献】特開2020-141353(JP,A)
【文献】米国特許出願公開第2009/0132865(US,A1)
【文献】特許第6164311(JP,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
H04L 41/142
H04L 41/16
(57)【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
異常検出サービスを使用して、1つ以上の検出器を使用して時系列データで異常を検出する要求を受信することと、
前記異常検出サービスを、
評価する時系列メトリックを決定することと、
前記要求、前記時系列データ、検出する異常のタイプ、及びドメイン知識メタデータに基づいて、前記異常検出サービスの構成を生成することであって、前記構成は、前記1つ以上の検出器のうち、1つ以上の機械学習モデルのうちの少なくとも1つの特定の機械学習モデルである少なくとも1つの特定の検出器を識別する、前記生成することと、
前記生成された構成を使用して前記異常検出サービスを構成することと、
によって構成することと、
前記構成された異常検出サービスを使用して、異常に対して前記時系列データを評価することであって、
前記時系列データを取り込むことと、
前記1つ以上の検出器のうちの前記識別された少なくとも1つの特定の検出器を使用して、潜在的に異常な挙動を観察することと、
異常インジケーションを生成することと、
によって前記評価することと、
ユーザに前記異常インジケーションを提供することと、
を含む、コンピュータ実装方法。
【請求項2】
前記時系列データが、プロバイダネットワークのメトリックサービスから取り込まれる、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記検出する異常のタイプが、閾値ベースの異常、欠落データ異常、及び変化点異常のうちの1つである、請求項1または2に記載のコンピュータ実装方法。
【請求項4】
前記観察された潜在的に異常な挙動を他の観察された潜在的に異常な挙動と集計することと、
観察された潜在的に異常な挙動の集計量が閾値を超える場合に、異常インジケーションを生成することのみを行うことと、
をさらに含む、請求項1~のいずれか一項に記載のコンピュータ実装方法。
【請求項5】
前記異常に注釈を付けて、前記異常が生成された理由に関する洞察を提供すること
をさらに含む、請求項1~のいずれか一項に記載のコンピュータ実装方法。
【請求項6】
前記異常に対するアラームを発すること
をさらに含む、請求項1~のいずれか一項に記載のコンピュータ実装方法。
【請求項7】
前記要求が、評価する時系列データのソースのインジケーション、検出された異常を配置する場所、どのユーザがフィードバックを提供することを許可されているかのインジケーション、異常をいつユーザに提示するかのインジケーション、誰が異常インジケーションまたはその存在のインジケーションを受信するかのインジケーション、評価中に使用する統計またはパーセンタイル、アラームを出すデータポイント、又は、欠落データの処理のインジケーション、のうちの1つ以上を含む、請求項1~6のいずれか一項に記載のコンピュータ実装方法。
【請求項8】
前記要求が、更に初期構成、前記検出する異常のタイプのインジケーション、メトリックを含む名前空間、又は、評価期間のインジケーションのうちの1つ以上を含む、請求項7に記載のコンピュータ実装方法。
【請求項9】
フィードバックを受信し、前記受信したフィードバックに基づいて前記異常検出サービスを再構成すること
をさらに含む、請求項1~のいずれか一項に記載のコンピュータ実装方法。
【請求項10】
前記異常インジケーションが、潜在的に異常な挙動が予想される挙動とどの程度異なっていたかを示すスコア、開始時刻及び停止時刻を含むイベント情報、及び検出された異常のタイプのうちの少なくとも1つを含む、請求項に記載のコンピュータ実装方法。
【請求項11】
コンピュータ実装方法であって、
異常検出サービスを使用して、1つ以上の検出器を使用して時系列データで異常を検出する要求を受信することと、
前記異常検出サービスを、
前記要求、前記時系列データ、及びメタデータのうちの1つ以上に少なくとも部分的に基づいて、前記異常検出サービスの構成を生成することであって、前記構成は、前記1つ以上の検出器のうちの少なくとも1つの特定の検出器を識別する、前記生成することと、
前記生成された構成を使用して前記異常検出サービスを構成することと、
によって構成することと、
前記構成された異常検出サービスを使用して、異常に対して前記時系列データを評価することであって、
前記時系列データを取り込むことと、
前記1つ以上の検出器のうちの前記識別された少なくとも1つの特定の検出器を使用して、潜在的に異常な挙動を観察することと、
異常インジケーションを生成することと、
によって前記評価することと、
ユーザに前記異常インジケーションを提供することと、
を含
前記異常インジケーションが、潜在的に異常な挙動が予想される挙動とどの程度異なっていたかを示すスコア、開始時刻及び停止時刻を含むイベント情報、及び検出された異常のタイプのうちの少なくとも1つを含む、コンピュータ実装方法。
【請求項12】
システムであって、
異常について分析される時系列データを提供する第1の1つ以上の電子デバイスと、
マルチテナントプロバイダネットワークにおいて異常検出サービスを実装するための第2の1つ以上の電子デバイスであって、前記異常検出サービスは、実行時に前記異常検出サービスに、
異常検出サービスを使用して、1つ以上の検出器を使用して時系列データで異常を検出する要求を受信させ、
前記異常検出サービスを、
評価する時系列メトリックを決定することと、
前記要求、前記時系列データ、検出する異常のタイプ、及びドメイン知識メタデータに基づいて、前記異常検出サービスの構成を生成することであって、前記構成は、前記1つ以上の検出器のうち、1つ以上の機械学習モデルのうちの少なくとも1つの特定の機械学習モデルである少なくとも1つの特定の検出器を識別する、前記生成することと、
前記生成された構成を使用して前記異常検出サービスを構成することと、
によって、構成させ、
前記構成された異常検出サービスを使用して、
前記時系列データを取り込むことと、
前記1つ以上の検出器のうちの前記識別された少なくとも1つの特定の検出器を使用して、潜在的に異常な挙動を観察することと、
異常インジケーションを生成することと、
によって、異常に対して前記時系列データを評価させ、
ユーザに前記異常インジケーションを提供させる、
命令を含む、前記第2の1つ以上の電子デバイスと、
を含む、システム。
【請求項13】
前記検出する異常のタイプが、閾値ベースの異常、欠落データ異常、及び変化点異常のうちの1つである、請求項12に記載のシステム。
【請求項14】
前記要求が、評価する時系列データのソースのインジケーション、検出された異常を配置する場所、どのユーザがフィードバックを提供することを許可されているかのインジケーション、初期構成、検出する異常のタイプのインジケーション、異常をいつユーザに提示するかのインジケーション、誰が異常インジケーションまたはその存在のインジケーションを受信するかのインジケーション、メトリックを含む名前空間、評価期間のインジケーション、評価中に使用する統計またはパーセンタイル、アラームを出すデータポイント、欠落データの処理のインジケーション、のうちの1つ以上を含む、請求項12または13に記載のシステム。
【請求項15】
システムであって、
異常について分析される時系列データを提供する第1の1つ以上の電子デバイスと、
マルチテナントプロバイダネットワークにおいて異常検出サービスを実装するための第2の1つ以上の電子デバイスであって、前記異常検出サービスは、実行時に前記異常検出サービスに、
異常検出サービスを使用して、1つ以上の検出器を使用して時系列データで異常を検出する要求を受信させ、
前記異常検出サービスを、
前記要求、前記時系列データ、及びメタデータのうちの1つ以上に少なくとも部分的に基づいて、前記異常検出サービスの構成を生成することであって、前記構成は、前記1つ以上の検出器のうちの少なくとも1つの特定の検出器を識別する、前記生成することと、
前記生成された構成を使用して前記異常検出サービスを構成することと、
によって、構成させ、
前記構成された異常検出サービスを使用して、
前記時系列データを取り込むことと、
前記1つ以上の検出器のうちの前記識別された少なくとも1つの特定の検出器を使用して、潜在的に異常な挙動を観察することと、
異常インジケーションを生成することと、
によって、異常に対して前記時系列データを評価させ、
ユーザに前記異常インジケーションを提供させ、前記異常インジケーションが、潜在的に異常な挙動が予想される挙動とどの程度異なっていたかを示すスコア、開始時刻及び停止時刻を含むイベント情報、及び検出された異常のタイプのうちの少なくとも1つを含む、
命令を含む、前記第2の1つ以上の電子デバイスと、
を含む、システム。
【発明の詳細な説明】
【背景技術】
【0001】
異常検出は、データマイニングの基本的な問題の1つである。市場の一部のシステムは、Holt-Wintersなどの予測モデルに基づいて時系列上の異常を生成する。これらのモデルの出力は、時系列の将来値の確率分布である。これらのモデルにおける異常は、時系列入力が予測と比較して低い確率である場合に生成される。
【0002】
本開示に従った様々な実施形態を、図面を参照して説明する。
【図面の簡単な説明】
【0003】
図1】異常検出サービスを含むプロバイダネットワークの実施形態を示す。
図2】いくつかの実施形態による、異常検出サービスが検出できる異常の例を示す。
図3】いくつかの実施形態による、異常検出サービスが検出できる異常の例を示す。
図4】異常検出サービスなどの異常検出サービスの実施形態を示す。
図5】いくつかの実施形態による、異常検出のための方法の動作を示すフロー図である。
図6】いくつかの実施形態による、例示的なプロバイダネットワーク環境を示す。
図7】いくつかの実施形態による、顧客にストレージサービス及びハードウェア仮想化サービスを提供する例示的なプロバイダネットワークのブロック図である。
図8】いくつかの実施形態で使用され得る例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0004】
本開示は、異常検出サービスのための方法、装置、システム、及び非一時的コンピュータ可読記憶媒体に関する。いくつかの実施形態によれば、異常検出サービスは、潜在的に異常な挙動を観察するモデルのアンサンブルを使用する。全体として、潜在的に異常な挙動は、異常として説明できる可能性がある。ドメイン知識を利用して、特定の問題(変化点の問題、閾値違反、欠落値など)に対する時系列データの潜在的な異常な挙動を観察するために使用するモデル(複数可)を選択する。
【0005】
図1は、異常検出サービスを含むプロバイダネットワークの実施形態を示す。異常検出サービス110(A)または110(B)は、モデルの選択及びモデルのトレーニング/使用にメトリックの運用ドメイン知識を組み込む。いくつかの実施形態では、異常検出サービス110(A)または110(B)は、データソース(内部データソース114及び外部データソース116など)によって提供される時系列データから説明可能な異常を生成する。いくつかの実施形態では、示されるように、異常検出サービスはメトリックサービス112の一部(異常検出サービス110(A))であり、いくつかの実施形態では、異常検出サービスはメトリックサービス112の外部(異常検出サービス110(B))にあることに留意されたい。メトリックサービス112は、次の、ログの収集及び保存、デフォルトまたはカスタムであり得るメトリック(時系列データを含む)の収集、メトリックの集計、アラームの生成、リソースの自動スケーリング、などの、非異常検出機能の1つ以上を実行することができる。
【0006】
データソース114及び116は、潜在的な異常について異常検出サービス110(A)または110(B)によって評価される時系列データを提供する。全てのリクエスタが異常ごとにアラームを必要とするわけではなく、「重要な」問題についてのみアラームを必要とするため、異常が必ずしもアラームを意味するわけではないことに留意されたい。例えば、不健全なシステムを示すものではない異常は関心のあるものかもしれないが、必ずしも対処する必要があるとは限らない。したがって、いくつかの実施形態では、捕捉された異常は、アラームを生成する異常のスーパーセットである。
【0007】
異常検出サービス110(A)または110(B)は、複数の異なる機械学習モデル(アンサンブル)または他の異常検出メカニズム(例えば、統計)を含むか、それらへのアクセスを有する。これらのモデル/アルゴリズムは、システムとアプリケーションのメトリックを分析し、通常のベースラインを決定し、ユーザの介入を最小限に抑えて異常を明らかにする。メトリックの異常検出を有効にすると、メトリックの過去のデータに対するアプリケーションの機械学習アルゴリズムまたはモデルに、メトリックの期待値のモデルを作成させることができる。このモデルは、メトリックのトレンドと、時間別、日別、及び週別のパターンの両方を評価する。
【0008】
評価するメトリック(時系列データ)に基づいて、異常検出サービス110(A)または110(B)は、最適なモデルなどを使用するように構成される。異常及びアラームのタイプは、メトリックのタイプ、アプリケーションのタイプなどの間で異なる。タイプを用いて異常に通釈を付けることにより、メトリック及び/またはユーザフィードバックに基づいて正しいタイプの異常を選択する柔軟性を得ることができる。ユーザフィードバックと独自のメトリック要件を使用して、(例えば、データセットの注釈、異常などに基づいて)使用するモデルを調整し、モデルを再トレーニングし、レポート用に様々な閾値を設定する。例えば、ユーザフィードバックは、異常の重要性または異常の洞察を調整する、メトリックの洞察を作成するために使用される異常のタイプを調整するなどの目的で使用できる。例えば、季節的な異常は特定のメトリックにとって役に立たないとユーザがフィードバックを与える場合、それらの異常は無視される。より良いフィードバックを得るために、異常のタイプを使用して、ユーザに表示される説明を生成する。例えば、異常がトレンドの変化によるものである場合、トレンドがどのように変化したかについての説明がユーザに表示され得る。
【0009】
ドメイン知識を使用してメトリックに注釈を付け、異常検出サービス110(A)または110(B)によって使用されるモデルを選択して、異常及び閾値ベースの異常に使用されるルールを作成する。ドメイン知識は、異常にいつアラームを出すかを決定するためにも使用できる。
【0010】
未知のメトリックを処理するために、異常検出サービス110(A)または110(B)は、高閾値違反のみがアラームを生成し、他の検出器がメタデータアノテーターの分析に基づいて選択されるように、保守的な状態で開始することができる。例えば、検出器構成生成器が時系列を連続及び静止として分類する場合、通常は変化点検出器と欠落値検出器が選択される。アラームは、ユーザのフィードバックに基づいて調整される。例えば、カスタムメトリックの場合、ユーザは、メトリックの下端での閾値違反はアラームの対象外であり、したがってそのようなイベントの新しいアラームは生成されないというフィードバックを提供する場合がある。
【0011】
プロバイダネットワーク100(または、「クラウド」プロバイダネットワーク)は、計算リソース(例えばサーバをプロビジョニングすることなく仮想マシン(VM)インスタンス及び/またはコンテナの実行、バッチジョブの実行、コードの実行)、データ/ストレージリソース(例えばオブジェクトストレージ、ブロックレベルストレージ、データアーカイブストレージ、データベース及びデータベーステーブルなど)、ネットワーク関連リソース(例えば計算リソース、コンテンツ配信ネットワーク(CDN)、ドメインネームサービス(DNS)のグループを含む仮想ネットワークの構成)、アプリケーションリソース(例えばデータベース、アプリケーション構築/配備サービス)、アクセスポリシーまたはロール、識別ポリシーまたはロール、マシンイメージ、ルータ、及び他のデータ処理リソースなど、様々なタイプのコンピューティング関連リソースのうちの1つ以上を利用する能力をユーザに提供する。これら及び他のコンピューティングリソースは、計算インスタンスを実行できるハードウェア仮想化サービス、データオブジェクトを格納できるストレージサービスなどのサービスとして、提供され得る。プロバイダネットワーク100のユーザ(または「顧客」)は、顧客アカウントに対応付けられた1つ以上のユーザアカウントを利用し得るが、これらの用語は、使用される文脈に応じて多少同じ意味で使われ得る。ユーザは、ウェブサイトまたはアプリケーションとして実装されたコンソールを介して、アプリケーションプログラミングインタフェース(API)コールを使用するなどして、1つ以上のインタフェースを介して、1つ以上の中間ネットワーク106(例えば、インターネット)を介してプロバイダネットワーク100と対話することができる。APIは、クライアントとサーバ間のインタフェース及び/または通信プロトコルを指し、クライアントが事前定義された形式で要求を行う場合、クライアントは特定の形式で応答を受信するか、定義されたアクションを開始する必要があるようになっている。クラウドプロバイダネットワークの状況では、APIは、顧客がクラウドプロバイダネットワークからデータを取得したり、クラウドプロバイダネットワーク内でアクションを実行したりできるようにすることで、顧客がクラウドインフラストラクチャにアクセスするためのゲートウェイを提供し、クラウドプロバイダネットワークでホストされているリソースやサービスと対話するアプリケーションの開発を可能にする。APIは、クラウドプロバイダネットワークの様々なサービスが相互にデータを交換できるようにすることもできる。インタフェース(複数可)は、顧客により直接的に提供できるサービスをサポートし、可能にする「バックエンド」サービスを含むプロバイダネットワーク100の制御プレーンの一部であるか、フロントエンドとして機能することができる。
【0012】
例えば、クラウドプロバイダネットワーク(または単に「クラウド」)は、通常、アクセス可能な仮想化されたコンピューティングリソース(コンピューティング、ストレージ及びネットワークのリソース、アプリケーション、サービスなど)の大規模なプールを指す。クラウドは、顧客のコマンドに応じてプログラムでプロビジョニング及びリリースできる構成可能なコンピューティングリソースの共有プールへの便利なオンデマンドネットワークアクセスを提供できる。これらのリソースは動的にプロビジョニング及び再構成して、変動する負荷に合わせて調整できる。したがって、クラウドコンピューティングは、公衆アクセス可能なネットワーク(インターネット、セルラー通信ネットワークなど)を介してサービスとして提供されるアプリケーションと、それらのサービスを提供するクラウドプロバイダのデータセンタ内のハードウェア及びソフトウェアの両方と見なすことができる。
【0013】
クラウドプロバイダネットワークは、複数のリージョンとして形成でき、ここで、リージョンとは、クラウドプロバイダがデータセンタをクラスタ化する地理的領域である。各リージョンは、プライベート高速ネットワーク、例えばファイバ通信接続を介して互いに接続された複数の(例えば、2つ以上の)アベイラビリティゾーン(AZ)を含む。AZ(アベイラビリティドメイン、または単に「ゾーン」とも呼ばれる)は、別のAZとは別個の電源、別個のネットワーク、及び別個の冷却を備えた1つ以上のデータセンタ施設を含む、分離された障害ドメインを提供する。データセンタとは、クラウドプロバイダネットワークのサーバを収容しそれに電力と冷却を提供する物理的な建物または筐体を指す。リージョン内のAZは、自然災害(またはその他の障害を引き起こすイベント)が影響を与えたり、同時に複数のAZをオフラインにしたりしないように、互いに十分に離れた場所に配置することが好ましい。
【0014】
顧客は、トランジットセンタ(TC)など、公衆アクセス可能なネットワーク(インターネット、セルラー通信ネットワークなど)を介して、クラウドプロバイダネットワークのAZに接続できる。TCは、顧客をクラウドプロバイダネットワークにリンクする主要なバックボーンロケーションであり、他のネットワークプロバイダ施設(インターネットサービスプロバイダ(ISP)、電気通信プロバイダなど)に配置され、(例えばVPNや直接接続を介して)AZに安全に接続され得る。各リージョンは、冗長性のために2つ以上のTCを運用できる。リージョンは、各リージョンを少なくとも1つの他のリージョンに接続するプライベートネットワークインフラストラクチャ(例えば、クラウドプロバイダによって制御されるファイバ接続)を含むグローバルネットワークに接続される。クラウドプロバイダネットワークは、エッジロケーション及びリージョンのエッジキャッシュサーバを介して、これらのリージョンの外部にあるが、これらのリージョンとネットワーク化されているポイントオブプレゼンス(または「POP」)からコンテンツを配信することができる。コンピューティングハードウェアのこの区分化及び地理的分散により、クラウドプロバイダネットワークは、高度のフォールトトレランス及び安定性を有する地球規模の低レイテンシリソースアクセスを顧客に提供することができる。
【0015】
プロバイダネットワーク100は、これら及び他のコンピューティングリソースサービスを提供するために、仮想化技術に依存することが多い。例えば、仮想化技術を使用して、計算リソース(例えばゲストオペレーティングシステム(O/S)を使用するVM(ゲストO/Sは、基礎ホストO/Sの上部で作動してもしなくてもよいハイパーバイザを使用してさらに作動する)、VM内で作動してもしなくてもよいコンテナ、基礎ハイパーバイザなしに「ベアメタル」ハードウェア上で実行され得る計算インスタンスなどの「計算インスタンス」)を制御または利用する能力がユーザに提供され得、1つまたは複数の計算リソースは、単一の電子デバイスを使用して実施することができる。したがって、ユーザは、プロバイダネットワークによってホストされるコンピューティングリソース(例えば、ハードウェア仮想化サービスによって提供される)を直接利用して、様々なコンピューティングタスクを実行することができる。加えて、または代わりに、ユーザは、コードを実行するために1つ以上の計算リソースを利用するプロバイダネットワークによって実行されるコードを送信することによって(例えば、オンデマンドコード実行サービスを介して)計算リソースを間接的に利用することができ、通常、ユーザは、関連する基礎となる計算インスタンス(複数可)を制御したり、認識したりすることはない。
【0016】
例えば、様々な実施形態において、「サーバレス」機能は、ユーザまたはプロバイダネットワーク自体などの他のエンティティによって提供され、オンデマンドで実行できるコードを含むことができる。サーバレス機能は、オンデマンドコード実行サービスによってプロバイダネットワーク100内で維持され、特定のユーザまたはアカウントに関連付けられるか、複数のユーザ/アカウントが全般にアクセス可能になる。サーバレス関数は、ユニフォームリソースロケータ(URL)、ユニフォームリソース識別子(URI)、またはサーバレス関数を呼び出すために使用できるその他の参照先に関連付けることができる。サーバレス関数は、起動または呼び出し時に、仮想マシン、コンテナなどの計算リソースによって実行され得る。いくつかの実施形態では、サーバレス機能は、アプリケーションプログラミングインタフェース(API)コールまたは特別にフォーマットされたハイパーテキストトランスポートプロトコル(HTTP)要求メッセージを介して呼び出すことができる。したがって、ユーザは、サーバレス機能を実行するための専用インフラストラクチャをユーザが維持する必要なく、オンデマンドで実行できるサーバレス機能を定義できる。代わりに、サーバレス機能は、プロバイダネットワーク100によって維持されるリソースを使用して、オンデマンドで実行することができる。いくつかの実施形態では、これらのリソースは(例えば、サーバレス機能を実行するように構成された事前初期化されたランタイム環境を有する)「準備完了」状態に維持され、サーバレス機能をほぼリアルタイムで実行できるようにすることができる。
【0017】
数字が入った円は、動作の流れの例を示している。円1では、要求側デバイス118が、異常検出サービス110(B)を構成する要求をプロバイダネットワーク10に送信する。そのような要求内容の例については後で詳述する。
【0018】
円2では、異常検出サービス110(B)の構成(異常を検出するために使用する1つ以上のMLモデルの選択などを含む)の後、データソース116は、評価される時系列データを提供する。この説明では、その時系列データはメトリックサービス112によって消費され、次いで円3で異常検出サービス110(B)に提供される。異常検出サービス110(B)は円4で時系列データを評価し、異常がある判定する。異常検出サービス110(B)は、異常のインジケーションをメトリックサービス112に送信し、メトリックサービス112は、サークル6で(要求側デバイス118などの)ユーザがそれを利用できるようにする。
【0019】
図2は、いくつかの実施形態による、異常検出サービス110(A)または(B)が検出できる異常の例を示す。特に、検出されるのは変化点である。この例では、2つの変化点が検出された。この図では、変化点がいつ発生したかを判断するために選択された異常検出モデルは、500個のデータポイントで新しい挙動を学習する。最初の「イベント」はt=1000で始まり、t=1050で検出された。特に、変化点平均の増加が検出された。第1のイベントはt=1500で終了した。第2の「イベント」はt=1900で始まり、t=2050で検出された。特に、変化点平均の減少が検出された。第2のイベントはt=2500で終了した。異常検出サービス110(A)または(B)の出力は、イベント期間(開始/停止時間)及びタイプを含む。いくつかの実施形態では、スコアも出力される。イベントは一般的に関心のあるものであり、スコアはそのイベントが期待値とどの程度異なるかであり、タイプは異常のタイプである。
【0020】
図3は、いくつかの実施形態による、異常検出サービス110(A)または(B)が検出できる異常の例を示す。特に検出されるのは、閾値ベースの異常である。この例では、「イベント」はt=24000で開始され、t=24003で検出された。イベントのタイプが閾値を超えた。
【0021】
図4は、異常検出サービス110(A)または110(B)などの異常検出サービスの実施形態を示す。この異常検出サービス110(A)または110(B)は、メトリックエクスプローラ401、検出器構成生成器405、データ取り込み器403、及び異常生成器411のうちの1つ以上から一般的に構成される。
【0022】
いくつかの実施形態では、メトリックエクスプローラ401は、(例えば、メトリックサービス112から)メトリックをスキャンして、異常検出のためにどのメトリックを追加または削除するかを決定する。こうして、メトリックエクスプローラ401は、データ取り込みのためにどのメトリックを追加/削除し使用するかを決定して、異常生成器411をどのように構成するかを決定する。いくつかの実施形態では、メトリックは特定のユーザ要求によって追加/削除されることに留意されたい。いくつかの実施形態では、メトリックエクスプローラ401はメトリックメタデータを生成する。
【0023】
データ取り込み器403は、データソースから時系列データを取り込み、異常生成器411がそれを評価する。いくつかの実施形態では、データ取り込み器403は、異常生成器411に提示する前に、時系列データをフォーマットする。データソースには、データベース、ストリーム(例えば、ビデオ、オーディオ、データ)などが含まれる。
【0024】
検出器構成生成器405は、メトリックメタデータ(既知のレイテンシメトリックなどのドメイン知識)、時系列データ(メトリック)、システム更新統計413(プロバイダネットワークにおけるデータ使用の分析などのグローバルな使用知識)、及び/またはメトリックエクスプローラ401からの情報を取り込んで、時系列データから潜在的な異常を検出するために異常生成器411のどの検出器407を使用すべきかを決定する。いくつかの実施形態では、検出器構成生成器405は、メトリックを分析し、異常生成器411によって使用されるメトリックメタデータへの属性(注釈)を決定する。注釈の例に含まれるのは、限定するものではないが、メトリックリソースタイプ(ストリーム、データベースなど)、スロットル、リクエストレート、レイテンシ、エラーレート、カスタムなどのメトリックタイプ、季節性期間(複数可)、静止などのメトリック機能、メトリック制限の閾値(Disk={Medium=70%,High=80%}、ProvisionedLimit={Medium=150,High=175}など)、及びメトリックドメインの知識(Alarm_Threshold-upper、Interest_Threshold_lower、Interest_Changepoint、Interest_missing_valuesなど)である。検出器構成生成器405は、この情報(及び利用可能な検出器に関する情報)を使用して、異常検出器411の構成を生成する。構成には、評価するメトリック、使用する検出器(複数可)、検出器を構成する方法、関心のあるドメイン知識メタデータ(例えば、閾値、集計情報)、時系列データソース、及び異常があるときを決定するために使用する1つ以上のアグリゲータ409のアグリゲータのインジケーション、のうちの1つ以上が含まれ得る。検出器構成生成器405はまた、モデルの感度を調整するためのユーザフィードバック、関心のない項目(その後、検出器を再訓練するために、またはアグリゲータに観察結果を無視するように通知するために使用することができる)などを受信することができる。
【0025】
異常生成器411は、時系列データ(場合によってはメトリックメタデータ)を入力として取り込み、構成に従って異常インジケーションをイベント(イベント開始/終了)として生成し、タイプを出力として生成する。いくつかの実施形態では、異常インジケーションはスコアを含む。異常のタイプには、変化点、閾値、欠落データなどが含まれ得るが、これらに限定されない。示されるように、異常生成器411は複数のサブシステムに分解される。検出器407は、機械学習モデル、統計ベース、及び/またはルールベースの検出器であり、時系列データを評価して潜在的な異常の観察結果を生成する。
【0026】
これらの観察結果は、異常と見なすことができるイベントが存在するのに十分な観察結果がいつ発生したかを決定する1つ以上のアグリゲータ409によって受信される。通常、モデルやメトリックごとにアグリゲータがある。アグリゲータ409は、イベント情報(開始、停止、検出)、スコア、及びタイプのうちの1つ以上を含む異常インジケーションを生成する。一般に、アグリゲータ409は、検出器と1:Nの比率である。いくつかの実施形態では、検出器407とアグリゲータ409が組み合わされている。
【0027】
加えて、いくつかの実施形態では、異常生成器411は更新機構415を含む。例えば、検出器407が異常な数のイベント(多すぎるか少なすぎる)を観察している場合、異常生成器411の構成を変更する必要があり得る。このように、更新要求が生成され、観察時間、観察のタイプなどの情報を含んで検出器構成生成器405に送信される。更新機構415は、潜在的なアップデートの必要性についてユーザに警告することができる。
【0028】
異常検出サービス110(A)または110(B)の実施形態がどのように機能し得るかを理解するのを助けるために、例示的な待ち時間のユースケースが説明される。検出器構成生成器405は、上限閾値、下限閾値、変化点、欠落値など、どのタイプのものがレイテンシに関して興味深いかについてのメトリックに関するメタデータを使用する。データ取り込み器403がメトリックの取り込みを開始すると、それが異常生成器411へ送信されて、構成された検出器によって処理される。検出器を開き、潜在的な異常を検出し、適切な場合、イベントタイプと開始/終了/検出時刻からなる観察結果が生成される。いくつかの場合では、スコアも生成される。アグリゲータはこの観察結果を受信すると、ユーザなどに提示する異常を生成するのに十分かどうかを判断する。
【0029】
図5は、いくつかの実施形態による、異常検出のための方法の動作を示すフロー図である。動作(あるいは本明細書で説明される他のプロセス、それらの変形形態及び/または組み合わせ)のうちの一部または全ては、実行可能命令で構成された1つ以上のコンピュータシステムの制御下で実行され、ハードウェアまたはそれらの組み合わせにより、1つ以上のプロセッサ上で集合的に実行されるコード(例えば実行可能命令、1つ以上のコンピュータプログラム、または1つ以上のアプリケーション)として実施される。コードは、例えば、1つ以上のプロセッサにより実行可能な命令を含むコンピュータプログラムの形態で、コンピュータ可読記憶媒体に格納される。コンピュータ可読記憶媒体は、非一時的である。いくつかの実施形態では、動作の1つ以上(または全て)は、他の図の異常検出サービス110(A)または110(B)により実行される。
【0030】
502で、異常検出サービスを使用して、1つ以上の機械学習モデルを使用して時系列データで異常を検出する要求が受信される。要求には、評価する時系列データのソースのインジケーション、検出された異常を配置する場所、どのユーザがフィードバックを提供することを許可されているかのインジケーション、初期構成(感度、異常として関心のあるものとそうでないもののインジケーション、閾値など)、検出する異常のタイプ、異常を提示する時期、異常またはその存在のインジケーションを誰が受信すべきかのインジケーション、メトリックを含む名前空間、評価期間、使用する統計またはパーセンタイル、異常インジケーションを警告及び/または提供するデータポイント、欠落データの処理のインジケーション(許容できるものとして扱う、無視する、許容できないものとして扱うなど)、などのうち1つ以上が含まれ得る。
【0031】
504で、異常検出サービスが構成される。この構成には、いくつかの異なる行為が含まれ得る。いくつかの実施形態では、506で、メトリックエクスプローラは、評価のためにどのメトリックを追加または削除するかを決定するために関与する。例えば、検出する異常のタイプのインジケーションが要求に含まれている場合、メトリックエクスプローラは、その検出に役立つ時系列データを決定することができる。同様に、既存の構成の場合、メトリックエクスプローラを使用して、(ユーザまたは異常生成器411からの)フィードバックに基づいてどのデータを評価するかを決定することができる。
【0032】
508で、要求、時系列データ、関心のあるドメイン知識メタデータ(例えば、閾値、集計情報など)、グローバル使用知識、時系列データソース、及び/または使用するアグリゲータのうち1つ以上に基づいて、どの検出器(複数可)を使用するかについての異常生成器用の構成が生成される。いくつかの実施形態では、フィードバックがこの構成生成に組み込まれることに留意されたい。510で、異常生成器は、生成された構成を使用して構成される。
【0033】
512で、時系列データは異常について評価される。514で、時系列データが取り込まれる。取り込みには、フォーマット、復号などが含まれてもよい。516で、構成された検出器(複数可)を使用して、潜在的に異常な挙動が観察される。518で、潜在的に異常な挙動は、観察された他の潜在的な異常な挙動と集計される。520で、集計された潜在的に異常な挙動がそのようなインジケーションを正当化する場合、異常インジケーションが生成される。例えば、(構成されている)設定された期間内に特定の数の変化点がある場合、閾値が設定された回数を超えた場合などである。いくつかの実施形態では、異常の数に関係なく、十分に深刻な異常(例えば、閾値を著しく超えている)が発生することに留意されたい。
【0034】
いくつかの実施形態では、522で異常インジケーションは注釈付けされる。この注釈は、異常の原因に関する洞察を提供する。
【0035】
524で異常インジケーションがユーザに提供される。これは、ダッシュボードやメッセージなどで利用できるようになるという形で提供されてもよい。ユーザがリクエスタである必要はないことに留意されたい。異常インジケーションは、イベント情報(開始/停止/検出時間)、スコア、及び異常のタイプのうちの1つ以上を含む。
【0036】
526で、いくつかの実施形態ではユーザフィードバックが受信され、組み込まれる。例えば、実際には異常ではなかった異常に関するユーザフィードバックが受信され、異常生成器411を再構成するために使用される。
【0037】
図6は、いくつかの実施形態による、例示的なプロバイダネットワーク(または「サービスプロバイダシステム」)環境を示す。プロバイダネットワーク600は、1つ以上の仮想化サービス610を介して顧客にリソース仮想化を提供し得、これにより、顧客は、1つ以上のデータセンタにおけるプロバイダネットワーク(複数可)内のデバイス上で実施される計算リソース及びストレージリソースを含むがこれらに限定されない仮想化リソースのインスタンス612を、購入、レンタル、あるいは取得することが可能となる。ローカルインターネットプロトコル(IP)アドレス616は、リソースインスタンス612に対応付けられ得、ローカルIPアドレスは、プロバイダネットワーク600上のリソースインスタンス612の内部ネットワークアドレスである。いくつかの実施形態では、プロバイダネットワーク600はまた、顧客がプロバイダ600から取得し得るパブリックIPアドレス614及び/またはパブリックIPアドレス範囲(例えばインターネットプロトコルバージョン4(IPv4)またはインターネットプロトコルバージョン6(IPv6)アドレス)を提供し得る。
【0038】
従来、プロバイダネットワーク600は、仮想化サービス610を介して、サービスプロバイダの顧客(例えば1つ以上の顧客デバイス652を含む1つ以上のクライアントネットワーク650A~650Cを運用する顧客)が、顧客にアサインされたまたは割り当てられた少なくともいくつかのパブリックIPアドレス614を、顧客にアサインされた特定のリソースインスタンス612に、動的に対応付けることを可能にし得る。プロバイダネットワーク600はまた、顧客に割り当てられた1つの仮想化コンピューティングリソースインスタンス612に以前にマッピングされたパブリックIPアドレス614を、やはり顧客に割り当てられた別の仮想化コンピューティングリソースインスタンス612に顧客が再マッピングすることを可能にし得る。顧客ネットワーク650A~650C(複数可)のオペレータといったサービスプロバイダの顧客は、サービスプロバイダにより提供される仮想化コンピューティングリソースインスタンス612及びパブリックIPアドレス614を使用して、例えば、顧客特有アプリケーションを実施し、インターネットなどの中間ネットワーク640上で顧客アプリケーションを提示し得る。次に、中間ネットワーク640上の別のネットワークエンティティ620は、顧客ネットワーク650A~650C(複数可)により公開された宛先パブリックIPアドレス614へのトラフィックを生成し得、トラフィックは、サービスプロバイダデータセンタへルーティングされ、データセンタにて、ネットワーク基板を介して、宛先パブリックIPアドレス614へ現在マッピングされている仮想化コンピューティングリソースインスタンス612のローカルIPアドレス616へルーティングされる。同様に、仮想化コンピューティングリソースインスタンス612からの応答トラフィックは、ネットワーク基板を介して中間ネットワーク640に戻って、ソースエンティティ620へルーティングされ得る。
【0039】
本明細書で使用されるローカルIPアドレスは、プロバイダネットワーク内の例えばリソースインスタンスの内部すなわち「プライベート」のネットワークアドレスを指す。ローカルIPアドレスは、インターネット技術標準化委員会(IETF)のコメント要求(RFC)1918により確保されたアドレスブロック内及び/またはIETF RFC4193により指定されたアドレス形式のアドレスブロック内に存在し得、プロバイダネットワーク内で変更可能であり得る。プロバイダネットワークの外側から生じるネットワークトラフィックは、ローカルIPアドレスへ直接ルーティングされず、代わりに、トラフィックは、リソースインスタンスのローカルIPアドレスにマッピングされたパブリックIPアドレスを使用する。プロバイダネットワークは、パブリックIPアドレスからローカルIPアドレスへのマッピング、及びその逆方向のマッピングを実行するために、ネットワークアドレス変換(NAT)または同様の機能を提供するネットワークデバイスまたはアプライアンスを含み得る。
【0040】
パブリックIPアドレスは、サービスプロバイダまたは顧客によってリソースインスタンスに割り当てられる、インターネットで変更可能なネットワークアドレスである。パブリックIPアドレスにルーティングされたトラフィックは、例えば1:1NATを介して変換され、リソースインスタンスのそれぞれローカルIPアドレスに転送される。
【0041】
一部のパブリックIPアドレスは、プロバイダネットワークインフラストラクチャによって特定のリソースインスタンスに割り当てられる場合があり、これらのパブリックIPアドレスは、標準パブリックIPアドレス、または単に標準IPアドレスと呼ばれることがある。いくつかの実施形態では、標準IPアドレスをリソースインスタンスのローカルIPアドレスにマッピングすることは、全てのリソースインスタンスタイプのデフォルトの起動構成である。
【0042】
少なくともいくつかのパブリックIPアドレスは、プロバイダネットワーク600の顧客に割り当てられ得、または顧客により取得され得、次に、顧客は、自身の割り当てられたパブリックIPアドレスを、顧客に割り当てられた特定のリソースインスタンスにアサインし得る。これらのパブリックIPアドレスは、顧客パブリックIPアドレス、または単純に顧客IPアドレスと称され得る。顧客IPアドレスは、標準IPアドレスの事例のようにプロバイダネットワーク600によりリソースインスタンスにアサインされる代わりに、例えばサービスプロバイダにより提供されるAPIを介して、顧客によりリソースインスタンスにアサインされ得る。標準IPアドレスと異なり、顧客IPアドレスは、顧客アカウントに割り当てられ、必要または所望に応じて、それぞれの顧客により他のリソースインスタンスに再マッピングすることができる。顧客IPアドレスは、特定のリソースインスタンスではなく、顧客のアカウントに対応付けられ、顧客がそのIPアドレスを解除することを選択するまで、顧客はそのIPアドレスを制御する。従来の静的IPアドレスと異なり、顧客IPアドレスは、顧客が、顧客のパブリックIPアドレスを、顧客のアカウントに対応付けられた任意のリソースインスタンスに再マッピングすることにより、リソースインスタンスまたはアベイラビリティゾーンの障害をマスクすることを可能にする。顧客IPアドレスは、例えば、顧客が、顧客IPアドレスを代替リソースインスタンスに再マッピングすることにより、顧客のリソースインスタンスまたはソフトウェアの問題に対処することを可能にする。
【0043】
図7は、いくつかの実施形態による、顧客にストレージサービス及びハードウェア仮想化サービスを提供する例示的なプロバイダネットワークのブロック図である。ハードウェア仮想化サービス720は、複数の計算リソース724(例えばVMなどの計算インスタンス725)を顧客に提供する。計算リソース724は、例えば、プロバイダネットワーク700の顧客に(例えば顧客ネットワーク750を実施する顧客に)レンタルまたはリースされ得る。各計算リソース724には、1つ以上のローカルIPアドレスが提供され得る。プロバイダネットワーク700は、計算リソース724のローカルIPアドレスからパブリックインターネット宛先へ、及びパブリックインターネット発信元から計算リソース724のローカルIPアドレスへ、パケットをルーティングするように構成され得る。
【0044】
プロバイダネットワーク700は、例えばローカルネットワーク756を介して中間ネットワーク740に接続された顧客ネットワーク750に、中間ネットワーク740及びプロバイダネットワーク700に接続されたハードウェア仮想化サービス720を介して、仮想コンピューティングシステム792を実施する能力を提供し得る。いくつかの実施形態では、ハードウェア仮想化サービス720は、1つ以上のAPI702、例えばウェブサービスインタフェースを提供し得、これを介して顧客ネットワーク750は、例えばコンソール794(例えばウェブベースアプリケーション、スタンドアロンアプリケーション、モバイルアプリケーションなど)により、ハードウェア仮想化サービス720が提供する機能にアクセスし得る。いくつかの実施形態では、顧客ネットワーク750の各仮想コンピューティングシステム792は、プロバイダネットワーク700において、顧客ネットワーク750にリース、レンタル、あるいは提供される計算リソース724に対応し得る。
【0045】
仮想コンピューティングシステム792及び/または別の顧客デバイス790(例えばコンソール794を介する)のインスタンスから、顧客は、例えば1つ以上のAPI702を介して、ストレージサービス710の機能にアクセスして、プロバイダネットワーク700が提供する仮想データストア716(例えば、フォルダまたは「バケット」、仮想化ボリューム、データベースなど)のストレージリソース718A~718Nに対しデータアクセス及びデータ格納を行い得る。いくつかの実施形態では、仮想化データストアゲートウェイ(図示せず)が顧客ネットワーク750に設けられ得、仮想化データストアゲートウェイは、少なくともあるデータ、例えば頻繁にアクセスされるデータまたは重要データをローカルにキャッシュし得、データの1次ストア(仮想化データストア716)が維持されるように、1つ以上の通信チャンネルを介してストレージサービス710と通信して、ローカルキャッシュから新たなデータまたは変更されたデータをアップロードし得る。いくつかの実施形態では、ユーザは、仮想コンピューティングシステム792を介して及び/または別の顧客デバイス790上で、仮想データストア716のボリュームを、ストレージ仮想化サービスとして機能するストレージサービス710を介して、マウントしアクセスすることができ、これらのボリュームは、ローカル(仮想化)ストレージ798としてユーザに映り得る。
【0046】
図7に図示されないが、仮想化サービス(複数可)はまた、API702(複数可)を介してプロバイダネットワーク700内のリソースインスタンスからもアクセスされ得る。例えば、顧客、アプライアンスサービスプロバイダ、または他のエンティティは、API702を介してプロバイダネットワーク700上の個別の仮想ネットワーク内の仮想化サービスにアクセスして、仮想ネットワーク内または別の仮想ネットワーク内の1つ以上のリソースインスタンスの割り当てを要求し得る。
【0047】
例示的システム
いくつかの実施形態では、本明細書で説明される技法の一部または全てを実施するシステムは、図8に示されるコンピュータシステム800などの、1つ以上のコンピュータアクセス可能媒体を含む、または1つ以上のコンピュータアクセス可能媒体にアクセスするように構成された汎用コンピュータシステムを含むことができる。図示の実施形態では、コンピュータシステム800は、入出力(I/O)インタフェース830を介してシステムメモリ820に結合された1つ以上のプロセッサ810を含む。コンピュータシステム800はさらに、I/Oインタフェース830に結合されたネットワークインタフェース840を含む。図8は、コンピュータシステム800を単一のコンピューティングデバイスとして示すが、様々な実施形態では、コンピュータシステム800は、1つのコンピューティングデバイス、または単一のコンピュータシステム800として共働するように構成された任意の数のコンピューティングデバイスを含み得る。
【0048】
様々な実施形態では、コンピュータシステム800は、1つのプロセッサ810を含むユニプロセッサシステム、またはいくつか(例えば2つ、4つ、8つ、もしくは別の好適な個数)のプロセッサ810を含むマルチプロセッサシステムであり得る。プロセッサ810は、命令を実行可能な任意の好適なプロセッサであり得る。例えば、様々な実施形態では、プロセッサ810は、様々な命令セットアーキテクチャ(ISA)、例えばx86、ARM、PowerPC、SPARC、もしくはMIPS ISA、または任意の他の好適なISAなどのうちのいずれかを実施する汎用プロセッサまたは組み込みプロセッサであり得る。マルチプロセッサシステムでは、プロセッサ810の各々は、同じISAを一般的に実装し得るが、必ずしも実装しなくてもよい。
【0049】
システムメモリ820は、プロセッサ810(複数可)によりアクセス可能な命令及びデータを格納し得る。様々な実施形態では、システムメモリ820は、ランダムアクセスメモリ(RAM)、スタティックRAM(SRAM)、同期式ダイナミックRAM(SDRAM)、不揮発性/フラッシュ型メモリ、または任意の他の種類のメモリなど、任意の好適なメモリ技術を使用して実施され得る。示される実施形態では、前述の方法、技術、及びデータなどの1つ以上の所望の機能を実施するプログラム命令及びデータは、システムメモリ820内に異常検出サービスコード825(例えば、異常検出サービス110を全体として、または部分的に実施するために実行可能)及びデータ826として格納されることが示される。
【0050】
一実施形態では、I/Oインタフェース830は、プロセッサ810と、システムメモリ820と、ネットワークインタフェース840または他の周辺インタフェースを含むデバイス内の任意の周辺デバイスとの間のI/Oトラフィックを調整するように構成され得る。いくつかの実施形態では、I/Oインタフェース830は、ある構成要素(例えば、システムメモリ820)からのデータ信号を、別の構成要素(例えば、プロセッサ810)による使用に適したフォーマットに変換するために、任意の必要なプロトコル、タイミング、または他のデータ変換を実行し得る。いくつかの実施形態では、I/Oインタフェース830は、例えば周辺構成要素相互接続(PCI)バス規格または汎用シリアルバス(USB)規格の変形など、様々なタイプの周辺バスを介して取り付けられるデバイスのサポートを含み得る。いくつかの実施形態では、I/Oインタフェース830の機能は、例えばノースブリッジ及びサウスブリッジなどの2つ以上の別個の構成要素に分割されてもよい。また、いくつかの実施形態では、システムメモリ820へのインタフェースなどのI/Oインタフェース830の機能の一部または全ては、プロセッサ810に直接組み込まれてもよい。
【0051】
ネットワークインタフェース840は、コンピュータシステム800と、例えば図1に示される他のコンピュータシステムまたはデバイスなどのネットワーク850(複数可)に接続された他のデバイス860との間で、データを交換可能なように構成され得る。様々な実施形態では、ネットワークインタフェース840は、例えば、イーサネット(登録商標)ネットワークのタイプなどの任意の適切な有線または無線の一般データネットワークを介した通信をサポートし得る。さらに、ネットワークインタフェース840は、アナログ音声ネットワークまたはデジタルファイバ通信ネットワークなどの電気通信/電話ネットワークを介した、あるいはストレージエリアネットワーク(SAN)、例えばファイバチャネルSANを介した、あるいは任意の他の好適なタイプのネットワーク及び/またはプロトコルを介した通信をサポートし得る。
【0052】
いくつかの実施形態では、コンピュータシステム800は、I/Oインタフェース830(例えば周辺構成要素相互接続エクスプレス(PCI-E)規格のあるバージョン、またはQuickPath相互接続(QPI)もしくはUltraPath相互接続(UPI)などの別の相互接続を実施するバス)を使用して接続された1つ以上のオフロードカード870Aもしくは870B(1つ以上のプロセッサ875を含み、場合によっては1つ以上のネットワークインタフェース840を含む)を含む。例えば、いくつかの実施形態では、コンピュータシステム800は、計算インスタンスなどの計算リソースをホストするホスト電子デバイス(例えばハードウェア仮想化サービスの一部として作動する)として機能し得、1つ以上のオフロードカード870Aまたは870Bは、ホスト電子デバイス上で実行される計算インスタンスを管理し得る仮想化マネージャを実行する。一例として、いくつかの実施形態では、オフロードカード870Aまたは870B(複数可)は、計算インスタンスの一時停止及び/または一時停止解除、計算インスタンスの起動及び/または終了、メモリ転送/コピー動作の実行など、計算インスタンス管理動作を実行し得る。これらの管理動作は、いくつかの実施形態では、コンピュータシステム800の他のプロセッサ810A~810Nが実行するハイパーバイザと協働して(例えばハイパーバイザからの要求に応じて)、オフロードカード870Aまたは870B(複数可)により実行され得る。しかしながら、いくつかの実施形態では、オフロードカード870Aまたは870B(複数可)により実施される仮想化マネージャは、他のエンティティからの(例えば計算インスタンス自体からの)要求に対応し得、任意の別個のハイパーバイザと協働し得ない(または任意の別個のハイパーバイザにサービス提供し得ない)。
【0053】
いくつかの実施形態では、システムメモリ820は、前述されたプログラム命令及びデータを格納するように構成されたコンピュータアクセス可能媒体の一実施形態であり得る。しかしながら、他の実施形態では、プログラム命令及び/またはデータは、異なるタイプのコンピュータアクセス可能な媒体において、受信、送信、または記憶されてもよい。一般に、コンピュータアクセス可能媒体には、例えばI/Oインタフェース830を介してコンピュータシステム800に接続されたディスクまたはDVD/CDといった磁気媒体または光学媒体などの非一時的記憶媒体またはメモリ媒体が含まれ得る。非一時的コンピュータアクセス可能記憶媒体には、RAM(例えばSDRAM、ダブルデータレート(DDR)SDRAM、SRAMなど)、読み出し専用メモリ(ROM)など、コンピュータシステム800のいくつかの実施形態にシステムメモリ820または別のタイプのメモリとして含まれ得る任意の揮発性または不揮発性媒体も含まれ得る。さらに、コンピュータアクセス可能な媒体は、ネットワークインタフェース840を介して実装され得るような、ネットワーク及び/または無線リンクなどの通信媒体を介して伝送される伝送媒体または電気信号、電磁信号、もしくはデジタル信号などの信号を含み得る。
【0054】
本明細書で検討または提案されている様々な実施形態は、多様な動作環境で実装することができ、動作環境は、いくつかの場合、任意の数のアプリケーションを操作するために使用できる1つ以上のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含み得る。ユーザまたはクライアントデバイスは、標準オペレーティングシステムを稼働させるデスクトップもしくはラップトップコンピュータ、ならびに、携帯ソフトウェアを稼働させかつ多数のネットワーキング及びメッセージプロトコルをサポートすることができる、セルラー、無線、及び携帯型デバイスなどの、多数の汎用パーソナルコンピュータのうちのいずれかを含み得る。このようなシステムは、開発及びデータベース管理などの目的のために、様々な市販のオペレーティングシステム及び他の既知のアプリケーションのうちのいずれかを起動するいくつかのワークステーションも含み得る。これらのデバイスは、ダミー端末、シンクライアント、ゲーミングシステム、及び/またはネットワークを介して通信できる他のデバイスなど、他の電子デバイスも含むことができる。
【0055】
ほとんどの実施形態は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ファイル転送プロトコル(FTP)、ユニバーサルプラグアンドプレイ(UPnP)、ネットワークファイルシステム(NFS)、共通インターネットファイルシステム(CIFS)、Extensible Messaging and Presence Protocol(XMPP)、AppleTalkなど、広く利用可能な様々なプロトコルのいずれかを使用して通信をサポートするために、当業者によく知られている少なくとも1つのネットワークを利用する。ネットワーク(複数可)には、例えば、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、仮想プライベートネットワーク(VPN)、インターネット、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、ワイヤレスネットワーク、及びそれらの任意の組み合わせが含まれ得る。
【0056】
ウェブサーバを利用する実施形態では、ウェブサーバは、HTTPサーバ、ファイル転送プロトコル(FTP)サーバ、共通ゲートウェイインタフェース(CGI)サーバ、データサーバ、Java(登録商標)サーバ、業務アプリケーションサーバなどを含む様々なサーバまたは中間層アプリケーションのいずれかを実行することができる。サーバ(複数可)は、Java(登録商標)、C、C#、またはC++などの任意のプログラム言語、または、Perl、Python、PHP、もしくはTCLなどのスクリプト言語、ならびにそれらの組み合わせで書かれた、1つ以上のスクリプトまたはプログラムとして実装され得る、1つ以上のウェブアプリケーションを実行することなどによって、ユーザデバイスからの要求に応答して、プログラムまたはスクリプトを実行することもまたでき得る。サーバ(複数可)はまた、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、IBM(登録商標)などから市販されているものを含むがこれらに限定されないデータベースサーバを含んでもよい。データベースサーバはリレーショナルまたは非リレーショナルであってもよく(例:「NoSQL」)、分散型または非分散型などであってもよい。
【0057】
本明細書に開示される環境は、上述の通り、様々なデータストアならびに他のメモリ及び記憶媒体を含み得る。これらは、1つ以上のコンピュータに対してローカルな(及び/またはコンピュータの中に常駐する)、またはネットワーク全体でコンピュータのいずれかもしくは全てからリモートな記憶媒体など、様々な場所に常駐する場合がある。実施形態の特定の組では、情報は、当業者によく知られたストレージエリアネットワーク(「SAN」)内に存在し得る。同様に、コンピュータ、サーバ、または他のネットワークデバイスに属する機能を行うための任意の必要なファイルは、適宜、ローカルに及び/または遠隔に記憶され得る。システムがコンピュータ化されたデバイスを含む場合、それぞれのかかるデバイスは、バスを介して電気的に連結され得るハードウェア要素を含み得、要素は、例えば、少なくとも1つの中央処理ユニット(CPU)、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、及び少なくとも1つの出力デバイス(例えば、ディスプレイデバイス、プリンタ、またはスピーカ)を含む。このようなシステムはまた、ディスクドライブ、光学記憶デバイス、ならびに、ランダムアクセスメモリ(RAM)または読み出し専用メモリ(ROM)、ならびに取り外し可能記憶デバイス、メモリカード、フラッシュカードなどのソリッドステート記憶デバイスなど、1つ以上の記憶デバイスを含み得る。
【0058】
また、このようなデバイスは、上述のようにコンピュータ可読記憶媒体読取装置、通信装置(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信装置など)、及び作業メモリを含み得る。コンピュータ可読記憶媒体リーダは、コンピュータ可読情報を一時的に、及び/またはより恒久的に含み、記憶し、送信しかつ取り出すための、リモートストレージデバイス、ローカルストレージデバイス、固定ストレージデバイス及び/または取り外し可能なストレージデバイスならびに記憶媒体を表すコンピュータ可読記憶媒体と、接続することができ、またはそれを受容するように構成できる。また、システム及び多様なデバイスは、通常、オペレーティングシステム、及びクライアントアプリケーションまたはウェブブラウザなどのアプリケーションプログラムを含む、少なくとも1つのワーキングメモリデバイス内に位置するいくつかのソフトウェアアプリケーション、モジュール、サービス、または他の要素を含む。代替の実施形態が、上述のものからの多数の変形を有し得ることを理解されたい。例えば、また、カスタマイズされたハードウェアも使用する場合があり、及び/または特定の要素がハードウェア、ソフトウェア(アプレットなどのポータブルソフトウェアを含む)、もしくはその両方で実装される場合がある。さらに、ネットワーク入力/出力デバイスなどの、他のコンピューティングデバイスへの接続が用いられ得る。
【0059】
コードまたはコードの一部を包含するための記憶媒体及びコンピュータ可読媒体は、RAM、ROM、電気的消去可能プログラマブル読み出し専用メモリ(「EEPROM」)、フラッシュメモリもしくは他のメモリ技術、コンパクトディスク読み出し専用メモリ(「CD-ROM」)、デジタルバーサタイルディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または所望の情報を記憶するために使用することができ、かつシステムデバイスによってアクセスできる任意の他の媒体を含む、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報の記憶及び/または送信のために任意の方法または技術で実装される揮発性及び不揮発性の媒体、取り外し可能及び取り外し不可能な媒体などであるが、これに限定されるものではない記憶媒体及び通信媒体を含む当該分野において既知の、または使用される任意の適切な媒体を含むことがある。本明細書に提供される本開示及び教示に基づいて、当業者であれば、様々な実施形態を実装する他の様式及び/または方法を理解する。
【0060】
上記の説明では、様々な実施形態が説明された。説明目的で、実施形態の完全な理解を提供するために、具体的な構成及び詳細が明らかにされた。しかしながら、実施形態は具体的な詳細を伴わずに実施され得ることは、当業者には明らかであろう。さらに、説明される実施形態を不明瞭にしないために、周知の特徴は省略または簡略化され得る。
【0061】
本明細書では、括弧で囲まれたテキスト及び破線(例えば大きい破線、小さい破線、鎖線、及び点)で囲まれたブロックを使用して、いくつかの実施形態に付加的特徴を追加する任意の動作が説明される。しかしながら、このような表記は、これらが唯一の選択肢または任意の動作であること、及び/または実線で囲まれたブロックは、特定の実施形態では任意ではないことを意味すると、理解されるべきではない。
【0062】
接尾辞文字を有する参照番号を使用して、様々な実施形態で言及されるエンティティの1つ以上のインスタンスが存在し得ること、複数のインスタンスが存在する場合、それぞれが同一である必要はないが、代わりにいくつかの一般的な特性を共有し得る、または同じように作動し得ることが示され得る。さらに、使用される特定の接尾辞は、特に反対の指示がない限り、特定の数のエンティティが存在することを意味するものではない。したがって、同じまたは異なる接尾辞文字を使用する2つのエンティティは、様々な実施形態において同じ数のインスタンスを有しても有さなくてもよい。
【0063】
「一実施形態」、「実施形態」、「例示的な実施形態」などへの言及は、説明される実施形態が特定の特徴、構造、または特性を含み得ることを示すが、あらゆる実施形態が必ずしも特定の特徴、構造、または特性を含むわけではあり得ない。さらに、このような句は、必ずしも同じ実施形態を指すわけではない。さらに、特定の特徴、構造、または特性が実施形態に関連して説明される場合、他の実施形態と関連してこのような特徴、構造、または特性を備えることは、明確に記載されているか否かに関わらず、当業者の知識の範囲内であると考えられる。
【0064】
さらに、前述の様々な実施形態では、特に断りのない限り、「A、B、またはCのうちの少なくとも1つ」という句などの選言的表現は、A、B、またはCのいずれか、あるいはこれらの任意の組み合わせ(例えばA、B、及び/またはC)を意味すると理解されることが意図される。よって、選言的表現は、所与の実施形態に少なくとも1つのA、少なくとも1つのB、または少なくとも1つのCがそれぞれ存在する必要があることを意味する意図はなく、またそのように理解されるべきではない。
【0065】
特に明記しない限り、「a」または「an」などの冠詞は、概して、1つ以上の記載された項目を含むと解釈すべきである。したがって、「~するように構成されたデバイス」などの語句は、1つ以上の記述されたデバイスを含むことを意図する。そのような1つ以上の記述されたデバイスは、記載された記述を実行するように集合的に構成することもできる。例えば、「記述A、B及びCを実行するように構成されるプロセッサ」は、記述B及びCを実行するように構成される第2のプロセッサと連動して作動している記述Aを実行するように構成される第1のプロセッサを含むことができる。
【0066】
開示される技術の少なくともいくつかの実施例は、以下の条項を考慮して説明され得る。
1.コンピュータ実装方法であって、
異常検出サービスを使用して、1つ以上の機械学習モデルを使用して時系列データで異常を検出する要求を受信することと、
前記異常検出サービスを、
評価する時系列メトリックを決定することと、
前記要求、前記時系列データ、検出する異常のタイプ、及びドメイン知識メタデータのうちの1つ以上に基づいて、前記異常検出サービスの構成を生成することであって、前記構成は、前記1つ以上の機械学習モデルのうちの少なくとも1つの特定の機械学習モデルを識別する、前記生成することと、
前記生成された構成を使用して前記異常検出サービスを構成することと、
によって構成することと、
前記構成された異常検出サービスを使用して、異常に対して前記時系列データを評価することであって、
前記時系列データを取り込むことと、
前記1つ以上の機械学習モデルのうちの前記識別された少なくとも1つの特定の機械学習モデルを使用して、潜在的に異常な挙動を観察することと、
前記観察された潜在的に異常な挙動を他の観察された潜在的に異常な挙動と集計することと、
観察された潜在的に異常な挙動の集計量が閾値を超える場合に、異常インジケーションを生成することと、
によって前記評価することと、
ユーザに前記異常を提供することと、
を含む、前記コンピュータ実装方法。
【0067】
2.前記検出する異常のタイプが、閾値ベースの異常、欠落データ異常、及び変化点異常のうちの1つである、条項1に記載のコンピュータ実装方法。
【0068】
3.前記時系列データが、プロバイダネットワークのメトリックサービスから取り込まれる、条項1~2のいずれかに記載のコンピュータ実装方法。
【0069】
4.コンピュータ実装方法であって、
異常検出サービスを使用して、1つ以上の検出器を使用して時系列データで異常を検出する要求を受信することと、
前記異常検出サービスを、
前記要求、前記時系列データ、及びメタデータのうちの1つ以上に少なくとも部分的に基づいて、前記異常検出サービスの構成を生成することであって、前記構成は、前記1つ以上の検出器のうちの少なくとも1つの特定の検出器を識別する、前記生成することと、
前記生成された構成を使用して前記異常検出サービスを構成することと、
によって構成することと、
前記構成された異常検出サービスを使用して、異常に対して前記時系列データを評価することであって、
前記時系列データを取り込むことと、
前記1つ以上の検出器のうちの前記識別された少なくとも1つの特定の検出器を使用して、潜在的に異常な挙動を観察することと、
異常インジケーションを生成することと、
によって前記評価することと、
ユーザに前記異常インジケーションを提供することと、
を含む、前記コンピュータ実装方法。
【0070】
5.前記時系列データが、プロバイダネットワークのメトリックサービスから取り込まれる、条項4に記載のコンピュータ実装方法。
【0071】
6.前記検出する異常のタイプが、閾値ベースの異常、欠落データ異常、及び変化点異常のうちの1つである、条項4~5のいずれかに記載のコンピュータ実装方法。
【0072】
7.前記1つ以上の検出器のうちの前記識別された少なくとも1つの特定の検出器が、機械学習モデル、ルールベース、または統計ベースのうちの1つである、条項4~6のいずれかに記載のコンピュータ実装方法。
【0073】
8.前記観察された潜在的に異常な挙動を他の観察された潜在的に異常な挙動と集計することと、
観察された潜在的に異常な挙動の集計量が閾値を超える場合に、異常インジケーションを生成することのみを行うことと、
を含む、条項4~7のいずれかに記載のコンピュータ実装方法。
【0074】
9.前記異常に注釈を付けて、前記異常が生成された理由に関する洞察を提供すること
をさらに含む、条項4~8のいずれかに記載のコンピュータ実装方法。
【0075】
10.前記異常に対するアラームを発すること
をさらに含む、条項4~9のいずれかに記載のコンピュータ実装方法。
【0076】
11.前記要求が、評価する時系列データのソースのインジケーション、検出された異常を配置する場所、どのユーザがフィードバックを提供することを許可されているかのインジケーション、初期構成、検出する異常のタイプのインジケーション、異常をいつユーザに提示するかのインジケーション、誰が異常インジケーションまたはその存在のインジケーションを受信するかのインジケーション、メトリックを含む名前空間、評価期間のインジケーション、評価中に使用する統計またはパーセンタイル、アラームを出すデータポイント、欠落データの処理のインジケーション、のうちの1つ以上を含む、条項4~10のいずれかに記載のコンピュータ実装方法。
【0077】
12.前記異常検出サービスを、
評価する時系列メトリックを決定することと、
前記要求、前記時系列データ、検出する異常のタイプ、及びドメイン知識メタデータのうちの1つ以上に基づいて、前記異常検出サービスの構成を生成することであって、前記構成は、前記1つ以上の検出器のうちの少なくとも1つの特定の検出器を識別する、前記生成することと、
前記生成された構成を使用して前記異常検出サービスを構成することと、
によって構成すること
をさらに含む、条項4~11のいずれかに記載のコンピュータ実装方法。
【0078】
13.フィードバックを受信し、前記受信したフィードバックに基づいて前記異常検出サービスを再構成すること
をさらに含む、条項4~12のいずれかに記載のコンピュータ実装方法。
【0079】
14.前記異常インジケーションが、潜在的に異常な挙動が予想される挙動とどの程度異なっていたかを示すスコア、開始時刻及び停止時刻を含むイベント情報、及び検出された異常のタイプのうちの少なくとも1つを含む、条項13に記載のコンピュータ実装方法。
【0080】
15.システムであって、
異常について分析される時系列データを提供する第1の1つ以上の電子デバイスと、
マルチテナントプロバイダネットワークにおいて異常検出サービスを実装するための第2の1つ以上の電子デバイスであって、前記異常検出サービスは、実行時に前記異常検出サービスに、
異常検出サービスを使用して、1つ以上の検出器を使用して時系列データで異常を検出する要求を受信させ、
前記異常検出サービスを、
前記要求、前記時系列データ、及びメタデータのうちの1つ以上に少なくとも部分的に基づいて、前記異常検出サービスの構成を生成することであって、前記構成は、前記1つ以上の検出器のうちの少なくとも1つの特定の検出器を識別する、前記生成することと、
前記生成された構成を使用して前記異常検出サービスを構成することと、
によって、構成させ、
前記構成された異常検出サービスを使用して、
前記時系列データを取り込むことと、
前記1つ以上の検出器のうちの前記識別された少なくとも1つの特定の検出器を使用して、潜在的に異常な挙動を観察することと、
異常インジケーションを生成することと、
によって、異常に対して前記時系列データを評価させ、
ユーザに前記異常インジケーションを提供させる、
命令を含む、前記第2の1つ以上の電子デバイスと、
を含む、前記システム。
【0081】
16.前記時系列データが、プロバイダネットワークのメトリックサービスから取り込まれる、条項15に記載のシステム。
【0082】
17.前記検出する異常のタイプが、閾値ベースの異常、欠落データ異常、及び変化点異常のうちの1つである、条項15~16のいずれかに記載のシステム。
【0083】
18.前記1つ以上の検出器のうちの前記識別された少なくとも1つの特定の検出器が、機械学習モデル、ルールベース、または統計ベースのうちの1つである、条項15~17のいずれかに記載のシステム。
【0084】
19.前記異常検出サービスがさらに、前記異常に対するアラームを発する、条項15~18のいずれかに記載のシステム。
【0085】
20.前記要求が、評価する時系列データのソースのインジケーション、検出された異常を配置する場所、どのユーザがフィードバックを提供することを許可されているかのインジケーション、初期構成、検出する異常のタイプのインジケーション、異常をいつユーザに提示するかのインジケーション、誰が異常インジケーションまたはその存在のインジケーションを受信するかのインジケーション、メトリックを含む名前空間、評価期間のインジケーション、評価中に使用する統計またはパーセンタイル、アラームを出すデータポイント、欠落データの処理のインジケーション、のうちの1つ以上を含む、条項15~19のいずれかに記載のシステム。
【0086】
したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考えられるべきである。しかしながら、特許請求の範囲に記載される本開示のより広範の趣旨及び範囲から逸脱することなく、様々な修正形態及び変更が本明細書に加えられ得ることは明らかである。
図1
図2
図3
図4
図5
図6
図7
図8