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 x AutoScaling
Search
mats
June 02, 2015
Technology
0
70
Elasticsearch x AutoScaling
第10回elasticsearch勉強会で使用した資料です。
mats
June 02, 2015
Tweet
Share
More Decks by mats
See All by mats
「生成系AI」と「ソフトウェアライセンス」の今 / Generative AI and OSS License
mats16
4
2.3k
🦜️🔗LangChain入門 / LangChain 101
mats16
1
670
Supabase - AWS DevDay 2022
mats16
3
2.1k
AWS スタートアップ支援プログラム / AWS Activate
mats16
0
1.3k
AWS Startup ゼミ 2021 秋期講習 / AWS Startup Seminar 2021 Autumn class - AWS Dev Day
mats16
4
2.6k
Unicorns run on AWS
mats16
0
310
AWS Startup tech Meetup Online 6
mats16
0
1.1k
シードスタートアップに知っておいてほしいこと / What seed startups need to know
mats16
0
390
Introduction to AWS App Runner
mats16
0
1.1k
Other Decks in Technology
See All in Technology
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
210
Data Hubグループ 紹介資料
sansan33
PRO
0
2.7k
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
670
プロポーザルに込める段取り八分
shoheimitani
1
450
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.5k
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
640
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
310
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
1
450
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.3k
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
370
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
Featured
See All Featured
Abbi's Birthday
coloredviolet
1
4.8k
Leo the Paperboy
mayatellez
4
1.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
68
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
97
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
120
Google's AI Overviews - The New Search
badams
0
910
Six Lessons from altMBA
skipperchong
29
4.2k
Building Adaptive Systems
keathley
44
2.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
My Coaching Mixtape
mlcsv
0
48
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
380
Transcript
Amazon Web Searvice Ͱ࣮ݱ͢Δ elasticsearchͷେنӡ༻ × גࣜձࣾΠϯςΟϝʔτɾϚʔδϟʔɹদాथ
ࣗݾհ দా थ גࣜձࣾΠϯςΟϝʔτɾϚʔδϟʔʢࣾһ໊̕ʣ ։ൃຊ෦ • ύϒϦοΫDMPʮAudienceSearchʯͷ։ൃ • ओʹΠϯϑϥपΓΛ୲
ΞδΣϯμ • IMʹ͓͚ΔelasticsearchͷΘΕํ • elasticsearchͷߏ • ߏͷܾΊํ • AutoScalingͷϙΠϯτ •
ͦͷଞઃఆͷϙΠϯτ
elasticsearchͷΘΕํ ̐ԯͷϢχʔΫIDʹର༷ͯ͠ʑͳଐੑใΛ༩ • Ӿཡཤྺʹجͮ͘Ωʔϫʔυ • ֤ϝσΟΞΑΓఏڙ͞ΕΔηάϝϯτ • User Agent •
ΞΫηεݩIPʹجͮ͘ॅॴاۀใ ҙͷ݅ͰIDΛߜΓࠐΉͨΊʹɺɹɹɹɹɹɹɹɹɹɹɹɹΛ ར༻͍ͯ͠·͢ɻ
AudienceSearchʹ͍ͭͯ ϝσΟΞདྷ๚ऀ ωοτϦαʔν ࠂ৴πʔϧ ˞ɹਤҰྫͰ͢ ཱྀߦʹڵຯ ऩສ ԣࢢॴ
ঁੑ
શମߏ • શͯAWSڥ • Cluster: 1, Type: 1, Node: 86
• master: 3 (master:true, data: false) • data: 80 (master:false, data:true) • searcher: 2 (master:false, data: false) • indexer: 1 (master:false, data: false)ɹ˞όονॲཧ • version: 1.3.8 → 1.5.2 (5/26Ξοϓσʔτ)
શମߏ master data searcher x2 indexer indexerҎ֎ɺશAutoScalingͰӡ༻ x3 x80 ELB
ߏܾఆʹ͍ͭͯ
Cluster Size • Shard = Node ʹݻఆͯ͠ݕূ • 10 ʙ
200 ͱΛมߋ͠ɺԠ࣌ؒΛൺֱ • ʙ100Ґ·ͰʹԠͯ͡ύϑΥʔϚϯε্͕ • 200نͰAggregationͷύϑΥʔϚϯε͕ྼԽ →ɹूܭ݁ՌͷϚʔδίετͷ૿Ճʁ • σʔλ༰ྔΛՃຯ͠ɺ80Ͱελʔτ
Shard • Node = 80 ʹݻఆͯ͠ݕূʢc3.largeʣ (1) shard: 40, replica:
1 ʢshard/node = 0.5ʣ (2) shard: 80, reprica: 1 ʢshard/node = 1ʣ (3) shard: 160, replica:1 ʢshard/node = 2ʣ • shard/node ͕̍Λ͑Δͱܹ͘͠ύϑΥʔϚϯε͕ྼԽ ※ shard/nodeͰͳ͘ɺshard/cpuͷํ͕ॏཁ͔͠Εͳ͍ɾɾ
Instance Size • ΠϯσΫγϯάߴԽͷͨΊɺϩʔΧϧSSDͷੑೳΛॏࢹ →ɹEphemeral DiskΛ̎ͭੵΊΔc3ϑΝϛϦʔ͔Βબ • σʔλྔ͕ଟ͍߹xlargeҎ্ͷํ͕CPʹ༏ΕΔ →ɹجຊతʹՁ͕֨ഒʹͳΔͱɺ༰ྔഒʹͳΔ͕ɺ ɹɹlarge→xlargeͷ࣌ͷΈ30GB→80GB
• JVMͷϝϞϦͷׂྔશମͷ̎ʙׂ̏ʢdoc_valueʣ
AutoScallingͷϙΠϯτ
Why AutoScaling ? AutoScaling͍ͤͯ͞Δཧ༝ • ̍̌̌نͷαʔόΛ̍̍ཧͯ͠ӡ༻͢Δ͜ͱ͕ɺ ਓతʹݫ͔ͬͨ͠ • terminate͢Εݩͷڥ͕࠶ݱՄೳ •
εϙοτΠϯελϯε͕ར༻ՄೳʹͳΔ • ύϥϝʔλΛ͍͡Δ͚ͩͰεέʔϧΞτՄೳ
recoveryͷνϡʔχϯά • LifeCycleʹΑΓఆظతʹΠϯελϯε͕ೖΕସΘΔ͜ͱ͕͋Δ • ଳҬಉ࣌ҠಈՄೳͳγϟʔυΛௐ͠ɺrecoveryʹ͔͔Δ ࣌ؒΛॖ͍ͯ͠Δ • ϨϓϦΧ̍Ͱӡ༻ʢ0ͰΔͱ࣌ʑσʔλ͕ແ͘ͳΓ·͢ʣ indices: recovery:
max_bytes_per_sec: 500mb concurrent_streams: 4
recoveryͷνϡʔχϯά • LifeCycleʹΑΓՃ͞ΕͨΠϯελϯεͷෛՙ • σʔλྔ: 40GB Ͱ10ఔʢc3.xlargeʣ
ΫϥελϦϯάͷߴԽ • elasticsearch-cloud-awsϓϥάΠϯΛར༻ • λάࢦఆͰdiscoveryΛߦ͍ɺmaster nodeʹͷΈλάΛઃఆ͢Δ • SGࢦఆͰର͕ଟ͕͔͔͗ͯ࣌ؒ͢Δ discovery: type:
ec2 ec2: tag: es_cluster: production
ΫϥελϦϯάͷߴԽ • master nodeͷΦʔτεέʔϧͷઃఆ࣌ʹλάΛࢦఆ • ʮaws:autoscaling:groupNameʯλάར༻Մೳʁ
ELBʹΑΔࢹ • ݕࡧΛड͚ͳ͍ϊʔυʹؔͯ͠ɺࢮ׆ࢹ༻ʹELBͱͷ ඥ͚Λઃఆʢmaster, dataʣ • ࢹର9200൪ϙʔτʢ9300ͷํ͕͍͍͔ʣ
ͦͷଞͷϙΠϯτ
Խ • Multi-AZߏͰߏஙʢ˞3ڌҎ্ͷ߹ෆ໌ʣ • ԼهઃఆͰɺࣗϊʔυͷอ࣋͢ΔshardͷreplicaΛɺҟͳΔAZ ͷϊʔυ্ʹஔ͢Δ cluster: routing: allocation: awareness:
attributes: aws_availability_zone
Խ • ”aws_availability_zone”ʹࣗϊʔυͷஔ͞Ε͍ͯΔAZ͕ύϥ ϝʔλͱͯ͠༩͑ΒΕΔʢelasticsearch-cloud-awsʣ • Ұɺյͨ͠ࡍແࣄͰͨ͠ { "attributes" : {
"aws_availability_zone" : "ap-northeast-1c", "master" : "false" } }
ϊʔυ໊Λhostnameʹ͢Δ • ࣗಈͰઃఆ͞ΕΔhostname(ip-10-0-0-1)ʹɺES্ͷϊʔυ໊Λ ߹ΘͤΔ • ΕͯAMIʹݻΊͨΓ͢Δͱɺશϊʔυಉ໊͡લʹɾɾ node: name: ${HOSTNAME} export
HOSTNAME=$(hostname -s) /etc/sysconfig/elasticsearch /etc/elasticsearch/elasticsearch.yml
ࢹ ࢹͷ̏ຊபʢΦʔτεέʔϧͱͷ૬ੑॏࢹʣ • ELBͷϔϧενΣοΫ • MackerelʢϦιʔεɾϓϩηεࢹʣ • Papertrailʢϩάࢹʣ • ʢىಈ/ఀࢭ࣌ͷSlackͷwebhookʣ
ʢࢀߟʣPapertrail master data searcher x2 x3 x80 αʔόʹSSHෆཁͰɺରͷϩάΛtailՄೳ syslog
·ͱΊ • εέʔϧΞτͷ͠қ͞ͰɺAWSͱES૬ੑ͕ྑ͍ • ઃఆ࣍ୈͰ͋Δ͕ɺAutoScallingຊ൪Ͱͷӡ༻ʹ͑͏Δ • Cluster SizeҰఆҎ্͕ඞཁ • ϊʔυͷೖΕସΘΓΛߟྀ͢Δ͜ͱ͕ඞཁ
• 1ͭͷindex͕ԯ݅ϨϕϧͰ͋ͬͯɺelasticsearch࣮༻ʹ ͑ΒΕΔ
ΤϯδχΞืू ࠷৽ͷٕज़ʹڵຯͷ͋Δ৽ϝϯόʔΛืूதͰ͢ʂ ࠾༻ٕज़ ։ൃج൫
͋Γ͕ͱ͏͍͟͝·ͨ͠