Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2015 年のうちにやっておきたい Amazon Elasticsearch Service 入門
Search
Yohei Kawahara
December 13, 2015
1
1.9k
2015 年のうちにやっておきたい Amazon Elasticsearch Service 入門
JAWS-UG 福岡「ちょっと濃い目にAWSの話をしてみよう」で発表したスライドです。
Yohei Kawahara
December 13, 2015
Tweet
Share
More Decks by Yohei Kawahara
See All by Yohei Kawahara
20191002_CircleCIMeetupFukuoka#2
inokappa
1
830
kix_009_20190429
inokappa
0
830
2019-04-18 CircleCI Meetup Fukuoka #1
inokappa
2
8.2k
開発で使える AWS の API 操作を模倣する (OSS) ツールを探してみた/JAWS-UG Kagoshima Vol.8
inokappa
1
1.2k
隙間時間を使って exercism.io を始め隊 | リモートで勉強会 #2
inokappa
0
430
Congratulations fukuokarb#100
inokappa
0
4k
moto を 'もっと' 使おう/PyFukuoka#4
inokappa
0
4.5k
github-enterprise-user-kai-desuyone
inokappa
0
110
Elixir and AWS Tutorial
inokappa
0
550
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Fireside Chat
paigeccino
34
3.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
How STYLIGHT went responsive
nonsquared
98
5.3k
A better future with KSS
kneath
238
17k
Side Projects
sachag
452
42k
It's Worth the Effort
3n
184
28k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
How GitHub (no longer) Works
holman
313
140k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.5k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
8
270
Transcript
2015 年のうちにやっておきたい Amazon Elasticsearch Service ⼊⾨ 2015.12.12 JAWS-UG福岡 ちょっと濃い⽬にAWSの話をしてみよう かっぱ(@inokara)
提供
AWSを活⽤しながらビジネスに集中できる コンシェルジュサービス
24時間365⽇ 定額課⾦/ 請求書払い PCI DSS、ISMS、Pマーク取得済みの運⽤体制 監視運⽤保守 企業 AWS
(1,500⽇間) ※ 2010年5⽉cloudpackサービススタート 36,000時間 連続稼働 (※)
4 社 社超 プロジェク ト超 500 600 5年間 5年間AWSのみで運⽤保守
アジア地域4社 世界28社 最上位パートナー プレミアコンサルティングパートナー
企業規模別 cloudpack利⽤⽐率 36% 27 37 % % 中⼩企業 中堅企業 ⼤企業
Web系 91 % うち33%が ソーシャルゲームや メディアサイト cloudpackͷओͳར༻状況
None
アジェンダ ☁ 注意 ☁ ⾃⼰紹介 ☁ Demo の準備 ☁ Amazon
Elasticsearch Service について ☁ 個⼈的な事例(途中で Demo を挟むかも) ☁ Demo ☁ 終わり
注意 ☁ ⾃分が Amazon Elasticsearch Service に⼊⾨したメ モです ☁ 運⽤事例等の役⽴つ情報は無いかもしれません
☁ 本資料に記載された内容の全ては作成時点の内容とな ります ☁ 本資料内で Amazon Elasticsearch Service を Amazon ES と省略して記載している部分があります
⾃⼰紹介 ☁ 川原洋平(@inokara)※「かっぱ」と呼んでね♪ ☁ アイレット株式会社 cloudpack 事業部所属 ☁ ⾹椎からリモート勤務(1 年少々)しています
いきなり Demo の準備
Amazon ES クラスタを構築してみる ☁ 後ほど九州地⽅の PM 2.5 を可視化します ☁ その前に
Amazon ES クラスタを構築します ☁ 10 分位でクラスタ構築されます ☁ クラスタ構築後 PM2.5 のデータを投⼊します
Amazon Elasticserach Service について
その前に Elasticsearch とは ☁ スキーマフリー ☁ 分散ドキュメントストア ☁ REST &
API ☁ インストールが簡単、導⼊が簡単 ☁ Java で実装
ボクと Elasticsearch の過去 ☁ 導⼊し易いが故の… ☁ プラグイン ☁ JVM ☁
アクセスコントロール ‘ ৭ʑͱল͠ͳ͚Ε͍͚ͳ͍ࣄ͕͋Γ·͢ʜ͕ɺ ·ͨࠓʜ
Amazon Elsticsearch Service について(概要) ☁ 簡単デプロイ ☁ 管理(可⽤性の確保、パッチ管理、障害検出、ノードの交 換、バックアップ、モニタリング等)は AWS
にある程度 お任せ ☁ CloudWatch と連携した⾼いスケーラビリティ ☁ Kibana ⼊り(はじめから Kibana が利⽤可能) ☁ IAM ポリシーによって安全にクラスタにアクセス出来る
Amazon Elsticsearch Service について(導⼊ 1) ☁ Manegement Console からであれば数ステップ ☁
後ほど Demo ☁ クラスタ = ドメイン ☁ ドメインを作るところから始める ☁ 10 分位でアクセス可能な状態になる
Amazon Elsticsearch Service について(導⼊ 2) ☁ インスタンスタイプの選択 ☁ T2 テスト、クラスタ管理向け
☁ R3 メモリ重視 ☁ I2 ハイパフォーマンス ☁ M3 ⼀般的な利⽤
Amazon Elsticsearch Service について(導⼊ 3) ☁ ドメインのノード数 ☁ Enable dedicated
master ☁ クラスタ管理のみを⾏うノードを作成する(奇数で⽤意することを推奨) ☁ Enable zone awareness[あうぇあねす] ☁ リージョン内の複数の AZ にノード分散配置する ☁ Advance setting(今回は特に触れない) ☁ rest.action.multi.allow_explicit_index ☁ URL Base のアクセスポリシーを指定 ☁ indices.fielddata.cache.size ☁ fielddata のキャッシュサイズを指定
Amazon Elsticsearch Service について(導⼊ 4) ☁ ストレージ ☁ T2 シリーズ以外は
Instance Store を選択することができる ☁ EBS は Magnetic / GP2 / PIOPS から選択することが出来る ☁ EBS サイズは最低 10GB から最⼤ 512GB まで指定することが出来 る(インスタンスサイズによって最⼤サイズは異なる) ☁ スナップショットの時間を指定する
Amazon Elsticsearch Service について(導⼊ 5) ☁ アクセスポリシーの設定 ☁ IAM や
IP で制御することができる(後述)
Amazon Elsticsearch Service について(管理) ☁ モニタリングは CloudWatch で ☁ 必要に応じて⼿動でスケールアウトが可能
☁ スナップショット ☁ デフォルトでは⾃動的に取得される ☁ スナップショット取得時間は指定可能 ☁ 保存期間は 14 ⽇間 ☁ レストアするには AWS サポートにお願いする必要がある... ☁ Elasticsearch API を使うことで⼿動でスナップショットを作成可能 (後述)
Amazon Elsticsearch Service について(API) ☁ 以下の API がサポートされている ☁ http://docs.aws.amazon.com/ja_jp/elasticsearch-service/
latest/developerguide/es-gsg-supported-operations.html ☁ サポートされていない API もある... ☁ 例えば、status とか(elasticsearch-head とかで使われている) ☁ ⽇々サポートされる API が増えている感もある
Amazon Elsticsearch Service について(プラグイン) ☁ 以下のプラグインが導⼊されている ☁ Kinaba 3 ☁
Kibana 4 ☁ jetty ☁ cloud-aws ☁ kuromoji ☁ icu ☁ ⾃分でプラグインが追加出来ない... ☁ そもそもインストールできたらマネージドではなくなるので仕⽅ないのかなと思っている
Amazon Elsticsearch Service について(アクセスポリシー) ☁ IAM ユーザー、AWS アカウントによるアクセス制 御 ☁
IP アドレスによるアクセス制御 ☁ Lambda からのアクセスは挫折した ☁ IAM でアクセス制御している API にリクエストする場合にはアクセスを 許可されたリソースの credential を使った署名を付与する必要がある ☁ SDK は上記を程よくラッピングしているので意識する必要は無い
そろそろ ES クラスタ出来たかな?
(続)Amazon ES クラスタを構築してみる ☁ クラスタが構築出来たらデータを投⼊します ☁ 投⼊するデータはそらまめ君で公開されている⼤ 気汚染物質のデータから PM2.5 のみを投⼊しま
す(そらまめ君(http://soramame.taiki.go.jp/)) ☁ データは Ruby を使って投⼊します ☁ データの投⼊には暫く時間が掛かります…
個⼈的な事例
⼿動によるスナップショット http://inokara.hateblo.jp/entry/2015/12/05/181358
Fluentd + CloudWatch Logs との連携 http://inokara.hateblo.jp/entry/2015/12/06/192436
Fluentd + CloudWatch Logs との連携
Amazon S3 + S3 Event notification + SQS との連携 http://inokara.hateblo.jp/entry/2015/12/10/224031
Amazon S3 + S3 Event notification + SQS との連携
そして Demo
放り込んでおいたそらまめ君データを Kibana 4 で可視化する
放り込んでおいたそらまめ君データを Kibana 4 で可視化する ☁ そらまめ君(http://soramame.taiki.go.jp/) ☁ 先ほど放り込んでおいたデータを Kibana4 で可
視化する ☁ Kabana4 のオブジェクト情報(JSON)も Amazon ES に⼊っている(弄ることも出来る)
そらまめ君のデータを放り込んで Kibana 4 で可視化する(デモにミスった場合の予備) こんな感じになる予定
(おまけ)そらまめ君のデータを毎⽇配信中 S3 にホスティング Lambda でツイート Docker + Ruby + Dynamo
DB で収集
最後に
Amazon ES を触った感想 ☁ 簡単構築、運⽤管理のコストは下がると思う ☁ 基本的な操作は Rest API で出来るので普通の
Elasticsearch となんら遜⾊が 無い ☁ 但し、利⽤が制限されている API があるので注意 ☁ インデックスの Mapping についても⾃分で⾯倒を⾒る必要がある(逆に⾔うと 任意に定義出来る) ☁ Kibana 同梱は嬉しいが⾃分でプラグインインストールできなさそうなのは⾟ いけど我慢しよう ☁ Lambda との連携が理想的だけどアクセスポリシーと併⽤する際には注意が必 要(SDK が対応してくれると嬉しい)
参考リンク ☁ http://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/ developerguide/aes-dg.pdf ☁ https://www.elastic.co/guide/en/elasticsearch/reference/current/ index.html ☁ https://speakerdeck.com/johtani/elasticsearchfalseshao-jie-tote-zheng- cross-2015
☁ http://soramame.taiki.go.jp/ ☁ http://inokara.hateblo.jp/entry/2015/12/05/181358 ☁ http://inokara.hateblo.jp/entry/2015/12/06/192436 ☁ http://inokara.hateblo.jp/entry/2015/12/10/224031
質問…(はお⼿柔らかに…)
提供
None