Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ElasticsearchのHA構成について
Search
株式会社Curious Vehicle
December 05, 2025
27
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ElasticsearchのHA構成について
株式会社Curious Vehicle
December 05, 2025
More Decks by 株式会社Curious Vehicle
See All by 株式会社Curious Vehicle
AI Agent Harness 入門
curicle
0
6
クネビンフレームワークで考える最初の一歩
curicle
0
6
AIガバナンス
curicle
0
7
PQCが変える暗号の世界
curicle
0
49
最近流行ってるClaudeについて
curicle
0
17
機械学習で絶対音感になりたかった
curicle
0
20
BQにおけるSQLアンチパターンとslot消費削減策
curicle
0
35
VibeKanbanについて
curicle
0
16
"バーチャル宮本さん"を作ってみた
curicle
0
15
Featured
See All Featured
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
The SEO identity crisis: Don't let AI make you average
varn
0
590
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Making Projects Easy
brettharned
120
6.8k
Mind Mapping
helmedeiros
1
400
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.1k
Un-Boring Meetings
codingconduct
0
460
Evolving SEO for Evolving Search Engines
ryanjones
0
330
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を意識して設定 するっ必要はほとんどない