๊ทธ๋์์ ๊ต์ก ์ปค๋ฆฌํ๋ผ(AWS, Docker, K8s, kafka, ansible ..)์ ํ์ฉํด ์ง์ ํ๋ก์ ํธ๋ฅผ ํด๋ณธ๋ค๋ ๊ฒ์ ์ง์คํ๋ค. ์๋น์ค์ ๊ตฌ์ฑ์์๋ ๊ธฐ์กด์ ๋น๊ทผ๋ง์ผ๊ณผ ์ ์ฌํ๊ฒ ๊ตฌํํ๋, ๊ฒ์ ์๋น์ค์ ๊ฐ์ ์ ๋์ด ์ฐจ๋ณ์ฑ ์๋ Clone Project๋ก ๊ฐ๋ฐํด๋ณด๋ คํ๋ค.
- ๊ฐ์ธ์ rkddlsthf123@gmail.com
- ๋ฐ์ ํ orpsh1941@gmail.com
- ์ ๋ฏผ์ง youminji62@gmail.com
- ์ ์ฌ์ฐ jaewoo.jeongg@gmail.com
์ฌ์ฉ์ ์๊ตฌ ์ฌํญ ๋ฌธ์
- ๋ก๊ทธ์ธ/ํ์๊ฐ์
- ๊ฑฐ๋
- ๋๊ธ
- ๊ฒ์์์ง(Elasticsearch), ์ธ๊ธฐ ๊ฒ์์ด/์ถ์ฒ ์๋น์ค(ELK)
- Django Framework: ๊ฐ๋ฐ ๊ธฐ๊ฐ์ด ์งง์ ๋ฐ๋ก ๊ฐ๋ฐ์ ๋ค์ด๊ฐ ์ ์๋ Django๋ฅผ ์ ํํ๋ค. ํ์ง๋ง ์ค๋ ํ๋ ์์ํฌ์ธ Django๋ API ์์ฑ ๋ฐ ํต์ ์ธก๋ฉด์์ ์ฌ์ฉํ๊ธฐ ๊น๋ค๋ก์ ๋ค. ๊ฐ์ ์ ์ผ๋ก์ Flaks ์ฌ์ฉ, ๋๋ Spring Framework๋ฅผ ์ฌ์ฉํด MSA๋ฅผ ๊ตฌํํ๊ณ Spring Cloud๋ฅผ ์ถ๊ฐํด๋ณด๋ ๊ฒ๋ ์ข์ ๊ฒ ๊ฐ๋ค.
- Kafka: ์ฉ๋์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ถ๋ฆฌํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋๊ธฐํ๋ฅผ ์ํด Kafka๋ฅผ ์ฌ์ฉํ๋ค. ํ์ฌ ํ๋ก์ ํธ์์๋ ๋งค๋ฌผ ์กฐํ๊ฐ ๋น๋ฒํ๊ฒ ๋ฐ์ํ ๊ฒ์ ์์, ์กฐํDB์ ๋ฑ๋ก, ์์ , ์ญ์ ์ฉ๋์ DB๋ฅผ ๋๋์ด ์ค๋ฒํค๋๋ฅผ ์ค์๊ณ ๋ถ๋ฆฌ๋ DB ๋๊ธฐํ๋ฅผ ์ํด MQ๋ก์ Kafka๋ฅผ ์ฌ์ฉํ๋ค. MQ์๋ ๋ํ์ ์ผ๋ก Kafka์ RabbitMQ, ActivaMQ๊ฐ ์์ผ๋ ๊ต์ก์ ํตํด ๋ฐฐ์ด ๊ฒ์ Kafka์ด๊ณ ๊ทธ๋์์ ์ปค๋ฆฌํ๋ผ์ ํ์ฉํด ์ง์ ํ๋ก์ ํธ๋ฅผ ํด๋ณธ๋ค๋ ๊ฒ์ ์ง์คํ๊ธฐ ์ํด Kafka๋ฅผ ์ ํํ๋ค.
- ELK(ElasticSearch + Logstash + Kibana): ๋ก๊ทธ ์์ง ํ๋ซํผ์ผ๋ก
ELK์คํ
์ด ๋ง์ด ์๋ ค์ ธ์๋ค. ํ๋ก์ ํธ์์๋ ์ฌ์ฉ์์ ๊ฒ์ ํจํด ๋ถ์์ ์ํด ELK ์ฌ์ฉ์ ๊ณํํ๋ค. - Consul: Service Discovery๋ก
Consul
์ ์ฌ์ฉํ๋ค. ์๋น์ค๋ค์ ์ ๋ณด(IP, PORT)๋ฅผ ์ ์ํด๋๊ณ ๊ฐ ์๋น์ค๋ค์ด Consul์ ์ ๋ณด๋ฅผ ์์ฒญํด์ ํต์ ํ๋๋ก ๊ตฌ์ฑํ๋ค. - Docker: ๋ก์ปฌํ๊ฒฝ์์ Bridge-Network๋ฅผ ๊ตฌ์ฑํด ๊ฐ ์๋น์ค๋ค์ ๋คํธ์ํฌ ๋ด์์ ํต์ ํ ์ ์๋๋ก ๊ตฌ์ฑํ๋ค.
-
ํ๋ก์ ํธ์์ ๊ตฌํํ Docker Network ๊ตฌ์กฐ
-
physical network interface์ธ eth0์ msa-network๋ผ๋ bridge ์์ฑ
-
msa-network
๋ผ๋ bridge๋ virtual network interface์ธ veth0~veth7์172.17.0.0/24
๋ก ๊ฐ์ ๋คํธ์ํฌ์ ๋ฌถ์ -
msa-network
172.17.0.0.1
์ veth0~veth7์ default gateway ์ญํ ์ ํ๋ค. -
k8s Pod๋ก ์ปจํ ์ด๋๋ฅผ ๊ด๋ฆฌํ๊ธฐ์ํด docker-network ๊ตฌ์กฐ๋ ์ค์ํ๋ค๊ณ ์๊ฐํด์ ์ ๋ฆฌํ๋ค.
- Flask๋ก ํ์ด์ง ์์
- ์์น ๊ธฐ๋ฐ ๋ง์ผ ๊ตฌํ์ ์ํด MAP API ์ฌ์ฉ
- No-SQL ์ฌ์ฉ ๊ฒฝํ์ ์ํด ํ๋งค์, ๊ตฌ๋งค์ ์ฑํ ๊ธฐ๋ฅ ๊ตฌํ
- AWS, GCP์ ๊ฐ์ ํด๋ผ์ฐ๋ ํ๋ซํผ์ผ๋ก์ ์๋น์ค ๋ฐฐํฌ
- k8s๋ก ์ปจํ ์ด๋ ๊ด๋ฆฌ
- ELK vs EFK : ๊ฒ์ ์๋น์ค๋ฅผ ์ํด ELK๋ฅผ ๊ณํํ์ผ๋ฏ๋ก ์๋ฒ ๋ชจ๋ํฐ๋ง์ ์ํด์๋ EFK(ElasticSearch + Fluentd + Kibana)๋ฅผ ์ฌ์ฉํด๋ณด๋ ๊ฒ๋ ์ข์ ๊ฒ ๊ฐ๋ค.