Elasticsearch ๋?
๐ Elasticsearch๋ ๋ฌด์์ธ๊ฐ์?
Elasticsearch๋ ํ ์คํธ, ์ซ์, ์์น ๊ธฐ๋ฐ ์ ๋ณด, ์ ํ ๋ฐ ๋น์ ํ ๋ฐ์ดํฐ ๋ฑ ๋ชจ๋ ์ ํ์ ๋ฐ์ดํฐ๋ฅผ ์ํ ๋ฌด๋ฃ ๊ฒ์ ๋ฐ ๋ถ์ ์์ง์ผ๋ก ๋ถ์ฐํ ๋ฐ ๊ฐ๋ฐฉํ์ ํน์ง์ผ๋ก ํฉ๋๋ค. Elasticsearch๋ Apache Lucene์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ผ๋ฉฐ, Elasticsearch N.V.(ํ์ฌ ๋ช ์นญ Elastic)๊ฐ 2010๋ ์ ์ต์ด๋ก ์ถ์ํ์ต๋๋ค. ๊ฐ๋จํ REST API, ๋ถ์ฐํ ํน์ง, ์๋, ํ์ฅ์ฑ์ผ๋ก ์ ๋ช ํ Elasticsearch๋ ๋ฐ์ดํฐ ์์ง, ๋ณด๊ฐ, ์ ์ฅ, ๋ถ์, ์๊ฐํ๋ฅผ ์ํ ๋ฌด๋ฃ ๊ฐ๋ฐฉํ ๋๊ตฌ ๋ชจ์์ธ Elastic Stack์ ํต์ฌ ๊ตฌ์ฑ ์์์ ๋๋ค. ๋ณดํต ELK Stack(Elasticsearch, Logstash, Kibana์ ๋จธ๋ฆฌ๊ธ์)์ด๋ผ๊ณ ํ๋ Elastic Stack์๋ ์ด์ ๋ฐ์ดํฐ๋ฅผ Elasticsearch๋ก ์ ์กํ๊ธฐ ์ํ ๊ฒฝ๋์ ๋ค์ํ ๋ฐ์ดํฐ ์์ง ์์ด์ ํธ์ธ Beats๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
๐ Elasticsearch๋ ์ด๋์ ์ฌ์ฉ๋๋์?
Elasticsearch์ ์๋์ ํ์ฅ์ฑ, ๊ทธ๋ฆฌ๊ณ ์๋ง์ ์ข ๋ฅ์ ์ฝํ ์ธ ๋ฅผ ์์ธํ ์ ์๋ ๋ฅ๋ ฅ์ ๋ค์๊ณผ ๊ฐ์ ๋ค์ํ ์ฌ์ฉ ์ฌ๋ก์ ์ด์ฉ๋ ์ ์๋ค๋ ๋ป์ ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ๊ฒ์
- ์น์ฌ์ดํธ ๊ฒ์
- ์ํฐํ๋ผ์ด์ฆ ๊ฒ์
- ๋ก๊น ๊ณผ ๋ก๊ทธ ๋ถ์
- ์ธํ๋ผ ๋ฉํธ๋ฆญ๊ณผ ์ปจํ ์ด๋ ๋ชจ๋ํฐ๋ง
- ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง
- ์์น ๊ธฐ๋ฐ ์ ๋ณด ๋ฐ์ดํฐ ๋ถ์ ๋ฐ ์๊ฐํ
- ๋ณด์ ๋ถ์
- ๋น์ฆ๋์ค ๋ถ์
๐ฆ Elasticsearch๋ ์ด๋ป๊ฒ ์๋ํ๋์?
๋ก๊ทธ, ์์คํ ๋ฉํธ๋ฆญ, ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ฑ ๋ค์ํ ์์ค๋ก๋ถํฐ ์์ ๋ฐ์ดํฐ๊ฐ Elasticsearch๋ก ํ๋ฌ๋ค์ด๊ฐ๋๋ค. ๋ฐ์ดํฐ ์์ง์ ์์ ๋ฐ์ดํฐ๊ฐ Elasticsearch์์ ์์ธ๋๊ธฐ ์ ์ ๊ตฌ๋ฌธ ๋ถ์, ์ ๊ทํ, ๊ฐํ๋๋ ํ๋ก์ธ์ค์ ๋๋ค. Elasticsearch์์ ์ผ๋จ ์์ธ๋๋ฉด, ์ฌ์ฉ์๋ ์ด ๋ฐ์ดํฐ์ ๋ํด ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ณ ์ง๊ณ๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ์ ๋ณต์กํ ์์ฝ์ ๊ฒ์ํ ์ ์์ต๋๋ค. Kibana์์ ์ฌ์ฉ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ ฅํ๊ฒ ์๊ฐํํ๊ณ , ๋์๋ณด๋๋ฅผ ๊ณต์ ํ๋ฉฐ, Elastic Stack์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๐ Elasticsearch ์ธ๋ฑ์ค๋ ๋ฌด์์ธ๊ฐ์?
Elasticsearch ์ธ๋ฑ์ค๋ ์๋ก ๊ด๋ จ๋์ด ์๋ ๋ฌธ์๋ค์ ๋ชจ์์ ๋๋ค. Elasticsearch๋ JSON ๋ฌธ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ๊ฐ ๋ฌธ์๋ ์ผ๋ จ์ ํค(ํ๋๋ ์์ฑ์ ์ด๋ฆ)์ ๊ทธ์ ํด๋นํ๋ ๊ฐ(๋ฌธ์์ด, ์ซ์, ๋ถ์ธ, ๋ ์ง, ๊ฐ์ ๋ฐฐ์ด, ์ง๋ฆฌ์ ์์น ๋๋ ๊ธฐํ ๋ฐ์ดํฐ ์ ํ)์ ์๋ก ์ฐ๊ฒฐํฉ๋๋ค.
Elasticsearch๋ ์ญ ์ธ๋ฑ์ค๋ผ๊ณ ํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด๊ฒ์ ์์ฃผ ๋น ๋ฅธ ํํ ์คํธ ๊ฒ์์ ํ ์ ์๋๋ก ์ค๊ณ๋ ๊ฒ์ ๋๋ค. ์ญ ์ธ๋ฑ์ค๋ ๋ฌธ์์ ๋ํ๋๋ ๋ชจ๋ ๊ณ ์ ํ ๋จ์ด์ ๋ชฉ๋ก์ ๋ง๋ค๊ณ , ๊ฐ ๋จ์ด๊ฐ ๋ฐ์ํ๋ ๋ชจ๋ ๋ฌธ์๋ฅผ ์๋ณํฉ๋๋ค.
์์ธ ํ๋ก์ธ์ค ์ค์, Elasticsearch๋ ๋ฌธ์๋ฅผ ์ ์ฅํ๊ณ ์ญ ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ถํ์ฌ ๊ฑฐ์ ์ค์๊ฐ์ผ๋ก ๋ฌธ์๋ฅผ ๊ฒ์ ๊ฐ๋ฅํ ๋ฐ์ดํฐ๋ก ๋ง๋ญ๋๋ค. ์ธ๋ฑ์ค API๋ฅผ ์ฌ์ฉํด ์์ธ์ด ์์๋๋ฉฐ, ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ํน์ ํ ์ธ๋ฑ์ค์์ JSON ๋ฌธ์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
๐Logstash๋ ์ด๋์ ์ฌ์ฉ๋๋์?
Elastic Stack์ ํต์ฌ ์ ํ ์ค ํ๋์ธ Logstash๋ ๋ฐ์ดํฐ๋ฅผ ์ง๊ณํ๊ณ ์ฒ๋ฆฌํ์ฌ Elasticsearch๋ก ์ ์กํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. Logstash๋ ์๋ฒ ์ฌ์ด๋ ์คํ ์์ค ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ์ผ๋ก, ์ฌ์ฉ์๋ ์ด๋ฅผ ์ด์ฉํด ๋ค์ํ ์์ค์์ ๋์์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ , ์ด๋ฅผ ๊ฐํํ๊ณ ๋ณํํ ๋ค์, Elasticsearch์์ ์์ธ๋๋๋ก ํ ์ ์์ต๋๋ค.
๐ Kibana๋ ์ด๋์ ์ฌ์ฉ๋๋์?
Kibana๋ Elasticsearch๋ฅผ ์ํ ์๊ฐํ ๋ฐ ๊ด๋ฆฌ ๋๊ตฌ๋ก์, ์ค์๊ฐ ํ์คํ ๊ทธ๋จ, ์ ๊ทธ๋ํ, ํ์ด ์ฐจํธ, ์ง๋ ๋ฑ์ ์ ๊ณตํฉ๋๋ค. Kibana์๋ ์ฌ์ฉ์๊ฐ ์์ ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์ ์ ์ํ ๋์ ์ธํฌ๊ทธ๋ํฝ์ ๋ง๋ค ์ ์๋ Canvas, ์์น ๊ธฐ๋ฐ ์ ๋ณด ๋ฐ์ดํฐ๋ฅผ ์๊ฐํํ๊ธฐ ์ํ Elastic Maps ๊ฐ์ ๊ณ ๊ธ ์ ํ๋ฆฌ์ผ์ด์ ๋ ํฌํจ๋ฉ๋๋ค.
๐ Elasticsearch๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
Elasticsearch๋ ๋น ๋ฆ ๋๋ค. Elasticsearch๋ Lucene์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋๊ธฐ ๋๋ฌธ์, ํํ ์คํธ ๊ฒ์์ ๋ฐ์ด๋ฉ๋๋ค. Elasticsearch๋ ๋ํ ๊ฑฐ์ ์ค์๊ฐ ๊ฒ์ ํ๋ซํผ์ ๋๋ค. ์ด๊ฒ์ ๋ฌธ์๊ฐ ์์ธ๋ ๋๋ถํฐ ๊ฒ์ ๊ฐ๋ฅํด์ง ๋๊น์ง์ ๋๊ธฐ ์๊ฐ์ด ์์ฃผ ์งง๋ค๋ ๋ป์ ๋๋ค. ์ด ๋๊ธฐ ์๊ฐ์ ๋ณดํต 1์ด์ ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก, Elasticsearch๋ ๋ณด์ ๋ถ์, ์ธํ๋ผ ๋ชจ๋ํฐ๋ง ๊ฐ์ ์๊ฐ์ด ์ค์ํ ์ฌ์ฉ ์ฌ๋ก์ ์ด์์ ์ ๋๋ค.
Elasticsearch๋ ๋ณธ์ง์ ๋ถ์ฐ์ ์ ๋๋ค. Elasticsearch์ ์ ์ฅ๋ ๋ฌธ์๋ ์ค๋๋ผ๊ณ ํ๋ ์ฌ๋ฌ ๋ค๋ฅธ ์ปจํ ์ด๋์ ๊ฑธ์ณ ๋ถ์ฐ๋๋ฉฐ, ์ด ์ค๋๋ ๋ณต์ ๋์ด ํ๋์จ์ด ์ฅ์ ์์ ์ค๋ณต๋๋ ๋ฐ์ดํฐ ์ฌ๋ณธ์ ์ ๊ณตํฉ๋๋ค. Elasticsearch์ ๋ถ์ฐ์ ์ธ ํน์ง์ ์๋ฐฑ ๊ฐ(์ฌ์ง์ด ์์ฒ ๊ฐ)์ ์๋ฒ๊น์ง ํ์ฅํ๊ณ ํํ๋ฐ์ดํธ์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ฒ ํด์ค๋๋ค.
Elasticsearch๋ ๊ด๋ฒ์ํ ๊ธฐ๋ฅ ์ธํธ์ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค. ์๋, ํ์ฅ์ฑ, ๋ณต์๋ ฅ๋ฟ ์๋๋ผ, Elasticsearch์๋ ๋ฐ์ดํฐ ๋กค์ , ์ธ๋ฑ์ค ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ ๋ฑ๊ณผ ๊ฐ์ด ๋ฐ์ดํฐ๋ฅผ ํจ์ฌ ๋ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ๊ฒ์ํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ๋ ฅํ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ด ๋ค์ ํ์ฌ๋์ด ์์ต๋๋ค.
Elastic Stack์ ๋ฐ์ดํฐ ์์ง, ์๊ฐํ, ๋ณด๊ณ ๋ฅผ ๊ฐ์ํํฉ๋๋ค. Beats์ Logstash์ ํตํฉ์ Elasticsearch๋ก ์์ธํ๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ฅผ ํจ์ฌ ๋ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์๊ฒ ํด์ค๋๋ค. Kibana๋ Elasticsearch ๋ฐ์ดํฐ์ ์ค์๊ฐ ์๊ฐํ๋ฅผ ์ ๊ณตํ๋ฉฐ, UI๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง(APM), ๋ก๊ทธ, ์ธํ๋ผ ๋ฉํธ๋ฆญ ๋ฐ์ดํฐ์ ์ ์ํ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
- ๐ Elasticsearch๋ ๋ฌด์์ธ๊ฐ์?
- ๐ Elasticsearch๋ ์ด๋์ ์ฌ์ฉ๋๋์?
- ๐ฆ Elasticsearch๋ ์ด๋ป๊ฒ ์๋ํ๋์?
- ๐ Elasticsearch ์ธ๋ฑ์ค๋ ๋ฌด์์ธ๊ฐ์?
- ๐Logstash๋ ์ด๋์ ์ฌ์ฉ๋๋์?
- ๐ Kibana๋ ์ด๋์ ์ฌ์ฉ๋๋์?
- ๐ Elasticsearch๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?