俺と Amazon Elasticsearch Service とスポットインスタンス

Post on 23-Jan-2018

224 views 4 download

Transcript of 俺と Amazon Elasticsearch Service とスポットインスタンス

俺とAmazon Elasticsearch Service とスポットインスタンス

2016-09-11

JAWS-UG金沢 x Kanazawa.rb Elastic勉強会

ふぁらお加藤

Profile

Name

ふぁらお加藤 / @PharaohKJ

BelongTo

JAWS-UG 金沢

Kanazawa.rb

Job & Works

PhalanXware (Freelancer)

OCR system com / .NET

ISDB-T MFC / Linux C++

Social Game PHP / Java

Information App AngularJS / CakePHP

Factory Automation .NET

目指すゴールなるべく「簡単に」「手軽に」「手間をかけずに」「金もなるべくかけずに」「勉強せず」上司や企画の方が見たとき「なるほど参考になる」と言うであろうグラフを出す。(※上司、企画が見る、言うとは言っていない)

本日学んだ結果、みんなが思うこと

すぐにでも試したい!マウス2クリックで!CLI 2コマンドぐらいで!

ああ〜Elasticsearch + Kibana

がすぐ欲しい〜

AWS ですぐ用意できますよ!

しかもちゃんとスケールできますよ

Elasticsearch

Serviceアイコン覚えよう

SaaSぽい感じ※AWSはXaaSとは絶対言わない

公式ページより

https://aws.amazon.com/jp/elastics

earch-service/

公式ページより2

https://aws.amazon.com/jp/elastics

earch-service/

お値段いろいろ

無料枠アリ(サインアップから12ヶ月内)

https://aws.amazon.com/jp/free/

実演します

まぁAWSのアカウントはみんな持ってるのでアカウント取得は割愛

やること

• 名前と Elasticsearchのバージョンを決める

• クラスタを構成する台数、マシンスペックを決める

• 遠いZONEに分散するか、などきめる

• ディスク容量を決める

• 接続制限を設定する(例えば、接続IPを指定)

以上を入力すればOK

実演!

https://ap-northeast-1.console.aws.amazon.com/es/home?region=ap-northeast-1

http://www.ugtop.com/spill.shtml

まぁ Elasticsearch できるとして何をやるか

俺の爆儲かりブログのアクセス解析をしよう

(爆儲かり具合を知りたいかたは30日飲み会ね)

んなもん Google Analytics でやるでしょ?

でも REST API のログとか解析したいやろ?そういう気持ちでみてね

例えばソシャゲ > ガチャ回ったタイミング集計EC > 商品売れたタイミング集計REST でリソースが操作されるタイミング集計

こういうのは運営イベントカレンダーとJOINして表示すると、企画さんにも便利だよね

CDNのログを S3 に保存しているので流し込もう

S3

(Storage)

CloudFront

(CDN)

配信

Elasticsearch

( ES & Kibana )

お客さん EC2 (VM)

logstash

ログ自動出力 取得 転送終わったら削除

集計

オペレータ

こういうログを変換して突っ込んで捨てるVM

スポットインスタンスを使いましょう!

AWSさんは超絶大量のVMがたくさんある

稼働率は100%ある?そんなわきゃない

供給側 AWSさん余ったVM、安くしておくから使ってくんない?

需要側俺ら余ったVM、安く使わせてくれない?

需要と供給で値段が常に上下しているVM

それがスポットインスタンス

普通との比較

• 超安い!(10分の1ぐらいのときもある)

• リクエスト方式なので指し値によってはできないこともある。通った場合も、+3分〜5分かかる。

• AWSさんが「需要あるし、値上げするわ」という金額が、こっちの指し値を上回ったら、削除される。

• 1時間-6時間削除しないでね、ってのもある。

実演

https://ap-northeast-

1.console.aws.amazon.com/ec2sp/v1/spot/dashboard?region=ap-

northeast-1

https://aws.amazon.com/jp/ec2/pricing/

できたらそこのにsshアクセスしてlogstashを使って流しこむ(認証情報と設定をファイルに書いて合計5コマンドぐらいでできる!)

input 入力 from S3

参考 : http://dev.classmethod.jp/server-side/elasticsearch/cloudfront-log-to-kibana/

filter 加工

参考 : http://dev.classmethod.jp/server-side/elasticsearch/cloudfront-log-to-kibana/

出力 to Elasticsearch

参考 : http://dev.classmethod.jp/server-side/elasticsearch/cloudfront-log-to-kibana/

全コマンド

• wget

https://download.elastic.co/logstash/logstash/pack

ages/centos/logstash-2.2.2-1.noarch.rpm

• sudo rpm -ivh logstash-2.2.2-1.noarch.rpm

• sudo /opt/logstash/bin/plugin install logstash-

output-amazon_es

• vi cloudfront.conf

• /opt/logstash/bin/logstash -f cloudfront.conf

流し込みが終わったら削除、リクエストも削除

ユースケースとして、夜間バッチ、ちょっとだけ計算させたい、試したい、とかむいてる

ハマったところ

• logstash から ES へのアクセス許可書き忘れてた

• prefix が全部、つまりレコード数が多いと確認するのにめちゃくちゃ時間がかかるので、まずは数ファイルで動作確認オススメ

• Kibana 側でレコードでてこない!と思ったら検索範囲が間違っていた

結果を使ってみましょう

https://search-myes-gqsutufvtflfzqyp2saq2bseoi.ap-northeast-

1.es.amazonaws.com/_plugin/kibana/

this month

Daily で useragent.device

this month

Daily で useragent.name

this month

円グラフ、useragent.device、name

爆儲かり具合がおわかりいただけただろうか

まとめ

• Elasticsearch + Kibana インスタンス簡単にスケールするものがAWSで得られる

• 一時作業にはスポットインスタンスを使うと安い!(みんなにはナイショだよ)

• 上司、企画が次のコンテンツ作りに活かせそうなのをKibanaで簡単に可視化できた

ふぁらお加藤

ご清聴ありがとうございました