Amazon ES に移行をしたら幸せになれるのか? / Moved to Amazon ES
by
Yoshiaki Yoshida
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Amazon ES に移行をしたら 幸せになれるのか? 2017.09.11 CA.io @kakakakakku
Slide 2
Slide 2 text
吉田 慶章 @kakakakakku - プレゼン芸人 - 7/05 : AWS Solution Days 2017 登壇 - 7/21 : JAWS-UG コンテナ支部 登壇 - 8/27 : July Tech Festa 2017 登壇 - 9/08 : CROSS 2017 登壇 - 9/11 : CA.io 登壇 - 9/16 : XP 祭り 2017 登壇 \喋りすぎ/ 今日ココ →
Slide 3
Slide 3 text
僕はマッチングサービスに関係ないです → プレゼン芸人枠
Slide 4
Slide 4 text
さて
Slide 5
Slide 5 text
EC2 で運用されていた とある Elasticsearch を 最近 Amazon ES に移行してみた
Slide 6
Slide 6 text
つらかった
Slide 7
Slide 7 text
移行をして 幸せになれたのかな?
Slide 8
Slide 8 text
まず, 移行前の状況をザックリと
Slide 9
Slide 9 text
総ドキュメント数 3億 調べてみたら, 2億ドキュメントは不要だった
Slide 10
Slide 10 text
総インデックス数 1200 3年間以上も永続化している
Slide 11
Slide 11 text
バージョン Elasticsearch 1.4 比較的古め
Slide 12
Slide 12 text
構成 非クラスタ1台 つらい
Slide 13
Slide 13 text
open_file_descriptors ぐんぐん成長 そろそろ “too many open files” 出そう
Slide 14
Slide 14 text
Amazon ES \救世主?/
Slide 15
Slide 15 text
m3.xlarge 移行前
Slide 16
Slide 16 text
データノード c4.large x 5台 専用マスターノード c3.medium x 3台 Amazon ES 移行後
Slide 17
Slide 17 text
データノード c4.large x 5台 専用マスターノード c3.medium x 3台 Amazon ES 移行後 \圧倒的成長/
Slide 18
Slide 18 text
ハマりポイントなどを紹介
Slide 19
Slide 19 text
スプリットブレインの問題を考慮して 専用マスターノードは3台にする (AWS は奇数台数を推奨している) https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/ developerguide/es-createupdatedomains.html
Slide 20
Slide 20 text
単純に, コスト3倍
Slide 21
Slide 21 text
試しに専用マスターノードを t2.small にして リロケーションをしてみたら
Slide 22
Slide 22 text
\ クラスタ死亡 / 本当に何もできなくなって サポートにクラスタを削除してもらった 専用マスターノードだとしても, t2 は控えましょう
Slide 23
Slide 23 text
次に
Slide 24
Slide 24 text
シャード数 インデックスサイズが 30GB 以下なら シャード数を 1 にする ( デフォルト設定は 5 ) デフォルトのまま 運用してませんか?
Slide 25
Slide 25 text
https://aws.amazon.com/jp/blogs/news/get-started-with-amazon- elasticsearch-service-how-many-shards-do-i-need/
Slide 26
Slide 26 text
アプリケーション側も苦労した
Slide 27
Slide 27 text
Elastica v3.1.1 以降なら AwsAuthV4 トランスポート 対応 https://github.com/ruflin/Elastica \PHP Client/
Slide 28
Slide 28 text
AwsAuthV4 「IAM Role + 署名付きリクエスト」 アプリケーション側に実装が必要だった Amazon ES App
Slide 29
Slide 29 text
Amazon ES のダメな点 \良い点もたくさんあるけど/
Slide 30
Slide 30 text
- VPC 内に配置できない - リロケーション (クラスタ再構成) が遅すぎる - リロケーションに失敗すると, サクッと死亡する - 自動スナップショットからリストアできない - サポートに依頼する必要がある - 札束で殴るしかない - まだまだ他にも...
Slide 31
Slide 31 text
まとめ
Slide 32
Slide 32 text
Amazon ES に移行をして 幸せにはならなかったけど 安定稼働したから良しとする (EC2 のままスケールさせても良かったかも)
Slide 33
Slide 33 text
移行フローで苦労した話などは また別途どこかで話せればと! Elasticsearch on EC2 → Amazon ES
Slide 34
Slide 34 text
http://kakakakakku.hatenablog.com/entry/2016/12/20/000612 運用面のコツは去年まとめた資料参照で!