Slide 1

Slide 1 text

Amazon Lookout for Metrics触ってみた NRIネットコム株式会社 上野 史瑛 2021年5月22日

Slide 2

Slide 2 text

1 自己紹介 名前: 上野 史瑛(うえの ふみあき) 所属: NRIネットコム株式会社 経歴: ・各種Webシステムのインフラ構築・運用 - サーバ、ネットワーク管理や構築がメイン - オンプレとAWSの両方を経験 ・AWS最適化プロジェクトに参画 ・AWS技術検証や構成レビュー ・CCoE支援 ・2020/2021 APN Ambassadors ・2020/2021 APN AWS Top Engineers ・2020/2021 APN ALL AWS Certifications Engineer @fu3ak1

Slide 3

Slide 3 text

2 認定対策本も書いてます データベースももうすぐ!

Slide 4

Slide 4 text

3 会社紹介 WEBシステムを中心にソリューションを提供しています

Slide 5

Slide 5 text

4 会社紹介 AWSは特に力をいれて頑張っています ・資格取得数100 ・モバイルコンピテンシー取得 AWSでご相談があればご連絡ください →「NRIネットコム 問い合わせ」で検索

Slide 6

Slide 6 text

5 AWSエンジニア募集してます!

Slide 7

Slide 7 text

6 Amazon Lookout for Metricsを見ていく前に・・ 新サービスを触るときの私のやりかた

Slide 8

Slide 8 text

7 新サービスを触って理解するときの流れ 1. サービスの概要や目的をざっくり理解する 2. マネジメントコンソールから画面の手順に従って触ってみる 進めなくなったor不明点が出たら公式ドキュメント読む 3. ひととおり流し終えたら、詳細機能を見るなど深掘り 4. (状況に応じて)ブログや登壇などでアウトプット

Slide 9

Slide 9 text

8 Amazon Lookout for Metricsを触ってみる

Slide 10

Slide 10 text

9 1. サービスの概要や目的をざっくり理解する

Slide 11

Slide 11 text

10 サービス概要ページを読む メトリクスの異常検出 メトリクス=S3、Redshift、RDSのデータ、サードパーティSaaS

Slide 12

Slide 12 text

11 特徴ページもおすすめ 概要ページよりもすこし詳細な情報が書いてある

Slide 13

Slide 13 text

12 2. マネジメントコンソールから画面の手順に従って触ってみる

Slide 14

Slide 14 text

13 今回作成する構成 AWS Cloud Amazon AppFlow Amazon Lookout for Metrics ※構成は作ってから書いてます ※はてなブログのGoogle Analytics設定方法は割愛 Google Analytics

Slide 15

Slide 15 text

14 Google Analyticsについて Googleが提供するアクセス解析ツール はてなブログから簡単に設定してアクセス解析ができる ⇒Lookout for Metricsに連携して異常検出(たくさんアクセスが来たら検知)してみる 自分のブログで設定

Slide 16

Slide 16 text

15 マネジメントコンソールから画面の手順に従って触ってみる 流れの概要を理解 開始

Slide 17

Slide 17 text

16 Detectorの作成 • 必須項目だけ入力してCreate • IntervalsはGoogle Analyticsの仕様上 1dayを選択

Slide 18

Slide 18 text

17 Datasourceの選択 • Google AnalyticsはAppFlowが必要 ⇒App Flowへ移動

Slide 19

Slide 19 text

18 App Flowの前に・・Googlle Analytics側のAPI設定が必要 公式ドキュメントを参考に設定してく • API有効 • OAuth設定 • Client ID(キー)作成 https://docs.aws.amazon.com/appflow/latest/userguide/google-analytics.html

Slide 20

Slide 20 text

19 App Flowでフロー作成 KMSキーを指定しないと(AWSマネージドキーだと)エラーになる 設定しないとエラーになる

Slide 21

Slide 21 text

20 Google Analyticsに接続して、オブジェクトを選択

Slide 22

Slide 22 text

21 送信先にLookout for Metricsを選択 間隔など、細かい設定は変更できず 00:00にしないと エラーになる

Slide 23

Slide 23 text

22 取得フィールドのマッピング アクセス状況に関わる3項目をピックアップ ・pageviews(アクセス数) ・ページタイトル ・dateHour(日付と時刻)

Slide 24

Slide 24 text

23 フロー作成!

Slide 25

Slide 25 text

24 フローをアクティブ化

Slide 26

Slide 26 text

25 App Flow完成 AWS Cloud Amazon AppFlow Amazon Lookout for Metrics ここができた Google Analytics

Slide 27

Slide 27 text

26 Lookout for Metricsに戻ってくる

Slide 28

Slide 28 text

27 作成したAppFlowをDatasourceとして選択 作成したAppFlowのflowを選択 IAM RoleはCreate a Roleを 選択し、flow名を入力

Slide 29

Slide 29 text

28 異常検知対象とするデータを選択する

Slide 30

Slide 30 text

Copyright© 2019 NRI Netcom, Ltd. All Rights Reserved. 29 ここでトラブル

Slide 31

Slide 31 text

30 異常検知対象とするデータを選択する 選択肢が出てこない ⇒サポート問い合わせ

Slide 32

Slide 32 text

Copyright© 2019 NRI Netcom, Ltd. All Rights Reserved. 31

Slide 33

Slide 33 text

Copyright© 2019 NRI Netcom, Ltd. All Rights Reserved. 32

Slide 34

Slide 34 text

33 アーキテクチャ変更 AWS Cloud Amazon AppFlow Amazon Lookout for Metrics Amazon S3 AWS Lambda Amazon S3 追加 S3にオブジェクトが格納されたら、 Lookout for Metrics用にデータを変換して格納 Google Analytics

Slide 35

Slide 35 text

34 Lookout for MetricsのDatasourceをS3に リアルタイム(AppFlow)の前に・・ 過去分データのみで異常検出ができる Backtestをやってみる

Slide 36

Slide 36 text

35 Google Analytics Backtest(手動アップロード)の構成イメージ AWS Cloud Amazon Lookout for Metrics Amazon S3 ダウンロード アップロード csv csv

Slide 37

Slide 37 text

36 過去データ(CSV)はGoogle Analyticsから直接ダウンロード

Slide 38

Slide 38 text

37 手動アップロードしたCSVファイルの場所を指定

Slide 39

Slide 39 text

38 計測対象にアクセス数、TimeStampに時刻を設定 Dimeisions(分類)は設定せず。 1時間単位(date)の、アクセス数(visits) を対象に異常検知

Slide 40

Slide 40 text

39 Activateしてしばらく待機

Slide 41

Slide 41 text

40 完了したのでanomaliesチェック

Slide 42

Slide 42 text

41 閾値を0(デフォルト70)にして異常値チェック いくつか異常値あり

Slide 43

Slide 43 text

42 異常値をクリックするとグラフが見える 異常値 ※3/30に記事UP無し

Slide 44

Slide 44 text

43 Backtest(過去分)ができたので、AppFlow経由のリアルタイムも試す AWS Cloud Amazon AppFlow Amazon Lookout for Metrics Amazon S3 AWS Lambda Amazon S3 S3にオブジェクトが格納されたら、 Lookout for Metrics用にデータを変換して格納 ※Lambdaの詳細は割愛 Google Analytics

Slide 45

Slide 45 text

44 AppFlowの送信先をLookout for MetricsからS3に変更 取得処理は毎日0:15

Slide 46

Slide 46 text

45 途中経過 AWS Cloud Amazon AppFlow Amazon Lookout for Metrics Amazon S3 AWS Lambda Amazon S3 ここが完成 Google Analytics

Slide 47

Slide 47 text

46 途中経過 AWS Cloud Amazon AppFlow Amazon Lookout for Metrics Amazon S3 AWS Lambda Amazon S3 ここは詳細割愛 Pythonで実装 Google Analytics

Slide 48

Slide 48 text

47 Lookout for Metricsへ、 リアルタイムデータを処理するためにContinuousを選択

Slide 49

Slide 49 text

48 変換後データ格納先のS3詳細設定 1オブジェクトのパスを入力 パスパターン入力 Google Analytics(無料版) の仕様で1日間隔 格納後1時間後に分析開始 精度を高めるため 過去データも指定

Slide 50

Slide 50 text

49 途中経過 AWS Cloud Amazon AppFlow Amazon Lookout for Metrics Amazon S3 AWS Lambda Amazon S3 ここまで設定完了 Google Analytics

Slide 51

Slide 51 text

50 Dataset作成後はBacktestと作業内容は同様 Backtestは1回きりだったが、Continuousは指定間隔で継続実行される

Slide 52

Slide 52 text

51 処理の流れおさらい AWS Cloud Amazon AppFlow Amazon Lookout for Metrics Amazon S3 AWS Lambda Amazon S3 日次(0:15)でS3に取り込むように 取り込まれたらオブジェクトトリガーで Lambdaを起動しMetrics用に変換 日次(1:00)で データ取り込み Google Analytics

Slide 53

Slide 53 text

52 3.ひととおり流し終えたら、詳細機能を見るなど深掘り (+見直し)

Slide 54

Slide 54 text

53 当初予定していた構成は、AWS CLIで解決した AWS Cloud Amazon AppFlow Amazon Lookout for Metrics サポートより回答があり、AppFlowの登録をマネジメントコンソールではなく AWS CLIにすることで解決した aws appflow create-flowで登録 Google Analytics

Slide 55

Slide 55 text

54 アラートも設定して飛ばしてみた アラートの追加を行い、メール通知 JSONで飛んでくる

Slide 56

Slide 56 text

55 4.(状況に応じて)ブログや登壇などでアウトプット

Slide 57

Slide 57 text

56 アウトプットのすすめ ブログや社内共有、登壇などなんでもOK 自分の知識整理にもなるのでおススメです

Slide 58

Slide 58 text

57 まとめ

Slide 59

Slide 59 text

58 構築した構成 AWS Cloud Amazon Lookout for Metrics Amazon S3 ダウンロード アップロード csv csv AWS Cloud Amazon AppFlow Amazon S3 AWS Lambda Amazon S3 AWS Cloud Amazon AppFlow Amazon Lookout for Metrics ① ② ③ Google Analytics Google Analytics Google Analytics

Slide 60

Slide 60 text

59 Amazon Lookout for Metrics 感想 • CloudWatch anomaly detectionの他サービス対応版の印象を持った • 対応しているサードパーティのサービスが多いのがありがたい • 外部サービス(今回はGoogle Analytics)のAPI設定はそれぞれコツが必要 • とりあえずS3に格納すればどんなデータも異常検出できる • 異常値検知が無いとグラフは見れない? • 自分で異常値が決めれないものに活用したい

Slide 61

Slide 61 text

60 学びポイント • AWSのAIサービスは特に知識が無くとも始めやすいものが多い • 諦めないことが大事、他に方法が無いか考えてみる • サポートは偉大 • マネジメントコンソールがNGならAWS CLIも試してみる

Slide 62

Slide 62 text

61 ありがとうございました