DrawingProcess
๋“œํ”„ DrawingProcess
DrawingProcess
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
ยซ   2025/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (964)
    • Profile & Branding (22)
      • Career (15)
    • IT Trends (254)
      • Conference, Faire (Experien.. (31)
      • News (187)
      • Youtube (19)
      • TED (8)
      • Web Page (2)
      • IT: Etc... (6)
    • Contents (97)
      • Book (66)
      • Lecture (31)
    • Project Process (94)
      • Ideation (0)
      • Study Report (34)
      • Challenge & Award (22)
      • 1Day1Process (5)
      • Making (5)
      • KRC-FTC (Team TC(5031, 5048.. (10)
      • GCP (GlobalCitizenProject) (15)
    • Study: ComputerScience(CS) (72)
      • CS: Basic (9)
      • CS: Database(SQL) (5)
      • CS: Network (14)
      • CS: OperatingSystem (3)
      • CS: Linux (39)
      • CS: Etc... (2)
    • Study: Software(SW) (95)
      • SW: Language (29)
      • SW: Algorithms (1)
      • SW: DataStructure & DesignP.. (1)
      • SW: Opensource (15)
      • SW: Error Bug Fix (43)
      • SW: Etc... (6)
    • Study: Artificial Intellige.. (149)
      • AI: Research (1)
      • AI: 2D Vision(Det, Seg, Tra.. (35)
      • AI: 3D Vision (70)
      • AI: MultiModal (3)
      • AI: SLAM (0)
      • AI: Light Weight(LW) (3)
      • AI: Data Pipeline (7)
      • AI: Machine Learning(ML) (1)
    • Study: Robotics(Robot) (33)
      • Robot: ROS(Robot Operating .. (9)
      • Robot: Positioning (8)
      • Robot: Planning & Control (7)
    • Study: DeveloperTools(DevTo.. (83)
      • DevTool: Git (12)
      • DevTool: CMake (13)
      • DevTool: NoSQL(Elastic, Mon.. (25)
      • DevTool: Container (17)
      • DevTool: IDE (11)
      • DevTool: CloudComputing (4)
    • ์ธ์ƒ์„ ์‚ด๋ฉด์„œ (64)
      • ๋‚˜์˜ ์ทจ๋ฏธ๋“ค (7)
      • ๋‚˜์˜ ์ƒ๊ฐ๋“ค (42)
      • ์—ฌํ–‰์„ ๋– ๋‚˜์ž~ (10)
      • ๋ถ„๊ธฐ๋ณ„ ํšŒ๊ณ  (5)

๊ฐœ๋ฐœ์ž ๋ช…์–ธ

โ€œ ๋งค์ฃผ ๋ชฉ์š”์ผ๋งˆ๋‹ค ๋‹น์‹ ์ด ํ•ญ์ƒ ํ•˜๋˜๋Œ€๋กœ ์‹ ๋ฐœ๋ˆ์„ ๋ฌถ์œผ๋ฉด ์‹ ๋ฐœ์ด ํญ๋ฐœํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด๋ผ.
์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ด๋Ÿฐ ์ผ์ด ํ•ญ์ƒ ์ผ์–ด๋‚˜๋Š”๋ฐ๋„ ์•„๋ฌด๋„ ๋ถˆํ‰ํ•  ์ƒ๊ฐ์„ ์•ˆ ํ•œ๋‹ค. โ€

- Jef Raskin

๋งฅ์˜ ์•„๋ฒ„์ง€ - ์• ํ”Œ์ปดํ“จํ„ฐ์˜ ๋งคํ‚จํ† ์‹œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฃผ๋„

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
DrawingProcess

๋“œํ”„ DrawingProcess

Study: DeveloperTools(DevTool)/DevTool: NoSQL(Elastic, Mongo)

[Elastic] ELK Stack: Elasticsearch ์ •๋ฆฌ(NoSQL Document DB)

2022. 8. 31. 21:06
๋ฐ˜์‘ํ˜•
๐Ÿ’ก ๋ณธ ๋ฌธ์„œ๋Š” ELK Stack ์ค‘ 'Elasticsearch'์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋†“์€ ๊ธ€์ž…๋‹ˆ๋‹ค.
ํ‰์†Œ์— ELK Stack์— ๊ด€์‹ฌ์ด ์žˆ๊ฑฐ๋‚˜ Elasticsearch๋ฅผ ์ž…๋ฌธํ•˜๊ณ  ์‹ถ์œผ์‹  ๋ถ„๋“ค์„ ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

1. Elasticsearch ์†Œ๊ฐœ

1.1 Elastic Stack (ELK Stack)

  • E(Elasticsearch): ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๊ฒ€์ƒ‰
  • L(Logstash): ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘
    • ๋กœ๊ทธ ์Šคํƒœ์‹œ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ž…๋ ฅ, ๋ณ€ํ™˜, ์ถœ๋ ฅ์„ ์‹ค์‹œ๊ฐ„ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์—”์ง„.
    • ๋‹ค์–‘ํ•œ ์ž…๋ ฅ ์†Œ์Šค์—์„œ ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘(Ingest)ํ•˜์—ฌ ๋ณ€ํ™˜ํ•œ ํ›„ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” "์Šคํƒœ์‹œ(Stash)-๋ณด๊ด€์†Œ"(Elasticsearch)๋กœ ์ „์†ก
  • K(Kibana): ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋ฐ ๋ฆฌํฌํŒ… ๋ถ„์„
    • ํ‚ค๋ฐ”๋‚˜๋Š” ์—˜๋ผ์Šคํ‹ฑ์„œ์น˜์™€ ์—ฐ๋™ํ•˜์—ฌ ๋™์ž‘ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”(๋ฆฌํฌํŒ…) ๋ฐ ๋ถ„์„

1.2 Elasticsearch ํŠน์ง•

Name Elasticsearch 
Description A distributed, RESTful modern search and analytics engine based on Apache Lucene 
Primary database model Search engine
Secondary database models Document store
Spatial DBMS
Technical documentation www.elastic.co/­guide/­en/­elasticsearch/­reference/­current/­index.html
Developer Elastic
Initial release 2010
Current release 7.8.0, June 2020
License  Open Source (Lisence: Apache 2.0)
Cloud-based only  no
DBaaS offerings (sponsored links)   
Implementation language Java
Data scheme schema-free 
Typing  yes
Secondary indexes yes 
SQL  SQL-like query language
APIs and other access methods Java API
RESTful HTTP/JSON API
  • ๋”์šฑ ์ž์„ธํ•œ ๋‚ด์šฉ์€ DB-Engines Ranking: Elasticsearch ๋ถ€๋ถ„์„ ์ฐธ๊ณ ํ•ด์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

1.3 Elasticsearch ์„ธ๋ถ€ ํŠน์ง•

  • ์ „๋ฌธ(full-text) ๊ฒ€์ƒ‰, ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ์˜ ์‹ค์‹œ๊ฐ„ ๋ถ„์„
  • ๋ถ„์‚ฐ ์‹œ์Šคํ…œ
    • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…ธ๋“œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ‰์ธ(Indexing)ํ•˜๊ณ  ๊ฒ€์ƒ‰, ์ €์žฅ
      • ํ•ญ์ƒ ์ผ์ •ํ•œ ๋ฐ์ดํ„ฐ ๋ณต์‚ฌ๋ณธ์˜ ๊ฐœ์ˆ˜๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ ๋†’์€ ๊ฐ€์šฉ์„ฑ๊ณผ ์•ˆ์ •์„ฑ ๋ณด์žฅ
    • ๋…ธ๋“œ๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค
    • ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ(data store)
      • ์ˆ˜๋ฐฑ ๋Œ€์˜ ์„œ๋ฒ„๋กœ scale out
      • PD ๊ธ‰์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ
  • ์•„ํŒŒ์น˜ ๋ฃจ์”ฌ(Apache Lucene) ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ
    • ๊ณ ์„ฑ๋Šฅ ์ •๋ณด ๊ฒ€์ƒ‰(IR, Information retrieval) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    • Java๋กœ ๊ตฌํ˜„๋œ ์•ˆ์ •์ ์ด๊ณ  ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ
    • Elastic Search = ๋ฃจ์”ฌ์˜ ๊ฒ€์ƒ‰/์ƒ‰์ธ์— ํ•„์š”ํ•œ API๋ฅผ ์ œ๊ณต + ๋ถ„์‚ฐ์ฒ˜๋ฆฌ๋ฅผ ๋น„๋กฏํ•ด ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ

1.4 Elasticsearch ์‚ฌ์šฉ ์‚ฌ๋ก€

์œ„ํ‚คํ”ผ๋””์•„

  • ์ „๋ฌธ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰
  • ์‹ค์‹œ๊ฐ„ ํƒ€์ดํ•‘ ๊ฒ€์ƒ‰
  • ์ถ”์ฒœ ๊ฒ€์ƒ‰์–ด ๊ธฐ๋Šฅ

์Šคํ… ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ

  • ๊ฒ€์ƒ‰ ๋‚ด์šฉ๊ณผ ๊ฒฐ๊ณผ๋ฅผ ํ†ตํ•ฉํ•ด ์œ ์‚ฌํ•œ ์งˆ๋ฌธ๊ณผ ํ•ด๋‹ต์„ ์—ฐ๊ฒฐ

๊นƒํ—ˆ๋ธŒ

  • 1,300์–ต ์ค„์ด ๋„˜๋Š” ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ

๋” ๊ฐ€๋””์–ธ

  • ๋ฐฉ๋ฌธ๊ฐ์˜ ๋กœ๊ทธ ๋ถ„์„
  • ์†Œ์…œ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ ๋ฐ ๋ถ„์„์œผ๋กœ ์‹ค์‹œ๊ฐ„ ์‘๋Œ€
  • ๊ธฐ์‚ฌ์— ๋Œ€ํ•œ ๋ฐ˜์‘ ๋ถ„์„

๊ณจ๋“œ๋งŒ ์‚ญ์Šค

  • ๋งค์ผ 5TB๊ฐ€ ๋„˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ
  • ์ฃผ์‹ ์‹œ์žฅ์˜ ๋ณ€๋™ ๋ถ„์„์— ์‚ฌ์šฉ

2. Elasticsearch ๊ตฌ์กฐ

2.1 Elasticsearch ์ €์žฅ ๊ตฌ์กฐ (RDB์™€ ๋น„๊ต)

๊ธฐ์กด์˜ RDB์™€๋Š” ๋‹ค๋ฅธ ์ €์žฅ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง

RDB table row column schema
Elasticsearch index document (Json) field mapping

2.1.1 index (= ์ธ๋ฑ์Šค = ์ƒ‰์ธ)

  • ๋‹ค์†Œ ๋น„์Šทํ•œ ํŠน์„ฑ์„ ๊ฐ€์ง„ document์˜ ๋ชจ์Œ
  • ์ด๋ฆ„(๋ชจ๋‘ ์†Œ๋ฌธ์ž์—ฌ์•ผ ํ•จ)์œผ๋กœ ์‹๋ณ„
  • ์ด ์ด๋ฆ„์€ ์ƒ‰์ธ์— ํฌํ•จ๋œ ๋ฌธ์„œ์— ๋Œ€ํ•œ ์ƒ‰์ธํ™”, ๊ฒ€์ƒ‰, ์—…๋ฐ์ดํŠธ, ์‚ญ์ œ ์ž‘์—…์—์„œ ํ•ด๋‹น ์ƒ‰์ธ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฐ ์“ฐ์ž„

2.1.2 type (= ํƒ€์ž… = ์œ ํ˜•)

  • ํ•˜๋‚˜์˜ ์ƒ‰์ธ์—์„œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์œ ํ˜•์„ ์ •์˜๊ฐ€๋Šฅ
  • ์œ ํ˜•์ด๋ž€ ์ƒ‰์ธ์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฅ˜/๊ตฌ๋ถ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๊ทธ ์˜๋ฏธ ์ฒด๊ณ„๋Š” ์ „์ ์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฐ์ •.
  • Elasticsearch 6.0๋ถ€ํ„ฐ๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ์— ํ•˜๋‚˜์˜ type๋งŒ ์ง€์›๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ดํ›„ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์‹œ /$index/_doc/$id๋กœ ํ•ด์•ผํ•จ.
    • ๋ฌผ๋ก , ๊ฒ€์ƒ‰์„ ์œ„ํ•œ type์œผ๋กœ๋Š” _search, _bulk ๋“ฑ ๋‹ค์–‘ํ•˜๊ฒŒ ์‚ฌ์šฉํ•จ.

2.1.3 document (= ๋ฌธ์„œ)

  • JSON(JavaScript Object Notation) ํ˜•์‹
  • ํ•˜๋‚˜์˜ ์ƒ‰์ธ/์œ ํ˜•์— ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฌธ์„œ๋ฅผ ์ €์žฅ๊ฐ€๋Šฅ

2.2 Elasticsearch ์•„ํ‚คํ…์ณ ํŠน์ง•

๊ธฐ๋ณธ์ ์œผ๋กœ Elasticsearch๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ผ๋Š” ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ ์ œ๊ณต๋˜๋ฉฐ, ์•„๋ž˜์—์„œ ์ตœ์ƒ์œ„ ๊ฐœ๋…์ธ ํด๋Ÿฌ์Šคํ„ฐ๋ถ€ํ„ฐ ์ตœํ•˜์œ„ ๊ฐœ๋…์ธ ์„ธ๊ทธ๋จผํŠธ๊นŒ์ง€ ํ•˜ํ–ฅ์‹์œผ๋กœ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

2.2.1 ํด๋Ÿฌ์Šคํ„ฐ

  • ๊ธฐ๋ณธ์ ์œผ๋กœ Elasticsearch๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ผ๋Š” ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ ์ œ๊ณต
  • ํด๋Ÿฌ์Šคํ„ฐ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฌผ๋ฆฌ์ ์ธ ๋…ธ๋“œ(์„œ๋ฒ„)๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ํฌ๊ด„ํ•˜๋Š” ํ†ตํ•ฉ ์ƒ‰์ธํ™” ๋ฐ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณต
  • ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ elasticsearch ๋ผ๋Š” ๊ณ ์œ ํ•œ ์ด๋ฆ„์œผ๋กœ ์‹๋ณ„
  • ๋™์ผํ•œ ํด๋Ÿฌ์Šคํ„ฐ ์ด๋ฆ„์„ ์„œ๋กœ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ ์žฌ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋จ

2.2.2 ๋…ธ๋“œ

  • ๋…ธ๋“œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ผ๋ถ€์ด๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ธ๋ฑ์‹ฑ ๋ฐ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์— ์ฐธ์—ฌํ•˜๋Š” ๋‹จ์ผ ์„œ๋ฒ„
  • ๋…ธ๋“œ ๋‚ด์—” ๋ฃจ์”ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด๋Š” ES์˜ ๊ทผ๊ฐ„์„ ์ด๋ฃจ๋Š” ํ•ต์‹ฌ ๋ชจ๋“ˆ
  • ๊ธฐ๋ณธ ์ด๋ฆ„์€ ์‹œ์ž‘ ์‹œ ๋…ธ๋“œ์— ์ง€์ •๋˜๋Š” ์ž„์˜ UUID(Universally Unique IDentifier)์ด๋ฉฐ, ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ •์˜ ๊ฐ€๋Šฅ
  • ๋‹จ์ผ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์›ํ•˜๋Š” ๋งŒํผ์˜ ๋…ธ๋“œ๋ฅผ ์†Œ์œ  ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋‹จ์ผ ๋…ธ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ `elasticsearch`๋ผ๋Š” ์ด๋ฆ„์˜ ์ƒˆ๋กœ์šด ๋‹จ์ผ ๋…ธ๋“œ ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ

+ ๋…ธ๋“œ ๋ฐ”์ธ๋”ฉ

  • ๊ฐ™์€ ํด๋Ÿฌ์Šคํ„ฐ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์‹คํ–‰๋œ ๋…ธ๋“œ๋Š” ์ž๋™์œผ๋กœ ๋ฐ”์ธ๋”ฉ
  • 9200๋ฒˆ ๋ถ€ํ„ฐ REST API๋ฅผ ์œ„ํ•œ HTTP ํ†ต์‹  ํฌํŠธ๊ฐ€ ํ• ๋‹น
  • 9300๋ฒˆ ๋ถ€ํ„ฐ ๋…ธ๋“œ๊ฐ„ ๋ฐ”์ธ๋”ฉ์„ ์œ„ํ•œ ํฌํŠธ๋กœ ํ• ๋‹น

2.2.3 ์ƒค๋“œ & ๋ณต์‚ฌ๋ณธ(๋ฆฌํ”Œ๋ฆฌ์นด)

  • ์ƒค๋“œ (Shard, Primary Shard)
    • ์ƒ‰์ธ์€ ๋ฐฉ๋Œ€ํ•œ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ๊ฐ€๋Šฅํ•˜๊ธฐ์— ๋‹จ์ผ ๋…ธ๋“œ์˜ ๋””์Šคํฌ์—์„œ ์ˆ˜์šฉํ•˜์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰ ์š”์ฒญ ์ฒ˜๋ฆฌ ์‹œ ์†๋„๊ฐ€ ๋„ˆ๋ฌด ๋А๋ ค์ง
    • ์ƒค๋“œ๋Š” ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์„ ์œ„ํ•ด ๊ตฌ๋ถ„๋˜๋Š” ์ตœ์†Œ ๋‹จ์œ„๋กœ ์ƒ‰์ธ์„ ์ƒค๋“œ๋กœ ๋ถ„ํ• ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณต
      • ์ž‘์—…์„ ์—ฌ๋Ÿฌ ์ƒค๋“œ์— ๋ถ„์‚ฐ ๋ฐฐ์น˜ํ•˜๊ณ  ๋ณ‘๋ ฌํ™”ํ•จ์œผ๋กœ์จ ์„ฑ๋Šฅ/์ฒ˜๋ฆฌ๋Ÿ‰ ํ–ฅ์ƒ
  • ๋ฆฌํ”Œ๋ฆฌ์นด (Replica, Replica Shard)
    • ์ƒ‰์ธ์˜ ์ƒค๋“œ์— ๋Œ€ํ•ด ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ณต์‚ฌ๋ณธ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋ฅผ '๋ฆฌํ”Œ๋ฆฌ์นด ์ƒค๋“œ(replica shard)' ์ค„์—ฌ์„œ '๋ฆฌํ”Œ๋ฆฌ์นด'๋ผ๊ณ  ํ•จ
    • ๋ฆฌํ”Œ๋ฆฌ์นด๋ฅผ ๋งŒ๋“œ๋Š” ๋ณต์ œ๊ฐ€ ์ค‘์š”ํ•œ ์ด์œ 
      • ๋ฆฌํ”Œ๋ฆฌ์นด ์ƒค๋“œ๋Š” ๊ทธ ์›๋ณธ์ธ ๊ธฐ๋ณธ ์ƒค๋“œ์™€ ๋™์ผํ•œ ๋…ธ๋“œ์— ๋ฐฐ์ •๋˜์ง€ ์•Š๊ธฐ์— ์ƒค๋“œ/๋…ธ๋“œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ Failover ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋™์ž‘
        • Primary shard ๊ฐ€ ํฌํ•จ๋œ ๋…ธ๋“œ ๋‹ค์šด ์‹œ ES๋Š” replicas ์ค‘ ํ•˜๋‚˜๋ฅผ Primary ๋กœ ์Šน๊ฒฉํ•˜๊ณ  ๊ณ„์† ์„œ๋น„์Šค๋ฅผ ์ด์–ด๊ฐ
        • Failover(์‹œ์Šคํ…œ ๋Œ€์ฒด ์ž‘๋™): ํ‰์†Œ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ฒ„์™€ ๊ทธ ์„œ๋ฒ„์˜ ํด๋ก  ์„œ๋ฒ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ฐ€ ์‚ฌ์šฉ ์„œ๋ฒ„๊ฐ€ ์žฅ์• ๋กœ ์‚ฌ์šฉ์ด ์–ด๋ ต๊ฒŒ ๋˜์—ˆ์„ ๊ฒฝ์šฐ ํด๋ก  ์„œ๋ฒ„๋กœ ๊ทธ ์ผ์„ ๋Œ€์‹  ์ฒ˜๋ฆฌํ•˜๊ฒŒ ํ•ด์„œ ๋ฌด์ •์ง€ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ฒŒ ํ•ด ์ฃผ๋Š” ๊ฒƒ์„ ์˜๋ฏธ
      • ๋ชจ๋“  ๋ฆฌํ”Œ๋ฆฌ์นด์—์„œ ๋ณ‘๋ ฌ ๋ฐฉ์‹์œผ๋กœ ๊ฒ€์ƒ‰์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฒ€์ƒ‰ ๋ณผ๋ฅจ/์ฒ˜๋ฆฌ๋Ÿ‰์„ ํ™•์žฅ๊ฐ€๋Šฅ
  • ์ธ๋ฑ์Šค๋ณ„ ๊ธฐ๋ณธ ์ƒค๋“œ & ๋ฆฌํ”Œ๋ฆฌ์นด ๊ตฌ์„ฑ
    • ๊ธฐ๋ณธ์ ์œผ๋กœ Elasticsearch์˜ ๊ฐ ์ƒ‰์ธ์€ ๊ธฐ๋ณธ ์ƒค๋“œ 5๊ฐœ, ๋ฆฌํ”Œ๋ฆฌ์นด 1๊ฐœ ๊ฐ–์Œ
    • ๋”ฐ๋ผ์„œ ํด๋Ÿฌ์Šคํ„ฐ์— ์ตœ์†Œํ•œ 2๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ƒ‰์ธ์€ ๊ธฐ๋ณธ ์ƒค๋“œ 5๊ฐœ, ๋ฆฌํ”Œ๋ฆฌ์นด ์ƒค๋“œ 5๊ฐœ(์™„์ „ํ•œ ๋ฆฌํ”Œ๋ฆฌ์นด 1๊ฐœ)๋ฅผ ๊ฐ€์ง€๋ฏ€๋กœ ์ƒ‰์ธ๋‹น ์ด 10๊ฐœ์˜ ์ƒค๋“œ๊ฐ€ ์กด์žฌํ•˜๊ฒŒ ๋จ.

2.2.4 ์„ธ๊ทธ๋จผํŠธ(Segment)

  • document ๋“ค์€ ๋น ๋ฅธ ๊ฒ€์ƒ‰์— ์œ ๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋œ ํŠน์ˆ˜ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ €์žฅ๋จ
  • ์ƒค๋“œ ๋‚ด๋ถ€์—” Lucene ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๋ฉฐ, ์ด๋ฅผ ์ด์šฉํ•ด ๋Œ€๋ถ€๋ถ„์˜ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จ
  • ๋ฃจ์”ฌ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ‰์ธ๋˜๋ฉด ๋ฐ์ดํ„ฐ๋Š” ์ตœ์†Œ ๋‹จ์œ„์ธ ํ† ํฐ์œผ๋กœ ๋ถ„๋ฆฌ๋˜๊ณ , Segment ๋ผ๋Š” ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ €์žฅ๋จ
  • ์„ธ๊ทธ๋จผํŠธ๋Š” ์ฝ๊ธฐ์— ์ตœ์ ํ™”๋œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์—ญ์ƒ‰์ธ์ด๋ž€ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜๋˜์–ด ๋ฌผ๋ฆฌ์  ๋””์Šคํฌ์— ์ €์žฅ๋จ
  • ๊ฒ€์ƒ‰์—”์ง„ ํŠน์„ฑ์ƒ ์“ฐ๊ธฐ๋ณด๋‹ค ์ฝ๊ธฐ ๋น„์ค‘์ด ๋น„๊ต์  ๋†’๊ธฐ์—, ์ข€ ๋” ํšจ์œจ์ ์œผ๋กœ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณ ์•ˆ๋œ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋กœ ์—ญ์ƒ‰์ธ ๊ตฌ์กฐ์ž„

์ฐธ๊ณ 

  • [Elasticsearch] Official Contents: https://www.elastic.co/guide/kr/elasticsearch/reference/current/gs-basic-concepts.html
  • [Elasticsearch] Official Index & Shards: https://esbook.kimjmin.net/03-cluster/3.2-index-and-shards 
  • elastic search ๊ฐ€์ด๋“œ๋ถ: https://esbook.kimjmin.net/ 
  • ์ˆœ์ฒœํ–ฅ๋Œ€ํ•™๊ต ๊ต์œก์ž๋ฃŒ: http://cs.sch.ac.kr/lecture/BigData/2017/03-ElasticSearch-Introduction.pdf
  •  Elastic Search ์ž…๋ฌธ: https://www.slideshare.net/seunghyuneom/elastic-search-52724188
  • Elastic Search ์ ์šฉ ๋ฐ ํ™œ์šฉ: https://www.slideshare.net/JunyiSong1/elasticsearch-45936425 
๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Study: DeveloperTools(DevTool) > DevTool: NoSQL(Elastic, Mongo)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Elastic] ELK Stack: Kibana ์ •๋ฆฌ  (0) 2022.09.02
[Elastic] ELK Stack: Logstash ์ •๋ฆฌ  (2) 2022.09.01
[Elastic] ELK Stack์ด๋ž€? ๊ธฐ๋ณธ ๊ฐœ๋… ์ ๋ฆฝ  (0) 2022.08.30
[Elastic] Elasticsearch ๋ฐ์ดํ„ฐ ํƒ€์ž…: ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ์ž…๋ ฅํ•ด์•ผ ๋ถ„๋ฅ˜, ์—ฐ์‚ฐ, ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ!  (0) 2022.08.26
[Elastic] Elasticsearch ์ธ๋ฑ์Šค ์ƒ์„ฑ ๋ฐ ์‚ญ์ œ: shards, replica, mapping...  (0) 2022.08.26
    'Study: DeveloperTools(DevTool)/DevTool: NoSQL(Elastic, Mongo)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Elastic] ELK Stack: Kibana ์ •๋ฆฌ
    • [Elastic] ELK Stack: Logstash ์ •๋ฆฌ
    • [Elastic] ELK Stack์ด๋ž€? ๊ธฐ๋ณธ ๊ฐœ๋… ์ ๋ฆฝ
    • [Elastic] Elasticsearch ๋ฐ์ดํ„ฐ ํƒ€์ž…: ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ์ž…๋ ฅํ•ด์•ผ ๋ถ„๋ฅ˜, ์—ฐ์‚ฐ, ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ!
    DrawingProcess
    DrawingProcess
    ๊ณผ์ •์„ ๊ทธ๋ฆฌ์ž!

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”