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
ElasticsearchのHA構成について
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
株式会社Curious Vehicle
December 05, 2025
11
0
Share
ElasticsearchのHA構成について
株式会社Curious Vehicle
December 05, 2025
More Decks by 株式会社Curious Vehicle
See All by 株式会社Curious Vehicle
PQCが変える暗号の世界
curicle
0
13
最近流行ってるClaudeについて
curicle
0
5
機械学習で絶対音感になりたかった
curicle
0
13
BQにおけるSQLアンチパターンとslot消費削減策
curicle
0
16
VibeKanbanについて
curicle
0
10
"バーチャル宮本さん"を作ってみた
curicle
0
8
"バーチャル宮本さん” 本番デプロイ編
curicle
0
14
最近課金しているAIサービスについて
curicle
0
15
Pub_Sub
curicle
0
8
Featured
See All Featured
Paper Plane
katiecoart
PRO
1
49k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Exploring anti-patterns in Rails
aemeredith
3
300
The untapped power of vector embeddings
frankvandijk
2
1.7k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
Why Our Code Smells
bkeepers
PRO
340
58k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.4k
Bash Introduction
62gerente
615
210k
Accessibility Awareness
sabderemane
0
92
How to Talk to Developers About Accessibility
jct
2
170
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.3k
Transcript
ElasticsearchのHA構成につい て 2025年12月 濱田
はじめに • 内容 ◦ Elasticsearchがどのようにして冗長構成をとるか • きっかけ ◦ 業務でElasticsearchを触る機会があってクラスター 構成や仕組みについて調べたら面白かったため
Elasticsearchとは 高速でスケーラブルな分散型検索・分析エンジン JSONドキュメントを保存・検索・分析 ほぼリアルタイムで動作
クラスター構成
クラスター構成 Master Node Data Node shard-1 shard-4 Data Node shard-2
shard-5 Data Node shard-3 shard-6 Master Node • クラスタ設定の管理 • シャード配置の決定 • ノードの監視 • インデックス等のメタデータ 操作 Data Node • データの書き込み • 検索処理
クラスター構成 Master Node Data Node shard-1 shard-4 Data Node shard-2
shard-5 Data Node shard-3 shard-6 Master Node • クラスタ設定の管理 • シャード配置の決定 • ノードの監視 • インデックス等のメタデータ 操作 Data Node • データの書き込み • 検索処理 マスターノードが落ちると クラスターが停止するため冗長化必須
冗長化の仕組み (~6系)
冗長化の仕組み (~6系) Master Node Master Node マスター Master Node マスター候補
マスター候補 ルール① マスターノードは奇数にする ルール② minimum_master_nodes (最小マスターノード数) を正しい値に設定す る elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 ※3台の場合「2」
マスターが落ちたらどうなるか
冗長化の仕組み (~6系) Master Node Master Node Master Node マスター候補 マスター候補
elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 マスター ping ping ※3台の場合「2」 ①マスター停止を検知
冗長化の仕組み (~6系) Master Node Master Node Master Node マスター候補 マスター候補
elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 マスター ※3台の場合「2」 ②最小ノード数を満たしているとき 次のマスターを選定
冗長化の仕組み (~6系) Master Node Master Node Master Node マスター候補 elasticsearch.yml
discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 マスター候補 ※3台の場合「2」 ③ノードIDが小さい方が マスターに昇格 マスター
冗長化の仕組み (~6系) Master Node Master Node Master Node マスター候補 elasticsearch.yml
discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 マスター候補 ※3台の場合「2」 ④復旧後はマスター候補にな る マスター
冗長化の仕組み (~6系) Master Node Master Node Master Node マスター候補 マスター候補
elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 マスター ※3台の場合「2」 最小ノード数を満たさないので クラスターは停止する 2つノードが落ちた場合
ルール① マスターノードは奇数にする ルール② minimum_master_nodes を正しい値に設定する このルールはなぜ存在するか?
冗長化の仕組み (~6系) elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 ※4台の場合「3」
ルール① マスターノードは奇数にする Master Node Master Node Master Node Master Node
冗長化の仕組み (~6系) Master Node elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2)
+1 ※4台の場合「3」 ルール① マスターノードは奇数にする Master Node Master Node Master Node 2:2に分断する可能性
冗長化の仕組み (~6系) Master Node elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2)
+1 ※4台の場合「3」 ルール① マスターノードは奇数にする Master Node Master Node Master Node 最小ノード数を満たさないので クラスターは停止する
冗長化の仕組み (~6系) Master Node Master Node マスター候補 elasticsearch.yml discovery.zen.minimum_master _node:
(マスターノード数 / 2) +1 マスター ※デフォルト「1」 ルール① マスターノードは奇数にする
冗長化の仕組み (~6系) Master Node elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2)
+1 ※デフォルト「1」 ルール① マスターノードは奇数にする ping Master Node マスター 何らかでpingが失敗 マスター候補 Master Node ping
Master Node マスター 冗長化の仕組み (~6系) Master Node elasticsearch.yml discovery.zen.minimum_master _node:
(マスターノード数 / 2) +1 ※デフォルト「1」 ルール① マスターノードは奇数にする ping マスター マスター昇格 -> スプリットブレイン -> データの不整合・破損するリスク
冗長化の仕組み (~6系) elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 ルール②
minimum_master_nodes を正しい値に設定する ※デフォルト「1」 Master Node Master Node マスター Master Node マスター候補 マスター候補
冗長化の仕組み (~6系) ルール② minimum_master_nodes を正しい値に設定する Master Node Master Node マスター
Master Node マスター候補 マスター候補 elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 ※デフォルト「1」
冗長化の仕組み (~6系) ルール② minimum_master_nodes を正しい値に設定する Master Node Master Node Master
Node マスター候補 マスター elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 ※デフォルト「1」 スプリットブレイン -> データの不整合・破損するリスク マスター
Elasticsearch v7 release Voting Configurations 導入
とにかく自動化された
冗長化の仕組み (7系~) Master Node Master Node Master Node Master Node
• マスター選挙が行われる • 投票権が自動的に与えられる(奇数) • 選挙で過半数を獲得するとマスターになれる マスター
冗長化の仕組み (7系~) Master Node Master Node Master Node Master Node
マスター 過半数が見えない -> マスター辞退 マスターが見えない -> マスター選挙立候補
冗長化の仕組み (7系~) Master Node Master Node Master Node Master Node
過半数が見えない -> マスター辞退 マスターが見えない -> マスター選挙立候補 スプリットブレインが起きない マスター
冗長化の仕組み (7系~) Master Node マスター Voting-only Node Master Node 2ノードの場合は
過半数=2 が必要なため投票だけ行うノードを用意する
7系では過半数投票でマスターを自動選出する ため、6系のようにsplit-brainを意識して設定 するっ必要はほとんどない