์ค์น ํ๊ฒฝ) virtual box - ubuntu 22.04 (cpu2, memory 4g)
์ค์น ํ์ผ ๋ค์ด๋ก๋
Elastic ์ค์น ํ์ผ ๋งํฌ๋ฅผ ํ์ธํ๊ธฐ ์ํด Elastic Search ๊ณต์ ํํ์ด์ง์ ์ ์ํฉ๋๋ค.
https://www.elastic.co/kr/downloads/past-releases#elasticsearch
์ ๋ 8.13.4 ๋ฒ์ ๋ค์ด๋ก๋๋ฅผ ํด๋ฆญํ๊ณ deb ํ์ผ์ ๋งํฌ๋ฅผ ๋ณต์ฌํ์ต๋๋ค.
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.4-amd64.deb
์ด์ ์๋ฒ์ ์ ์ํด์ ๋งํฌ๋ฅผ ์ฌ์ฉํด์ ํ์ผ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.4-amd64.deb
์ค์น ์งํ
sudo dpkg -i elasticsearch-8.13.4-amd64.deb
์ค์น๊ฐ ์๋ฃ๋๋ฉด ์ด๊ธฐ elastic user์ ๋น๋ฐ๋ฒํธ๊ฐ ์์ฑ๋ฉ๋๋ค.
elastic(superuser)์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ฉ๋ชจํด ๋์ง ์์ ๊ฒฝ์ฐ `/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic` ๋ช
๋ น์ด๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ์ด๊ธฐํ ํ ์ ์์ต๋๋ค.
๋ฐฉํ๋ฒฝ ์ค์
๊ธฐ๋ณธ ํฌํธ์ธ 9200 ํฌํธ๋ฅผ ํ์ฉํฉ๋๋ค. (`sudo apt install firewalld`๋ก ์ค์น ํ ์งํ)
sudo firewall-cmd --permanent --zone=public --add-port=9200/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports
์๋น์ค ์คํ
es ์ ์ ์์ฑ
์๋น์ค ์คํ์ ์์ root ๊ถํ์ ๊ฐ์ง ์ ์ ๋ก๋ elastic search ์คํ์ด ๋ถ๊ฐ๋ฅํ์ฌ es๋ผ๋ ์ ์ ๋ฅผ ์์ฑํ์ฌ ์งํํ์ต๋๋ค.
# root ๊ณ์ ์ผ๋ก ์ ํ (์ด๋ฏธ root ๊ณ์ ์ด๋ฉด ๋ถํ์)
sudo su -
# root ๊ณ์ ์์ ์คํ
useradd -m es
elastic search์ ํ์ํ ํด๋๋ค์ ๊ถํ์ es๋ก ๋ณ๊ฒฝํฉ๋๋ค.
# elaticsearch ๊ด๋ จ ๋๋ ํฐ๋ฆฌ์ ์์ ์๋ฅผ es๋ก ๋ณ๊ฒฝ
chown -R es:es /var/log/elasticsearch
chown -R es:es /var/lib/elasticsearch
chown -R es:es /usr/share/elasticsearch
chown -R es:es /etc/elasticsearch
chown -R es:es /etc/default/elasticsearch
์๋น์ค ์์ฑ
์๋น์ค๋ฅผ es ์ฌ์ฉ์์์ ์คํ๋๋๋ก ์์ฑํฉ๋๋ค. User์ Group ์ es๋ฅผ ํ๊ธฐํฉ๋๋ค.
vi /etc/systemd/system/elasticsearch.service
[Unit]
Description=Elasticsearch
Documentation=https://www.elastic.co
Wants=network-online.target
After=network-online.target
[Service]
Environment=ES_HOME=/usr/share/elasticsearch
Environment=ES_PATH_CONF=/etc/elasticsearch
Environment=PID_DIR=/var/run/elasticsearch
Environment=ES_SD_NOTIFY=true
EnvironmentFile=-/etc/default/elasticsearch
WorkingDirectory=/usr/share/elasticsearch
User=es
Group=es
ExecStart=/usr/share/elasticsearch/bin/elasticsearch -p ${PID_DIR}/elasticsearch.pid --quiet
ExecReload=/bin/kill -HUP $MAINPID
TimeoutStopSec=0
KillMode=process
KillSignal=SIGQUIT
SendSIGKILL=no
SuccessExitStatus=143
LimitNOFILE=65535
LimitNPROC=4096
LimitAS=infinity
LimitFSIZE=infinity
TimeoutStartSec=75
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
์๋น์ค ํ์ผ ๊ถํ ์ค์ ๋ฐ ์๋น์ค ํ์ฑํ
sudo chmod 644 /etc/systemd/system/elasticsearch.service
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
์๋น์ค ์คํ
sudo systemctl start elasticsearch.service
sudo systemctl status elasticsearch.service
์ฌ๊ธฐ์ ๊ฐํ์ ์ผ๋ก ์ฌ์๋ ๋๋ ๊ฒฝ์ฐ ๋ก๊ทธ๋ฅผ ํ์ธํฉ๋๋ค. (root ๊ณ์ ์์ ํ์ธ)
tail -100 /var/log/elasticsearch/elasticsearch.log
tail -100 /var/log/elasticsearch/gc.log
์ ์ ๊ฒฝ์ฐ vm์ ์ฌ์์ด ๋ฎ์ Elasticsearch์ ํ ๋ฉ๋ชจ๋ฆฌ ์ค์ ์ ์กฐ์ ํ์์ต๋๋ค.
(์ฃผ์์ฒ๋ฆฌ ๋์ด์๋ ๋ถ๋ถ -Xms1g, -Xmx1g ๋ก ์์ )
# root ๊ณ์ ์์ ์คํ
systemctl stop elasticsearch
vi /etc/elasticsearch/jvm.options
systemctl start elasticsearch
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์๋ฌ๊ฐ ๋์ ๋ก๊ทธ๋ฅผ ํ์ธํ๋ /var/run/elasticsearch ํด๋์ ๊ถํ์ด ์์ด์ ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์๋น์ค๋ฅผ ๋ค์ ์ข
๋ฃํ๊ณ ๊ถํ์ ๋ถ์ฌํด์ ์ ์์ ์ผ๋ก ์คํ๋์์ต๋๋ค.
systemctl stop elasticsearch
chown -R es:es /var/run/elasticsearch
systemctl start elasticsearch
์๊ฒฉ ์ ์ ํ ์คํธ
์์ ์์
๊น์ง ํ๋ฉด ์ค์น์ ์ ์ ์คํ๊น์ง ์๋ฃ๋๊ณ , ์ด์ ์๊ฒฉ ํ
์คํธ๋ฅผ ํด๋ณด๊ฒ ์ต๋๋ค.
๋ก์ปฌ ํฐ๋ฏธ๋์ ํ๋ ๋ ์ด์ด์ localhost๋ก ์ ์์๋ํ๋์ง ํ
์คํธํฉ๋๋ค.
curl -X GET -k -u elastic:[password] https://localhost:9200
๊ฐ์ ๋ก์ปฌ ๋คํธ์ํฌ๊ฐ ์๋ ์๊ฒฉ ์ ์์ ํ์ฉํ๊ธฐ ์ํด์๋ config ํ์ผ์ ์์ ํด์ผ ํฉ๋๋ค.
config ํด๋ ๋ด์ elasticsearch.yml ํ์ผ ์์ - network.host ๋ฅผ 0.0.0.0์ผ๋ก ์์ ํฉ๋๋ค.
# config ํด๋ ๋ด์ elasticsearch.yml ํ์ผ ์์
vi /etc/elasticsearch/elasticsearch.yml
์์ ํ ์๋น์ค๋ฅผ ์ฌ๊ธฐ๋ํฉ๋๋ค.
service elasticsearch restart
vm ์๋ฒ ๋ฐ (์๋์ฐ ๋ก์ปฌ) ์์ curl ์์ฒญ์ ์ ์์ ์ผ๋ก ์๋ํ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
curl -X GET -k -u elastic:[password] https://[vm ip]:9200
์ ๋ vm ๋คํธ์ํฌ ํฌํธํฌ์๋ฉ ์ค์ ์์ 9200 ํฌํธ๋ฅผ ์ถ๊ฐํด์ฃผ์์ต๋๋ค. (vm ๋คํธ์ํฌ ํฌํธํฌ์๋ฉ ์ผ๋ก ๊ฒ์ํ์ฌ ๋์จ ๊ฒ์๊ธ๋ค์ ์ฐธ๊ณ ํ์ฌ ์ค์ )
์ฌ๊ธฐ๊น์ง elastic search๋ฅผ virtual box์ ์ค์นํด๋ณด๊ณ ์ธ๋ถ์์ ํธ์ถํ๋ ํ
์คํธ๊น์ง ์ํํด๋ณด์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
'note' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MLOps 02: Dagster โ Seamless Data Pipelines & ML Model Management for Machine Le (0) | 2024.11.14 |
---|---|
MLOps 01: Data testing, why, what and how (0) | 2024.11.14 |
Backend for Frontend (BFF) Architecture ๋ฒ์ญ (0) | 2024.10.02 |
Spark๋ฅผ ์ฌ์ฉํ Config-Driven ๋ฐ์ดํฐ ํ์คํ ํ๋ ์์ํฌ (๋ฒ์ญ) (0) | 2024.09.29 |
Docker ๋น๋ ์๊ฐ์ 40% ๋จ์ถํ ๋ฐฉ๋ฒ (๋ฒ์ญ) (0) | 2024.05.01 |