github action, docker, nginx๋ฅผ ํ™œ์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์‹œ Docker Image๊ฐ€ ์—…๋ฐ์ดํŠธ ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ

1. ๊ฐœ์š”github action, docker์™€ nginx๋ฅผ ์‚ฌ์šฉํ•ด ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ CI/CD๋ฅผ ๊ตฌ์ถ•ํ•ด๋’€์—ˆ๋‹ค. ๋‚˜๋Š” BLUE/GREEN ๋ฐฉ์‹์˜ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๋ฅผ ์ ์šฉํ•ด๋’€๋Š”๋ฐ, ์ ์šฉ ํ›„ ์ƒˆ๋กœ์šด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์Šคํ”„๋ง ์„œ๋ฒ„๊ฐ€ ๋‹ค ์ผœ์กŒ๋‹ค๋ฉด, ๊ธฐ์กด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ข…๋ฃŒ์‹œํ‚ค๋Š” ๊ฒƒ ๊นŒ์ง€ ํ™•์ธํ–ˆ๊ธฐ์— ์ž˜ ๊ตฌ์ถ•๋๋‹ค ์ƒ๊ฐํ–ˆ๋‹ค.  ๋ฉฐ์น  ์ „ ํ”„๋ก ํŠธ์—”๋“œ ํŒ€์—์„œ ์„œ๋ฒ„ ์—ฐ๋™ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด๊ฒ ๋‹ค๋Š” ์š”์ฒญ์ด ๋“ค์–ด์™”๊ณ  ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๊ฑธ์–ด๋‘” ๋ธŒ๋žœ์น˜์— push ํ•ด์ฃผ์–ด ๋ฐฐํฌ๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ, ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ œ๋Œ€๋กœ ์ ์šฉ๋˜์ง€ ์•Š์•˜๋‹ค.   ec2์— ๋“ค์–ด๊ฐ€ ์›์ธ์„ ์‚ดํŽด๋ณด์•˜๋‹ค.Nginx config ํŒŒ์ผ์— port๋„ ์ž˜ ๋ณ€๊ฒฝ๋˜์—ˆ๊ณ , ์ปจํ…Œ์ด๋„ˆ๋„ ์ž˜ ์‹คํ–‰๋˜๊ณ  ์ข…๋ฃŒ๋˜๋Š”๊ฑธ ํ™•์ธํ–ˆ๋Š”๋ฐ ๋ณ€๊ฒฝ ์ฝ”๋“œ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์•„ ์ด๋ฏธ์ง€๊ฐ€ ๋ฌธ์ œ์ธ๊ฐ€ ํ•˜๊ณ  ์ด๋ฏธ์ง€ ๋ชฉ๋ก์„ ์กฐํšŒํ–ˆ๋”๋‹ˆ ์ด๋ฏธ์ง€๊ฐ€ ์—…๋ฐ์ดํŠธ ๋˜์ง€..

  • textsms
[ELK] elastic stack ๊ตฌ์ถ•ํ•˜์—ฌ ๋กœ๊ทธ ์ˆ˜์ง‘, ๊ด€๋ฆฌ ํ•˜๊ธฐ (+ spring boot)

[ELK] elastic stack ๊ตฌ์ถ•ํ•˜์—ฌ ๋กœ๊ทธ ์ˆ˜์ง‘, ๊ด€๋ฆฌ ํ•˜๊ธฐ (+ spring boot)

๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•ด ์ตœ๊ทผ prometheus์™€ grafana๋ฅผ ํ†ตํ•ด metric์„ ์ˆ˜์ง‘ํ–ˆ๋‹ค. ์ด๋ฒˆ์—” ๋กœ๊ทธ ์ˆ˜์ง‘์„ ์œ„ํ•ด elastic stack (elastic search + logstash + kibana) + filebeat ๋กœ ๋กœ๊ทธ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•ด๋ณด์•˜๋‹ค. ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ฒŒ ๋˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์žฅ์ ์ด ์žˆ๋‹ค. 1. ์‚ฌ์šฉ์ž ํ–‰๋™ ๋ถ„์„ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ํ–‰๋™ ํŒจํ„ด์„ ํŒŒ์•…ํ•˜๊ณ  ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์„œ๋น„์Šค ๊ฐœ์„  ๋ฐ ๋งˆ์ผ€ํŒ… ์ „๋žต์„ ์„ธ์šธ ์ˆ˜ ์žˆ๋‹ค. 2. ์˜ค๋ฅ˜ ๋ฐ ๋ฒ„๊ทธ ์ถ”์  ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ ๋‚ด ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋‚˜ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜๊ณ  ์ถ”์ ํ•  ์ˆ˜ ์žˆ์–ด, ์†Œํ”„ํŠธ์›จ์–ด์˜ ์•ˆ์ •์„ฑ๊ณผ ํ’ˆ์งˆ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. 3. ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ž‘์—…, API ํ˜ธ์ถœ, ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ ๋“ฑ ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ ์ƒํƒœ๋ฅผ ํŒŒ..

  • textsms
Prometheus & Grafana ๋ฅผ ํ†ตํ•ด ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ•ด๋ณด์ž (Spring boot)

Prometheus & Grafana ๋ฅผ ํ†ตํ•ด ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ•ด๋ณด์ž (Spring boot)

Prometheus ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๋Š” ๋Œ€์ƒ ์‹œ์Šคํ…œ์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ์ข… ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ์ด๋‹ค. ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ํŠน์ง• ๋ฉ”ํŠธ๋ฆญ ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์ด๋‹ค. ์ด๋ฒคํŠธ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ฒฝ๊ณ ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฌด๋ฃŒ ์†Œํ”„ํŠธ์›จ์–ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ์œ ์—ฐํ•œ ์ฟผ๋ฆฌ(PromQL) ๋ฐ ์‹ค์‹œ๊ฐ„ ๊ฒฝ๊ณ ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ตฌ์กฐ๊ฐ€ ๊ฐ„๋‹จํ•ด์„œ ์šด์˜์ด ์‰ฝ๊ณ , ๊ฐ•๋ ฅํ•œ ์ฟผ๋ฆฌ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๊ทธ๋ผํŒŒ๋‚˜(Grafana)๋ฅผ ํ†ตํ•œ ์‹œ๊ฐํ™”๋ฅผ ์ง€์›ํ•œ๋‹ค. ELK์™€ ๊ฐ™์€ ๋กœ๊น…์ด ์•„๋‹ˆ๋ผ, ๋Œ€์ƒ ์‹œ์Šคํ…œ์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ์ข… ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ์ด๋‹ค. ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ exporter(๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ ์‹œ์Šคํ…œ)๋กœ๋ถ€ํ„ฐ pulling ๋ฐฉ์‹์œผ๋กœ ๋ฉ”ํŠธ๋ฆญ์„ ์ฝ์–ด์„œ ์ˆ˜์ง‘ํ•œ๋‹ค. ๋ฉ”ํŠธ๋ฆญ์ด๋ž€? ์ˆ˜์ง‘ํ•˜๋Š” ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ๋งํ•œ๋‹ค...

  • textsms
๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์ ์šฉํ•˜๊ธฐ (SpringBoot, Docker, Nginx, GithubAction)

๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ์ ์šฉํ•˜๊ธฐ (SpringBoot, Docker, Nginx, GithubAction)

๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๋ž€? ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์„œ๋น„์Šค ์ค‘๋‹จ ์—†์ด ์ƒˆ๋กœ์šด ๋ฒ„์ „์˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์„œ๋น„์Šค๋ฅผ ์šด์˜ ์ค‘์ผ ๋•Œ ์ƒˆ๋กœ์šด ๋ฒ„์ „์„ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 1. ๊ธฐ์กด ์„œ๋น„์Šค๋ฅผ ์ข…๋ฃŒ 2. ์ƒˆ๋กœ์šด ์„œ๋น„์Šค ์‹œ์ž‘ ๋‘๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง€๋‚˜์ณ์•ผ ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด 1๋ฒˆ๊ณผ 2๋ฒˆ ์‚ฌ์ด์˜ ๊ณผ์ •์—์„œ ๋‹ค์šดํƒ€์ž„์ด ํ•„์—ฐ์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋ฉฐ, ๋‹ค์šดํƒ€์ž„ ๋™์•ˆ ์‚ฌ์šฉ์ž๋“ค์€ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์ด ๋‹ค์šดํƒ€์ž„์„ ํ•ด๊ฒฐํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ์ด๋‹ค. ์ฆ‰, ๋ง๊ทธ๋Œ€๋กœ ์ค‘๋‹จ์ด ์—†๋Š” ๋ฐฐํฌ๋ฅผ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ์ด๋‹ค. ๋‹ค์šดํƒ€์ž„ ์‹œ์Šคํ…œ์„ ์ด์šฉํ•  ์ˆ˜ ์—†๋Š” ์‹œ๊ฐ„. ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ๊ตฌํ˜„ ๋ฐฉ์‹์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ธฐ์ˆ ์ด ์กด์žฌํ•œ๋‹ค. - AWS์—์„œ Blue-Greem ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ - ๋„์ปค๋ฅผ ์ด์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ - L4, L7 ์Šค์œ„์น˜๋ฅผ ์ด์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ - Nginx๋ฅผ ..

  • textsms
์Šคํ”„๋ง Docker, githubaction ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ ์ž๋™ํ™”(CI/CD) ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•

์Šคํ”„๋ง Docker, githubaction ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ ์ž๋™ํ™”(CI/CD) ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•

์ด์ „์— ์ง„ํ–‰ํ–ˆ๋˜ ํ”„๋กœ์ ํŠธ๋•Œ๋„ ๊ทธ๋ ‡๊ณ  ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—๋„ ci-cd ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•˜๋Š”๋ฐ github action, AWS S3, AWS CODEDEPLOY ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑํ•˜์˜€๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” ์„ธํŒ… ๊ณผ์ •์ด ๋„ˆ๋ฌด ๊ธธ๊ณ  ๋ณต์žกํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์—†์„๊นŒ ์ฐพ์•„๋ณด๋‹ค Docker๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๊ณ  ์ด์ „๊ณผ ๋‹ฌ๋ฆฌ ๋„ˆ๋ฌด ํŽธํ•ด์ง„ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ• ๊ณผ์ •์„ ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•ด ๊ธ€์„ ์“ด๋‹ค. ๊ทธ ์ „์— cicd์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž CICD ๋ž€ ๋ฌด์—‡์ธ๊ฐ€? CI/CD๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ๋‹จ๊ณ„๋ถ€ํ„ฐ ๋ฐฐํฌ ๋•Œ๊นŒ์ง€์˜ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์ž๋™ํ™”๋ฅผ ํ†ตํ•ด์„œ ์ข€ ๋” ํšจ์œจ์ ์ด๊ณ  ๋น ๋ฅด๊ฒŒ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋นˆ๋ฒˆํžˆ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. CI (Continuous Integration) CI (Continuous Int..

  • textsms
๋ฐฐํฌ ๊ณผ์ •์—์„œ ์žˆ์—ˆ๋˜ ์ผ๋“ค

๋ฐฐํฌ ๊ณผ์ •์—์„œ ์žˆ์—ˆ๋˜ ์ผ๋“ค

๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์œผ๋กœ ์ธํ•œ ์žฅ์•  ec2์—” ๋‹ค์–‘ํ•œ ์ŠคํŽ™์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ ์ „์ด์—ˆ๊ณ  ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„์˜€๊ธฐ์— ๋‹น์—ฐํžˆ t2.small๋กœ ์žก์•„๋‘์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•œ ๋’ค ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์–ด๋Š์ƒŒ๊ฐ€ ec2๊ฐ€ ๋ป—์–ด์žˆ์—ˆ๋‹ค. ์ด์œ ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ์˜€๋‹ค. ํ˜„์žฌ ์‚ฌ์šฉ์ค‘์ธ ๋ฉ”๋ชจ๋ฆฌ ์–‘์„ ํ™•์ธํ•ด ๋ดค๋”๋‹ˆ ๊ฑฐ์˜ ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์žก์•„๋จน๊ณ  ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ํฌ์ง€๋„ ์•Š์€ ์„œ๋ฒ„ ํ•˜๋‚˜๋ฅผ ์‹คํ–‰ํ–ˆ๋‹ค๊ณ  1GB ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‹ค ์žก์•„๋จน๋Š”๊ฒŒ ์˜์•„ํ–ˆ๊ณ  ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“คํ•œํ…Œ ๋ฌผ์–ด๋ดค์ง€๋งŒ ๋กœ์ง์ด ๋ฌธ์ œ์ธ๊ฑฐ ์•„๋‹ˆ๋ƒ๋Š” ๋‹ต๋ณ€์„ ๋งŽ์ด ๋“ฃ๊ฒŒ ๋๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ์˜์‹ฌ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š”๊ฐ€ ํ•ด์„œ JAVA GC์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ๋„ ํ–ˆ์ง€๋งŒ ๋‚ด ์ƒํ™ฉ์— ํ•ด๋‹นํ•˜์ง„ ์•Š์•˜๋‹ค. GC์— ์†Œ๋ฉธ๋˜์ง€ ์•Š๋Š” ์—ฌ๋Ÿฌ ์ƒํ™ฉ๋“ค์ด ๋งŽ์•˜์ง€๋งŒ ๊ทธ ์ค‘ ๋‚ด๊ฐ€ ์‹ค์ˆ˜ํ•  ์ˆ˜๋„ ์žˆ๊ฒ ๋‹ค ํ•˜๋Š” ๋ถ€๋ถ„์€ Map ..

  • textsms