Amazon Elasticsearch Service
を利用したAWSのログ活用
1
Copyright (C) CLASSMETHOD All Rights Reserved
自己紹介
名前:藤本 真司
所属:クラスメソッド株式会社
やってること:AWSの導入支援、構築
好きなAWSサービス:AWS Lambda
好きなアニメ:のんのんびより(りぴーと)
Copyright (C) CLASSMETHOD All Rights Reserved
月間100万PVの技術系情報サイト Developers.IO
3
http://dev.classmethod.jp/
Copyright (C) CLASSMETHOD All Rights Reserved 4
お話すること
• ログの活用って?
• Amazon Elasticsearch Serviceについて
• Amazon Elasticsearch ServiceによるAWSログの
可視化・分析(ケーススタディ)
Copyright (C) CLASSMETHOD All Rights Reserved 5
ある日の運用現場
・
・
・
LB
Web/AP DB
ユーザー
よくあるWEBシステム
遅いなぁ。。
Copyright (C) CLASSMETHOD All Rights Reserved 6
ある日の運用現場
ユーザー
システム管理者
DB担当AP/OS担当NW担当
何か全体的にポータルページが遅いみたいなんだけど
みんな調べて
Copyright (C) CLASSMETHOD All Rights Reserved 7
ある日の運用現場
・
・
・
LB
Web/AP DB
システム管理者
NW担当 AP/OS担当 DB担当
ログにエラー出力なし レスポンスタイムは悪い SQLのクエリは問題ない
結局原因は・・?
Copyright (C) CLASSMETHOD All Rights Reserved 8
みなさん、
ログを活用していますか?
Copyright (C) CLASSMETHOD All Rights Reserved 9
ログの活用とは?
Copyright (C) CLASSMETHOD All Rights Reserved 10
ログの活用とは?
収集 集約
監視 通知
・・・
・・・ 可視化 分析
Copyright (C) CLASSMETHOD All Rights Reserved 11
お話すること
• ログの活用って?
• Amazon Elasticsearch Serviceについて
• Amazon Elasticsearch ServiceによるAWSログの
可視化・分析(ケーススタディ)
Copyright (C) CLASSMETHOD All Rights Reserved
• 2015/10/1にリリース(現地時間)
• AWSマネージドサービスのElasticsearch / Kibana
• 東京リージョン対応
12
Amazon Elasticsearch Serviceリリース!!
Copyright (C) CLASSMETHOD All Rights Reserved
• OSSの検索 / 分析エンジン
– Luceneベース
– 高拡張性 / 高可用性
– スキーマレス(スキーマ定義も可)
– RESTful APIによる操作
– 豊富な検索オプション
• ユースケース
– 全文検索
– ログ分析
– リアルタイムアプリケーション分析
• 豊富な周辺ツール
– Logstash
ログ処理ツール
– Kibana
データ可視化・分析ツール
13
Elasticsearchとは?
呼んだ?
Copyright (C) CLASSMETHOD All Rights Reserved
• Elasticsearchのデータ可視化・分析ツール
• 多様な多次元の可視化方法
– 円グラフ
– エリアチャート
– ラインチャート
– マップ、などなど
• 強力なElasticsearchの検索
14
Kibanaとは?
Copyright (C) CLASSMETHOD All Rights Reserved 15
Elasticsearch
と
Amazon Elasticsearch Service
Copyright (C) CLASSMETHOD All Rights Reserved
• AWSマネージドサービス
• IAMポリシーによるアクセス制御
• CloudWatch Logsとの連携
• プラグインがデフォルトで利用可
• 従量制の料金体系
16
Amazon Elasticsearch Serviceの特徴
Copyright (C) CLASSMETHOD All Rights Reserved 17
AWSマネージドサービスのElasticsearch
• 構築の簡略化
– 画面操作、APIによるデプロイ
– OS、アプリケーションのインストール/設定不要
– 自由度の高い構成設定
• インスタンスタイプ指定
• ディスクタイプ指定
• Master Node / Data Node
• マルチAZ
• 運用の簡略化
– 容易なスケール
– 障害の自動検出、および自動ノード交換
– 自動定期スナップショット(手動スナップショットも可)
– CloudWatchによるリソースモニタリング、イベント監視
Availability Zone 1 Availability Zone 2
Master Master
Data Data
Pri1 Rep1 Pri2Rep2
Copyright (C) CLASSMETHOD All Rights Reserved 18
IAMポリシーによるアクセス制御
• IPアドレスによる制御
• リソースによる制御
• IAM User / IAM Roleによる制御
Copyright (C) CLASSMETHOD All Rights Reserved
• ロググループをAmazon ESへSubscriptionするだけ
• 繋ぎのLambda Functionが自動生成
– AWSによって用意済み
• JSON形式の場合、何も不要
(Elasticsearchによる自動型マッピング)
– AWS CloudTrail
• TEXT形式の場合、メッセージパターンを指定するだけ
– VPC Flow Logs
– Lambda Function
19
CloudWatch LogsとAmazon ESの連携
自動生成
CloudWatch Logs Lambda Amazon ES
Copyright (C) CLASSMETHOD All Rights Reserved
• Kibana 4 / Kibana 3
– データの可視化
• Analysis-icu
– 文字の正規化
• Analysis-kuromoji
– 日本語の形態素解析
• Jetty
– SSL Connection、ベーシック認証
• cloud-aws
– S3を利用したスナップショットリポジトリ
– EC2上でのクラスタリング
20
プラグインがデフォルトで利用可
Copyright (C) CLASSMETHOD All Rights Reserved
• Elasticsearchのバージョン選択
• VPC対応
• プラグインのインストール
(コマーシャルプラグイン含む)
• Dynamic Script
• ユーザー辞書
• 一部のElasticsearch API(*)
• TCP Transport(サポートしない)
• Elastic社のサポート
(*) http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-gsg-
supported-operations.html
21
出来ないこと
Copyright (C) CLASSMETHOD All Rights Reserved 22
AWSにおけるログ可視化・分析
収集 集約
監視 通知
可視化 分析・・・
・・・
Copyright (C) CLASSMETHOD All Rights Reserved 23
お話すること
• ログの活用って?
• Amazon Elasticsearch Serviceについて
• Amazon Elasticsearch ServiceによるAWSログの
可視化・分析(ケーススタディ)
Copyright (C) CLASSMETHOD All Rights Reserved 24
ケーススタディ
ログデータを可視化・分析し、
ボトルネック箇所を特定せよ
Copyright (C) CLASSMETHOD All Rights Reserved 25
ログ活用していない運用現場
・
・
・
LB
Web/AP DB
システム管理者
NW担当 AP/OS担当 DB担当
Copyright (C) CLASSMETHOD All Rights Reserved 26
ある日の運用現場をAWSに置き換え
LB
Web/AP DB
ユーザー
ユーザー ELB EC2 RDS
Copyright (C) CLASSMETHOD All Rights Reserved 27
Amazon ESによるログ可視化・分析
Copyright (C) CLASSMETHOD All Rights Reserved 28
解析に必要なログ / データ
ELB
EC2
RDS
(MySQL)
S3
アクセスログ
URL・各種処理時間
Apacheのアクセスログ
URL・レスポンスタイム
スロークエリログ
SQL・クエリタイム
Copyright (C) CLASSMETHOD All Rights Reserved 29
各種ログデータのAmazon ESへの投入
ELB
EC2
RDS
(MySQL)
S3
スケジューリングは?
ETL処理は?
Amazon ES
Copyright (C) CLASSMETHOD All Rights Reserved 30
EC2 Amazon ES
Copyright (C) CLASSMETHOD All Rights Reserved 31
EC2 -> Amazon ES
Copyright (C) CLASSMETHOD All Rights Reserved
• スケジューリング
– リアルタイム収集
• Extract(ファイルからのメッセージ抽出)
– Logstash file Input Plugin
• Transform(JSONへの加工)
– Logstash grok Filter Plugin
• Load(Amazon ESへの投入)
– logstash-output-amazon_es
– AWS提供のAmazon ESへのLogstash Output Plugin
• 詳しくはブログを。。
– http://dev.classmethod.jp/cloud/aws/amazon-es-using-logstash-plugin/
32
Logstashによる実装
Copyright (C) CLASSMETHOD All Rights Reserved 33
ELB Amazon ESS3
Copyright (C) CLASSMETHOD All Rights Reserved 34
ELB -> Amazon ES
Copyright (C) CLASSMETHOD All Rights Reserved
• スケジューリング
– S3 Object Createdイベントによる発火
• Extract(S3のオブジェクト取得)
– S3エンドポイントへのGetObject API
– Range指定により一回のダウンロードサイズを指定可能
– 一回のLambda Functionで終わらないようなサイズの場合、Lambda
FunctionをChainすることも可能
• Transform(JSONへの加工)
– 要実装(サンプルコードあり)
https://github.com/awslabs/amazon-elasticsearch-lambda-samples
• Load(Amazon ESへの投入)
– ElasticsearchのBulk APIを利用して一括投入
• 詳しくはブログを。。
– http://dev.classmethod.jp/cloud/aws/elb-accesslog-to-elasticsearch/
35
AWS Lambdaによる実装
Copyright (C) CLASSMETHOD All Rights Reserved 36
RDS for MySQL Amazon ES
Copyright (C) CLASSMETHOD All Rights Reserved 37
RDS for MySQL -> Amazon ES
Copyright (C) CLASSMETHOD All Rights Reserved
• スケジューリング
– スケジュールイベントによる発火
• Extract(AWS APIによる取得)
– RDSエンドポイントへのDownloadDBLogFilePortion API
– Marker指定により準リアルタイムな取り込み可能
– 一回のLambda Functionで終わらないようなサイズの場合、Lambda
FunctionをChainすることも可能
• Transform(JSONへの加工)
– 要実装
• Load(Amazon ESへの投入)
– ElasticsearchのBulk APIを利用して一括投入
• 詳しくはブログを。。
– http://dev.classmethod.jp/cloud/aws/rds-mysql-slowquerylog-to-es/
38
AWS Lambdaによる実装
Copyright (C) CLASSMETHOD All Rights Reserved 39
Amazon ESによるログ可視化・分析
Copyright (C) CLASSMETHOD All Rights Reserved 40
ELBのアクセスログ
どのURLへのリクエストが
ボトルネックなのか判明
← タイムスタンプ →
↑
処
理
時
間
↓
Copyright (C) CLASSMETHOD All Rights Reserved 41
Apacheのアクセスログ
インスタンスレベルの
処理時間差が判明
↑
処
理
時
間
↓
WEB-01 WEB-02
← タイムスタンプ →
Copyright (C) CLASSMETHOD All Rights Reserved 42
RDS for MySQLのスロークエリログ
どのSQLがボトルネック
なのか判明
← タイムスタンプ →
↑
処
理
時
間
↓
Copyright (C) CLASSMETHOD All Rights Reserved 43
まとめ
• ログ活用の大切さ
– ログからシステムをモニタリングできる
– 課題があればログからクリアできないか考える
• Amazon Elasticsearch Service
– 従量制の課金体系。まず使ってみる。
• AWSのルールに則ったログ活用
– 各種サービスで収集可能なログを理解する
– 各種ログから活用可能な情報を選別する
– 各種ログを活用するためのAWSを知る
Copyright (C) CLASSMETHOD All Rights Reserved 44
2016/02/20 Developers.IO 2016

Amazon Elasticsearch Serviceを利用したAWSのログ活用

  • 1.
  • 2.
    Copyright (C) CLASSMETHODAll Rights Reserved 自己紹介 名前:藤本 真司 所属:クラスメソッド株式会社 やってること:AWSの導入支援、構築 好きなAWSサービス:AWS Lambda 好きなアニメ:のんのんびより(りぴーと)
  • 3.
    Copyright (C) CLASSMETHODAll Rights Reserved 月間100万PVの技術系情報サイト Developers.IO 3 http://dev.classmethod.jp/
  • 4.
    Copyright (C) CLASSMETHODAll Rights Reserved 4 お話すること • ログの活用って? • Amazon Elasticsearch Serviceについて • Amazon Elasticsearch ServiceによるAWSログの 可視化・分析(ケーススタディ)
  • 5.
    Copyright (C) CLASSMETHODAll Rights Reserved 5 ある日の運用現場 ・ ・ ・ LB Web/AP DB ユーザー よくあるWEBシステム 遅いなぁ。。
  • 6.
    Copyright (C) CLASSMETHODAll Rights Reserved 6 ある日の運用現場 ユーザー システム管理者 DB担当AP/OS担当NW担当 何か全体的にポータルページが遅いみたいなんだけど みんな調べて
  • 7.
    Copyright (C) CLASSMETHODAll Rights Reserved 7 ある日の運用現場 ・ ・ ・ LB Web/AP DB システム管理者 NW担当 AP/OS担当 DB担当 ログにエラー出力なし レスポンスタイムは悪い SQLのクエリは問題ない 結局原因は・・?
  • 8.
    Copyright (C) CLASSMETHODAll Rights Reserved 8 みなさん、 ログを活用していますか?
  • 9.
    Copyright (C) CLASSMETHODAll Rights Reserved 9 ログの活用とは?
  • 10.
    Copyright (C) CLASSMETHODAll Rights Reserved 10 ログの活用とは? 収集 集約 監視 通知 ・・・ ・・・ 可視化 分析
  • 11.
    Copyright (C) CLASSMETHODAll Rights Reserved 11 お話すること • ログの活用って? • Amazon Elasticsearch Serviceについて • Amazon Elasticsearch ServiceによるAWSログの 可視化・分析(ケーススタディ)
  • 12.
    Copyright (C) CLASSMETHODAll Rights Reserved • 2015/10/1にリリース(現地時間) • AWSマネージドサービスのElasticsearch / Kibana • 東京リージョン対応 12 Amazon Elasticsearch Serviceリリース!!
  • 13.
    Copyright (C) CLASSMETHODAll Rights Reserved • OSSの検索 / 分析エンジン – Luceneベース – 高拡張性 / 高可用性 – スキーマレス(スキーマ定義も可) – RESTful APIによる操作 – 豊富な検索オプション • ユースケース – 全文検索 – ログ分析 – リアルタイムアプリケーション分析 • 豊富な周辺ツール – Logstash ログ処理ツール – Kibana データ可視化・分析ツール 13 Elasticsearchとは? 呼んだ?
  • 14.
    Copyright (C) CLASSMETHODAll Rights Reserved • Elasticsearchのデータ可視化・分析ツール • 多様な多次元の可視化方法 – 円グラフ – エリアチャート – ラインチャート – マップ、などなど • 強力なElasticsearchの検索 14 Kibanaとは?
  • 15.
    Copyright (C) CLASSMETHODAll Rights Reserved 15 Elasticsearch と Amazon Elasticsearch Service
  • 16.
    Copyright (C) CLASSMETHODAll Rights Reserved • AWSマネージドサービス • IAMポリシーによるアクセス制御 • CloudWatch Logsとの連携 • プラグインがデフォルトで利用可 • 従量制の料金体系 16 Amazon Elasticsearch Serviceの特徴
  • 17.
    Copyright (C) CLASSMETHODAll Rights Reserved 17 AWSマネージドサービスのElasticsearch • 構築の簡略化 – 画面操作、APIによるデプロイ – OS、アプリケーションのインストール/設定不要 – 自由度の高い構成設定 • インスタンスタイプ指定 • ディスクタイプ指定 • Master Node / Data Node • マルチAZ • 運用の簡略化 – 容易なスケール – 障害の自動検出、および自動ノード交換 – 自動定期スナップショット(手動スナップショットも可) – CloudWatchによるリソースモニタリング、イベント監視 Availability Zone 1 Availability Zone 2 Master Master Data Data Pri1 Rep1 Pri2Rep2
  • 18.
    Copyright (C) CLASSMETHODAll Rights Reserved 18 IAMポリシーによるアクセス制御 • IPアドレスによる制御 • リソースによる制御 • IAM User / IAM Roleによる制御
  • 19.
    Copyright (C) CLASSMETHODAll Rights Reserved • ロググループをAmazon ESへSubscriptionするだけ • 繋ぎのLambda Functionが自動生成 – AWSによって用意済み • JSON形式の場合、何も不要 (Elasticsearchによる自動型マッピング) – AWS CloudTrail • TEXT形式の場合、メッセージパターンを指定するだけ – VPC Flow Logs – Lambda Function 19 CloudWatch LogsとAmazon ESの連携 自動生成 CloudWatch Logs Lambda Amazon ES
  • 20.
    Copyright (C) CLASSMETHODAll Rights Reserved • Kibana 4 / Kibana 3 – データの可視化 • Analysis-icu – 文字の正規化 • Analysis-kuromoji – 日本語の形態素解析 • Jetty – SSL Connection、ベーシック認証 • cloud-aws – S3を利用したスナップショットリポジトリ – EC2上でのクラスタリング 20 プラグインがデフォルトで利用可
  • 21.
    Copyright (C) CLASSMETHODAll Rights Reserved • Elasticsearchのバージョン選択 • VPC対応 • プラグインのインストール (コマーシャルプラグイン含む) • Dynamic Script • ユーザー辞書 • 一部のElasticsearch API(*) • TCP Transport(サポートしない) • Elastic社のサポート (*) http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-gsg- supported-operations.html 21 出来ないこと
  • 22.
    Copyright (C) CLASSMETHODAll Rights Reserved 22 AWSにおけるログ可視化・分析 収集 集約 監視 通知 可視化 分析・・・ ・・・
  • 23.
    Copyright (C) CLASSMETHODAll Rights Reserved 23 お話すること • ログの活用って? • Amazon Elasticsearch Serviceについて • Amazon Elasticsearch ServiceによるAWSログの 可視化・分析(ケーススタディ)
  • 24.
    Copyright (C) CLASSMETHODAll Rights Reserved 24 ケーススタディ ログデータを可視化・分析し、 ボトルネック箇所を特定せよ
  • 25.
    Copyright (C) CLASSMETHODAll Rights Reserved 25 ログ活用していない運用現場 ・ ・ ・ LB Web/AP DB システム管理者 NW担当 AP/OS担当 DB担当
  • 26.
    Copyright (C) CLASSMETHODAll Rights Reserved 26 ある日の運用現場をAWSに置き換え LB Web/AP DB ユーザー ユーザー ELB EC2 RDS
  • 27.
    Copyright (C) CLASSMETHODAll Rights Reserved 27 Amazon ESによるログ可視化・分析
  • 28.
    Copyright (C) CLASSMETHODAll Rights Reserved 28 解析に必要なログ / データ ELB EC2 RDS (MySQL) S3 アクセスログ URL・各種処理時間 Apacheのアクセスログ URL・レスポンスタイム スロークエリログ SQL・クエリタイム
  • 29.
    Copyright (C) CLASSMETHODAll Rights Reserved 29 各種ログデータのAmazon ESへの投入 ELB EC2 RDS (MySQL) S3 スケジューリングは? ETL処理は? Amazon ES
  • 30.
    Copyright (C) CLASSMETHODAll Rights Reserved 30 EC2 Amazon ES
  • 31.
    Copyright (C) CLASSMETHODAll Rights Reserved 31 EC2 -> Amazon ES
  • 32.
    Copyright (C) CLASSMETHODAll Rights Reserved • スケジューリング – リアルタイム収集 • Extract(ファイルからのメッセージ抽出) – Logstash file Input Plugin • Transform(JSONへの加工) – Logstash grok Filter Plugin • Load(Amazon ESへの投入) – logstash-output-amazon_es – AWS提供のAmazon ESへのLogstash Output Plugin • 詳しくはブログを。。 – http://dev.classmethod.jp/cloud/aws/amazon-es-using-logstash-plugin/ 32 Logstashによる実装
  • 33.
    Copyright (C) CLASSMETHODAll Rights Reserved 33 ELB Amazon ESS3
  • 34.
    Copyright (C) CLASSMETHODAll Rights Reserved 34 ELB -> Amazon ES
  • 35.
    Copyright (C) CLASSMETHODAll Rights Reserved • スケジューリング – S3 Object Createdイベントによる発火 • Extract(S3のオブジェクト取得) – S3エンドポイントへのGetObject API – Range指定により一回のダウンロードサイズを指定可能 – 一回のLambda Functionで終わらないようなサイズの場合、Lambda FunctionをChainすることも可能 • Transform(JSONへの加工) – 要実装(サンプルコードあり) https://github.com/awslabs/amazon-elasticsearch-lambda-samples • Load(Amazon ESへの投入) – ElasticsearchのBulk APIを利用して一括投入 • 詳しくはブログを。。 – http://dev.classmethod.jp/cloud/aws/elb-accesslog-to-elasticsearch/ 35 AWS Lambdaによる実装
  • 36.
    Copyright (C) CLASSMETHODAll Rights Reserved 36 RDS for MySQL Amazon ES
  • 37.
    Copyright (C) CLASSMETHODAll Rights Reserved 37 RDS for MySQL -> Amazon ES
  • 38.
    Copyright (C) CLASSMETHODAll Rights Reserved • スケジューリング – スケジュールイベントによる発火 • Extract(AWS APIによる取得) – RDSエンドポイントへのDownloadDBLogFilePortion API – Marker指定により準リアルタイムな取り込み可能 – 一回のLambda Functionで終わらないようなサイズの場合、Lambda FunctionをChainすることも可能 • Transform(JSONへの加工) – 要実装 • Load(Amazon ESへの投入) – ElasticsearchのBulk APIを利用して一括投入 • 詳しくはブログを。。 – http://dev.classmethod.jp/cloud/aws/rds-mysql-slowquerylog-to-es/ 38 AWS Lambdaによる実装
  • 39.
    Copyright (C) CLASSMETHODAll Rights Reserved 39 Amazon ESによるログ可視化・分析
  • 40.
    Copyright (C) CLASSMETHODAll Rights Reserved 40 ELBのアクセスログ どのURLへのリクエストが ボトルネックなのか判明 ← タイムスタンプ → ↑ 処 理 時 間 ↓
  • 41.
    Copyright (C) CLASSMETHODAll Rights Reserved 41 Apacheのアクセスログ インスタンスレベルの 処理時間差が判明 ↑ 処 理 時 間 ↓ WEB-01 WEB-02 ← タイムスタンプ →
  • 42.
    Copyright (C) CLASSMETHODAll Rights Reserved 42 RDS for MySQLのスロークエリログ どのSQLがボトルネック なのか判明 ← タイムスタンプ → ↑ 処 理 時 間 ↓
  • 43.
    Copyright (C) CLASSMETHODAll Rights Reserved 43 まとめ • ログ活用の大切さ – ログからシステムをモニタリングできる – 課題があればログからクリアできないか考える • Amazon Elasticsearch Service – 従量制の課金体系。まず使ってみる。 • AWSのルールに則ったログ活用 – 各種サービスで収集可能なログを理解する – 各種ログから活用可能な情報を選別する – 各種ログを活用するためのAWSを知る
  • 44.
    Copyright (C) CLASSMETHODAll Rights Reserved 44 2016/02/20 Developers.IO 2016