[ElasticSearch] ElasticSearch ๋ž€?

hyouzlยท2025๋…„ 2์›” 25์ผ
0

๐Ÿ“Œ ElasticSearch๋ž€?

ElasticSearch(ES)๋Š” Elasticsearch๋Š” Apache Lucene๊ธฐ๋ฐ˜์˜ Java ์˜คํ”ˆ์†Œ์Šค ๋ถ„์‚ฐ ๊ฒ€์ƒ‰ ์—”์ง„์œผ๋กœ, ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์‹ค์‹œ๊ฐ„ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋œ ์˜คํ”ˆ์†Œ์Šค ๊ฒ€์ƒ‰ ์—”์ง„์ด๋‹ค. JSON ๊ธฐ๋ฐ˜์˜ RESTful API๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, Apache Lucene์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.

๐Ÿ” ์ฃผ์š”ํŠน์ง•

Apache Lucene ๊ธฐ๋ฐ˜ โ†’ ์—ญ์ƒ‰์ธ(Inverted Index) ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น ๋ฅธ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ์—์„œ๋„ ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰ ๋ฐ ๋ถ„์„ ๊ฐ€๋Šฅํ•˜๋‹ค.
ํ•œ๊ธ€ ๊ฒ€์ƒ‰ ์‹œ Nori Analyzer ๊ฐ™์€ ํ† ํฐํ™”(Tokenizer) ๋ฐ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ํ™œ์šฉ ๊ฐ€๋Šฅ

โ“ ์—ญ์ƒ‰์ธ (inverted index)

์‰ฝ๊ฒŒ ๋งํ•ด์„œ ์ฑ…์—์„œ ๋งจ ์•ž์— ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ชฉ์ฐจ๊ฐ€ index์ด๊ณ ,
์ฑ… ๋งจ ๋’ค์— ํ‚ค์›Œ๋“œ๋งˆ๋‹ค ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์ฐพ์•„๋ณด๊ธฐ๊ฐ€ inverted idnex์ด๋‹ค.
Elasticsearch๋Š” ํ…์ŠคํŠธ๋ฅผ ํŒŒ์‹ฑํ•ด์„œ ๊ฒ€์ƒ‰์–ด ์‚ฌ์ „์„ ๋งŒ๋“  ๋‹ค์Œ์— inverted index ๋ฐฉ์‹์œผ๋กœ ํ…์ŠคํŠธ๋ฅผ ์ €์žฅํ•œ๋‹ค.

2๏ธโƒฃ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ (Scalability & Fault Tolerance)

์ƒค๋”ฉ(Sharding)๊ณผ ๋ณต์ œ(Replication) ์ง€์› โ†’ ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๋…ธ๋“œ์— ๋ถ„์‚ฐ ์ €์žฅ๋œ๋‹ค.
๋…ธ๋“œ ์ถ”๊ฐ€ ์‹œ ์ž๋™์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ถ„๋ฐฐ ๋ฐ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ์ˆ˜ํ–‰ํ•˜๊ณ , ํ•˜๋‚˜์˜ ๋…ธ๋“œ๊ฐ€ ๋‹ค์šด๋˜๋”๋ผ๋„ ๋‹ค๋ฅธ ๋…ธ๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ ์ œ๊ณต ๊ฐ€๋Šฅํ•œ ๊ณ ๊ฐ€์šฉ์„ฑ์ด ํŠน์ง•์ด๋‹ค.

3๏ธโƒฃ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ

๊ฒ€์ƒ‰ ์š”์ฒญ ์‹œ ์ฆ‰๊ฐ์ ์ธ ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋•Œ๋ฌธ์— ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ๋ถ„์„ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์—์„œ ํ™œ์šฉ๋œ๋‹ค.
Elastic Stack(ELK: Elasticsearch + Logstash + Kibana)๊ณผ ์—ฐ๋™ํ•˜์—ฌ ๋Œ€์‹œ๋ณด๋“œ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•˜๋‹ค.

4๏ธโƒฃ ๊ฐ•๋ ฅํ•œ ๋ถ„์„ ๊ธฐ๋Šฅ (Aggregation)

SQL์˜ GROUP BY ๊ธฐ๋Šฅ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ ์ง‘๊ณ„ ๋ฐ ํ†ต๊ณ„ ๋ถ„์„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋˜ํ•œ ํ‰๊ท , ์ตœ๋Œ€๊ฐ’, ์ตœ์†Œ๊ฐ’, ํžˆ์Šคํ† ๊ทธ๋žจ ๋ถ„์„๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

5๏ธโƒฃ RESTful API ๊ธฐ๋ฐ˜

JSON ๊ธฐ๋ฐ˜ REST API ์ œ๊ณตํ•˜์—ฌ ์‰ฝ๊ฒŒ ์š”์ฒญ ๋ฐ ์‘๋‹ต ๊ฐ€๋Šฅํ•˜๋‹ค.
HTTP ์š”์ฒญ์„ ํ†ตํ•ด CRUD(Create, Read, Update, Delete) ์ˆ˜ํ–‰ํ•œ๋‹ค.

6๏ธโƒฃ ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ (Schema-Free)

JSON ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์—ฌ ์Šคํ‚ค๋งˆ๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•˜๋‹ค.
๊ธฐ์กด RDBMS์ฒ˜๋Ÿผ ํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ๋ฅผ ์—„๊ฒฉํ•˜๊ฒŒ ์ •์˜ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
Dynamic Mapping ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ์‹œ ์ž๋™์œผ๋กœ ํ•„๋“œ ํƒ€์ž…์ด ๊ฒฐ์ •๋œ๋‹ค.

ElasticSearch ํด๋Ÿฌ์Šคํ„ฐ ๋ž€?

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

๐Ÿค” ํด๋Ÿฌ์Šคํ„ฐ ์•ˆ ๋…ธ๋“œ๋Š” ์–ด๋–ค ์ผ์„ ํ• ๊นŒ?

ES ํด๋Ÿฌ์Šคํ„ฐ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…ธ๋“œ(์„œ๋ฒ„)๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์—ญํ• ์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๋…ธ๋“œ๊ฐ€ ์žˆ๋‹ค.

Master Node | ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ(๋…ธ๋“œ ์ถ”๊ฐ€/์ œ๊ฑฐ, ์ƒค๋“œ ๋ฐฐ์น˜)
Data Node | ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๊ฒ€์ƒ‰, ์ง‘๊ณ„ ์ฒ˜๋ฆฌ
Ingest Node | ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์ „ ์ฒ˜๋ฆฌ(ํ•„ํ„ฐ๋ง, ๋ณ€ํ™˜)
Coordinator Node | ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ๋ผ์šฐํŒ…(๋ถ€ํ•˜ ๋ถ„์‚ฐ)
Machine Learning Node | ๋จธ์‹ ๋Ÿฌ๋‹ ๊ธฐ๋ฐ˜ ์ด์ƒ ํƒ์ง€ ์ˆ˜ํ–‰

๐Ÿ” ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐฉ๋ฒ•

ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ์ƒค๋”ฉ(Sharding)๊ณผ ๋ณต์ œ(Replication) ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์ƒค๋“œ(Shard)๋ž€?

โœ” ํ•˜๋‚˜์˜ ์ธ๋ฑ์Šค๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆˆ ๊ฒƒ (RDB์˜ ํŒŒํ‹ฐ์…”๋‹๊ณผ ์œ ์‚ฌ)
โœ” ์ƒค๋“œ ๋‹จ์œ„๋กœ ์—ฌ๋Ÿฌ ๋…ธ๋“œ์— ๋ถ„์‚ฐ ์ €์žฅ โ†’ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ์†๋„ ํ–ฅ์ƒ

product_index
โ”œโ”€โ”€ Shard 1 โ†’ Node 2
โ”œโ”€โ”€ Shard 2 โ†’ Node 3
โ”œโ”€โ”€ Shard 3 โ†’ Node 4

๋ณต์ œ(Replica)๋ž€?

โœ” ์ƒค๋“œ(Shard)์˜ ๋ณต์‚ฌ๋ณธ์„ ์ƒ์„ฑํ•˜์—ฌ ๋ฐฑ์—… ๋ฐ ์žฅ์•  ๋Œ€์‘
โœ” ํ•˜๋‚˜์˜ ์ƒค๋“œ๊ฐ€ ์†์‹ค๋˜๋”๋ผ๋„ ๋ณต์ œ๋ณธ(Replica) ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์œ ์ง€ ๊ฐ€๋Šฅ
โœ” ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ ํ–ฅ์ƒ(์—ฌ๋Ÿฌ ๋ณต์ œ๋ณธ์—์„œ ๋™์‹œ์— ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ)

product_index
โ”œโ”€โ”€ Shard 1 (Node 2) โ†’ Replica 1 (Node 3)
โ”œโ”€โ”€ Shard 2 (Node 3) โ†’ Replica 2 (Node 4)
โ”œโ”€โ”€ Shard 3 (Node 4) โ†’ Replica 3 (Node 2)

  • ๋ณต์ œ๋ณธ์„ ๋ฐ˜๋“œ์‹œ ๋‹ค๋ฅธ ๋…ธ๋“œ์— ๋ฐฐ์น˜ํ•˜์—ฌ ํ•œ ๋…ธ๋“œ๊ฐ€ ๋‹ค์šด๋˜๋”๋ผ๋„ ๋‹ค๋ฅธ ๋…ธ๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณต
  • ๊ฒ€์ƒ‰ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด Primary์™€ Replica์—์„œ ๋™์‹œ์— ๊ฒ€์ƒ‰์ด ์ˆ˜ํ–‰๋จ โ†’ ๋ถ€ํ•˜๋ฅผ ๋‚˜๋ˆ  ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ

๐Ÿ’ก ํด๋Ÿฌ์Šคํ„ฐ ์šด์˜ ์‹œ ๊ณ ๋ คํ•  ์ 

๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ•๋ ฅํ•œ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ๊ณผ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ์šด์˜ ์‹œ ๋ช‡๊ฐ€์ง€ ๊ณ ๋ คํ•ด์•ผํ•  ์‚ฌํ•ญ๋“ค์ด ์žˆ๋‹ค.

1. ๋†’์€ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰ (CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ I/O)

  • ElasticSearch๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ์—ญ์ƒ‰์ธ(Inverted Index) ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ด ๊ณผ์ •์—์„œ CPU ์—ฐ์‚ฐ๋Ÿ‰์ด ๋งŽ๊ณ , JVM ํž™ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•จ.

  • ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ, ๋””์Šคํฌ I/O ๋ถ€ํ•˜๋„ ์ƒ๋‹นํžˆ ํผ.

    โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
    : JVM Heap ๋ฉ”๋ชจ๋ฆฌ ์กฐ์ • (ES_HEAP_SIZE ์„ค์ •)
    ๋…ธ๋“œ ๊ฐ„ ๋ถ€ํ•˜ ๋ถ„์‚ฐ (๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ)
    ๊ณ ์„ฑ๋Šฅ SSD ์‚ฌ์šฉ (๋””์Šคํฌ I/O ๋ณ‘๋ชฉ ํ•ด๊ฒฐ)

2. ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜ ๊ฐ€๋Šฅ์„ฑ

  • ElasticSearch๋Š” ์‹ค์‹œ๊ฐ„ ์ƒ‰์ธ(near real-time indexing) ์„ ์ง€์›ํ•˜์ง€๋งŒ, ์™„์ „ํ•œ ํŠธ๋žœ์žญ์…˜ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Œ.
    -> ํŠน์ • ์‹œ์ ์—์„œ Primary Shard์™€ Replica Shard ๊ฐ„ ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ

    โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
    : Refresh Interval ์กฐ์ • (index.refresh_interval ์กฐ์ ˆ)
    ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ RDB์™€ ๋ณ‘ํ–‰ ์‚ฌ์šฉ

3. ํด๋Ÿฌ์Šคํ„ฐ ์šด์˜ ๋ณต์žก์„ฑ

  • ์ƒค๋“œ ๊ฐœ์ˆ˜, ๋ณต์ œ๋ณธ ๊ด€๋ฆฌ ๋“ฑ ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ๊ฐ€ ๋ณต์žกํ•จ.
    ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์ƒค๋“œ ๊ฐœ์ˆ˜ ์กฐ์ •์ด ์–ด๋ ค์›Œ์ง€๊ณ , ๋…ธ๋“œ ํ™•์žฅ ์‹œ ๋ฐ์ดํ„ฐ ๋ฆฌ๋ฐธ๋Ÿฐ์‹ฑ์ด ํ•„์š”ํ•จ.

    โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
    : ํด๋Ÿฌ์Šคํ„ฐ ์šด์˜์„ ์ž๋™ํ™”ํ•˜๋Š” Elastic Cloud, Kubernetes ๊ธฐ๋ฐ˜ ์šด์˜ ๊ณ ๋ ค
    ์ƒค๋“œ ๊ฐœ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ ์–‘์— ๋งž์ถฐ ์ ์ ˆํžˆ ์„ค์ •(๋„ˆ๋ฌด ๋งŽ๊ฑฐ๋‚˜ ์ ์œผ๋ฉด ์„ฑ๋Šฅ ์ €ํ•˜)

4. ์žฅ์•  ๋ฐœ์ƒ ์‹œ ํด๋Ÿฌ์Šคํ„ฐ ๋ถˆ์•ˆ์ •

  • ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๊ฐ€ ์žฅ์•  ๋‚˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋น„์ •์ƒ ์ƒํƒœ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ.
    ํŠน์ • ๋…ธ๋“œ์—์„œ GC(๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜) ์ง€์—ฐ์ด ๋ฐœ์ƒํ•˜๋ฉด ์ „์ฒด ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋А๋ ค์งˆ ์ˆ˜ ์žˆ์Œ.

    โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
    : ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋ฅผ 3๊ฐœ ์ด์ƒ ์œ ์ง€ (ํ™€์ˆ˜ ๊ฐœ ์„ค์ • ํ•„์ˆ˜)
    JVM GC ํŠœ๋‹ (-XX:+UseG1GC ์„ค์ •)

5. ๋ณด์•ˆ ์ด์Šˆ (๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณด์•ˆ ๊ธฐ๋Šฅ ์—†์Œ)

  • ๊ธฐ๋ณธ์ ์œผ๋กœ ElasticSearch๋Š” ๋ณด์•ˆ ์„ค์ •์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—
    ๋ณ„๋„์˜ ์ธ์ฆ, ๊ถŒํ•œ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐ์ดํ„ฐ ์œ ์ถœ ์œ„ํ—˜์ด ํผ.

    โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
    : x-pack ๋ณด์•ˆ ๊ธฐ๋Šฅ ํ™œ์„ฑํ™” (Elastic Security)
    Kibana์—์„œ Role-Based Access Control(RBAC) ์ ์šฉ
    VPC ๋‚ด๋ถ€์—์„œ ์šด์˜ํ•˜์—ฌ ์™ธ๋ถ€ ์ ‘๊ทผ ์ฐจ๋‹จ

๐Ÿ› ๏ธ ElasticSearch ํด๋Ÿฌ์Šคํ„ฐ ์ ์šฉ ๊ฐ€๋Šฅ ์˜ˆ์‹œ

  1. ๋Œ€๊ทœ๋ชจ ๊ฒ€์ƒ‰ ์„œ๋น„์Šค (์‡ผํ•‘๋ชฐ, ๋‰ด์Šค ํฌํ„ธ, ๋ธ”๋กœ๊ทธ)
  • ์ƒํ’ˆ๋ช…์„ ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋น ๋ฅด๊ฒŒ ์ถ”์ฒœ ์ƒํ’ˆ์„ ๋ณด์—ฌ์คŒ
  • ์ƒํ’ˆ ๊ฐ€๊ฒฉ, ๋ธŒ๋žœ๋“œ, ์นดํ…Œ๊ณ ๋ฆฌ ๋“ฑ ํ•„ํ„ฐ ๊ธฐ๋Šฅ ์ œ๊ณต
  • ์ธ๊ธฐ ๊ฒ€์ƒ‰์–ด ๋ฐ ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ ์ œ๊ณต
  1. ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ๋ถ„์„ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง (ELK Stack)
  • ์„œ๋ฒ„ ์˜ค๋ฅ˜ ๋กœ๊ทธ ๋ชจ๋‹ˆํ„ฐ๋ง (HTTP 500, 404, 403 ๋“ฑ)
  • API ์‘๋‹ต ์†๋„ ๋ถ„์„ ๋ฐ ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง
  • ์‹ค์‹œ๊ฐ„ ๊ฒฝ๊ณ  ์‹œ์Šคํ…œ ๊ตฌ์ถ•
  1. ์ถ”์ฒœ ์‹œ์Šคํ…œ (์‚ฌ์šฉ์ž ํ–‰๋™ ๊ธฐ๋ฐ˜)
  • "์ด ์ƒํ’ˆ์„ ๋ณธ ๊ณ ๊ฐ์ด ๋ณธ ๋‹ค๋ฅธ ์ƒํ’ˆ" ์ถ”์ฒœ
  • ์œ ์‚ฌํ•œ ํ‚ค์›Œ๋“œ๋ฅผ ํฌํ•จํ•œ ์ƒํ’ˆ ์ถ”์ฒœ
  • ์‚ฌ์šฉ์ž์˜ ํด๋ฆญ ๋ฐ ๊ฒ€์ƒ‰ ์ด๋ ฅ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ์ธํ™” ์ถ”์ฒœ

๐Ÿงน ๋А๋‚€์ 

ElasticSearch ์˜ ์ฃผ์š” ๊ธฐ๋Šฅ๋“ค๊ณผ ๋™์ž‘ ์›๋ฆฌ๋“ค์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณด์•˜๋Š”๋ฐ, ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ElasticSearch ํ™œ์šฉํ•œ ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ๋ถ„์„์ด๋ž‘ ์ถ”์ฒœ ์‹œ์Šคํ…œ์„ ์ง์ ‘ ์ ์šฉํ•ด๋ณด๊ณ  ์‹ถ๋‹ค!

profile
๊ธฐ๋ก์˜ ์ค‘์š”์„ฑ์„ ๋А๋ผ๊ณ  ํ–‰๋™์œผ๋กœ ์˜ฎ๊ฒจ๋ณด๋ ค๊ณ  ๋…ธ๋ ฅํ•˜์ง€๋งŒ, ์‰ฝ์ง€ ์•Š์•„์„œ ์žฌ๋ฏธ๋ฅผ ๋ถ™์—ฌ๋ณด๋ ค๊ณ  ํ•˜๋Š” ์ค‘ ... ์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€