Elasticsearch์—์„œ ์ธ๋ฑ์Šค๋Š” ์ƒค๋“œ(Shard)๋ผ๋Š” ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์—ฌ๋Ÿฌ ๋…ธ๋“œ์— ๊ณจ๊ณ ๋ฃจ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
์ƒค๋“œ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐํ•˜์—ฌ ์žฅ์•  ์ƒํ™ฉ์— ๋Œ€๋น„ํ•  ์ˆ˜ ์žˆ๊ณ , ์ถ”๊ฐ€์ ์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ํ™•๋ณดํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒค๋“œ๋Š” MongoDB ๋“ฑ ๋‹ค๋ฅธ ๊ณณ์—์„œ๋„ ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋…์ด์ง€๋งŒ, ์—ฌ๊ธฐ์„œ๋Š” Elasticsearch๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ƒค๋“œ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…

  1. ์ฒ˜์Œ ์ƒ์„ฑ๋œ ์ƒค๋“œ๋ฅผ Primary Shard, ์ด๊ฒƒ์˜ ๋ณต์ œ๋ณธ์„ Replica๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ธฐ๋ณธ๊ฐ’์€ 7.0+ ๋ฒ„์ „ ๊ธฐ์ค€ 1, 1์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ ์ƒค๋“œ ๊ฐœ์ˆ˜๋Š” 1 + 1 = 2๊ฐœ์ž…๋‹ˆ๋‹ค.
    • ์„ค์ •์„ Primary Shard๋Š” 2, Replica๋Š” 3์œผ๋กœ ํ•  ๊ฒฝ์šฐ,
      Primary Shard๋Š” 2๊ฐœ, Replica๋Š” 2 x 3 = 6๊ฐœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
  3. Primary Shard์˜ ์ˆ˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•œ ์ดํ›„์—๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    ๋งŒ์•ฝ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ์ƒˆ๋กœ์šด ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  Re-indexing์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • Replica์˜ ์ˆ˜๋Š” ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  4. Primary Shard๋Š” ์ „๋ฐ˜์ ์ธ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์ž‘์—…์— ์‚ฌ์šฉ๋˜๋ฉฐ, Replica๋Š” ์ฝ๊ธฐ ์ž‘์—…์„ ๋ณด์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  5. Primary Shard ์ผ๋ถ€๊ฐ€ ์œ ์‹ค๋  ๊ฒฝ์šฐ Replica ์ค‘ ํ•˜๋‚˜๊ฐ€ Primary๋กœ ์Šน๊ฒฉ๋˜๊ณ  ์ƒˆ๋กœ Replica๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  6. Primary Shard์™€ Replica๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋…ธ๋“œ์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ตœ์ ์˜ ์ƒค๋“œ ์„ค์ •

์‚ฌ์‹ค ์ตœ์ ์˜ ์ƒค๋“œ ์„ค์ •์ด๋ผ๋Š” ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ์–ผ๋งˆ๋“ ์ง€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
๊ฐ€์žฅ ํ™•์‹คํ•œ ๋ฐฉ๋ฒ•์€ ์ง์ ‘ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ์ง€ํ‘œ๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•„๋ž˜ ํ‘œ๋Š” ์ผ๋ฐ˜์ ์ธ ๊ธฐ์ค€์„ ์ •๋ฆฌํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ธฐ์ค€์„ค๋ช…
Primary Shard ๊ฐœ์ˆ˜Primary Shard๊ฐ€ ์žˆ๋Š” ๋…ธ๋“œ๊ฐ€ ์ฆ๊ฐ€ํ• ์ˆ˜๋ก ์ƒ‰์ธ ์„ฑ๋Šฅ์ด ์ข‹์•„์ง‘๋‹ˆ๋‹ค.1
Replica ๊ฐœ์ˆ˜๋ณดํ†ต ๋Š˜์–ด๋‚ ์ˆ˜๋ก ์ƒ‰์ธ ์„ฑ๋Šฅ์€ ๋–จ์–ด์ง€๊ณ , ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์ด ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค.
์ „์ฒด ์ƒค๋“œ ๊ฐœ์ˆ˜์ƒค๋“œ๊ฐ€ ๋Š˜์–ด๋‚ ์ˆ˜๋ก ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰๋„ ๋Š˜์–ด๋‚˜ ์„ฑ๋Šฅ ์ €ํ•˜์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋…ธ๋“œ๋‹น ์ƒค๋“œ ๊ฐœ์ˆ˜์ „์ฒด ์ƒค๋“œ ๊ฐœ์ˆ˜์™€ ๋น„์Šทํ•œ ๋งฅ๋ฝ์œผ๋กœ, ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•œ ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค.
์ƒค๋“œ์˜ ํฌ๊ธฐ๋ณดํ†ต 20~40Gi ์‚ฌ์ด๋ฅผ ๊ถŒ์žฅํ•˜๋ฉฐ, 50Gi๋ฅผ ๋„˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
Heap ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ด์ฆˆ๊ณต์‹ ๋ธ”๋กœ๊ทธ์—์„œ 1Gi๋‹น ์ƒค๋“œ 20๊ฐœ ์ดํ•˜๋ฅผ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
โ€ฆโ€ฆ

์ฐธ๊ณ  ์ž๋ฃŒ

Footnotes

  1. Primary Shard๊ฐ€ 1๊ฐœ์ผ ๋•Œ ๊ณผ๋„ํ•œ ์ƒ‰์ธ ์ž‘์—…์„ ํ•˜๋ฉด CPU ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ ค ์ƒค๋“œ ์ˆ˜๋ฅผ ๋Š˜๋ฆฐ ์ƒˆ๋กœ์šด ์ธ๋ฑ์Šค์—์„œ ์ž‘์—…ํ•˜๋„๋ก ์•ˆ๋‚ดํ–ˆ๋˜ ์‚ฌ๋ก€๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. โ†ฉ