์šฐ๋ฆฌ๋Š” ์‹œ์žฅ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋” ๋‚˜์€์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์šฐ๋ฆฌ๋Š” ์‹œ์žฅ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋” ๋‚˜์€์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์˜ฌํ•ด ์šฐ๋ฆฌ๋Š” ์ œํ’ˆ ๊ฐœ์„ ์ด๋ผ๋Š” ์•ผ์‹ฌ์ฐฌ ๋ชฉํ‘œ๋ฅผ ์„ธ์› ์Šต๋‹ˆ๋‹ค.

์ผ๋ถ€ ์ž‘์—…์—๋Š” ์ง„์ง€ํ•œ ์ค€๋น„๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ์ด๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ํ”ผ๋“œ๋ฐฑ์„ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž, ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž, ํŒ€ ๋ฆฌ๋” ๋ฐ Kubernetes ์ „๋ฌธ๊ฐ€๋ฅผ ์‚ฌ๋ฌด์‹ค์— ์ดˆ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ๊ฒฝ์šฐ์—๋Š” ํ”ผ๋“œ๋ฐฑ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ์„œ๋ฒ„๋ฅผ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค. Blurred Education ํ•™์ƒ๋“ค๊ณผ ํ•จ๊ป˜. ์šฐ๋ฆฌ๋Š” UI/UX, ์ฐธ๊ณ ์„œ์— ๋Œ€ํ•œ ๊ต์œก ๊ธฐ์‚ฌ ๋ฐฑ๋กœ๊ทธ, ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ํฐ ๊ณ„ํš์— ๊ด€ํ•ด ๋งค์šฐ ๋ฐ”์œ ์ฑ„ํŒ…์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ๋ณ€๊ฒฝ์—๋Š” ๋งŽ์€ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์ด ํ•„์š”ํ•˜์ง€๋งŒ ์‹œ์žฅ -์™„์ „ํžˆ ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ. ์Šค๋ƒ…์ƒท์˜ ์ถœํ˜„์œผ๋กœ ๋ง ๊ทธ๋Œ€๋กœ ํ•˜๋ฃจ ๋งŒ์— ์‹œ์žฅ์— ์ถœ์‹œํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด๋ฏธ์ง€๋ฅผ ์ค€๋น„ํ•  ์ˆ˜ ์žˆ๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋ฅผ ์œ ์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.

๊ธฐ์—ฌํ•˜๋Š” ๋ฐฉ๋ฒ• ์‹œ์žฅ ์šฐ๋ฆฌ๋Š” ๊ณ ๊ฐ์ด ์ค€๋น„ํ•œ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ RUVDS์™€ ๊ทธ๊ฒƒ์ด ์ˆ˜๋ฐ˜ํ•˜๋Š” ๋‚ด์šฉ์„ ๋ณด์—ฌ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค ํƒ€์ผ€์ง€ - GitLab

Centos 8์—์„œ Gitlab ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•

Gitlab์„ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด Yura๋Š” 8GB RAM๊ณผ 2๊ฐœ์˜ CPU ์ฝ”์–ด(4GB์™€ 1CPU๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ด ๊ฒฝ์šฐ ์Šค์™‘ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ ์ด ๊ฒฝ์šฐ Gitlab ์„ฑ๋Šฅ์ด ๋ˆˆ์— ๋„๊ฒŒ ์ €ํ•˜๋˜๋Š” ์„œ๋ฒ„๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์‹œ์žฅ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋” ๋‚˜์€์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

Gitlab ์„ค์น˜์— ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

sudo dnf install -y curl policycoreutils

ํฌํŠธ 80 ๋ฐ 443์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์—ด์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld

Gitlab ์ €์žฅ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

์„œ๋ฒ„์— DNS ์ด๋ฆ„์ด ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉด ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Gitlab์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https:// ์ ‘๋‘์‚ฌ๋ฅผ ์ง€์ •ํ•˜๋ฉด Gitlab์€ ์ž๋™์œผ๋กœ Lets Encrypt ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” ์šฐ๋ฆฌ๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์šฉ ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“ค๊ณ  ์žˆ์—ˆ๊ณ  Yura๋Š” ํ…œํ”Œ๋ฆฟ ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค(์ดํ›„์—๋Š” ๋ฌธ์ œ ์—†์ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).

sudo EXTERNAL_URL="http://0.0.0.0" dnf install -y gitlab-ee

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ์œผ๋กœ ์ด๋™ํ•˜์—ฌ Gitlab ์„œ๋น„์Šค๊ฐ€ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

http://vps_ip_address/

์‹œ์Šคํ…œ์€ ๋ฃจํŠธ ๊ด€๋ฆฌ์ž ๊ณ„์ •์˜ ์ดˆ๊ธฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ด ๋‹จ๊ณ„์—์„œ๋Š” ์„œ๋ฒ„์˜ ์Šค๋ƒ…์ƒท์„ ์ฐ์€ ๋‹ค์Œ ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์‹œ์žฅ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋” ๋‚˜์€์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ !

๋ณด๋„ˆ์Šค: ํ™•์žฅ์„ ํ†ตํ•ด ์–ด๋–ค ํฅ๋ฏธ๋กœ์šด ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒ GitLab ์ด๋ฏธ์ง€๋กœ.

Grafana๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Gitlab ๋ชจ๋‹ˆํ„ฐ๋ง

XNUMX๋…„ ์ „ Gitlab ํŒ€์€ Gitlab ์„œ๋น„์Šค์™€ ๊ด€๋ จ๋œ ์ˆ˜๋งŽ์€ ์ง€ํ‘œ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์ดํ›„๋กœ Gitlab์€ ์‚ฌ์šฉ์ž๊ฐ€ Prometheus์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก Prometheus์™€ ํ•จ๊ป˜ ์„ค์น˜ ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

Prometheus๋Š” Go๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์›๋ž˜ SoundCloud์—์„œ ๊ฐœ๋ฐœ๋œ ๊ฐœ๋ฐฉํ˜•(Apache 2.0) ์‹œ๊ณ„์—ด DBMS์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์ด๋Š” ์ธก์ •ํ•ญ๋ชฉ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. Prometheus์˜ ํฅ๋ฏธ๋กœ์šด ๊ธฐ๋Šฅ์€ Prometheus ์ž์ฒด๊ฐ€ ํŠน์ • ์„œ๋น„์Šค ์„ธํŠธ์—์„œ ๋ฉ”ํŠธ๋ฆญ์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(ํ’€์„ ์ˆ˜ํ–‰ํ•จ). ์ด๋กœ ์ธํ•ด Prometheus๋Š” ๋Œ€๊ธฐ์—ด์ด๋‚˜ ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์œผ๋กœ ๋ง‰ํž ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง์ด ์‹œ์Šคํ…œ์˜ ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ๊ฒฐ์ฝ” ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆ˜ํ‰์  ํ™•์žฅ์ด๋‚˜ ๊ณ ๊ฐ€์šฉ์„ฑ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์—์„œ๋„ ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค.

์•ฝ XNUMX๋…„ ์ „, Gitlab ํŒ€์€ ๋Œ€์‹œ๋ณด๋“œ ์—†์ด๋Š” ๋ฉ”ํŠธ๋ฆญ์ด ๊ทธ๋‹ค์ง€ ํŽธ๋ฆฌํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒฐ๋ก ์„ ๋‚ด๋ ธ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋“ค์€ ์‚ฌ์šฉ์ž๊ฐ€ Grafana๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก Grafana๋ฅผ ๋งž์ถคํ˜• ๋Œ€์‹œ๋ณด๋“œ์™€ ํ†ตํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฒ„์ „ 12.0๋ถ€ํ„ฐ Gitlab์€ ๊ธฐ๋ณธ์ ์œผ๋กœ SSO๋กœ ๊ตฌ์„ฑ๋œ Grafana๋ฅผ ํ†ตํ•ฉํ–ˆ์œผ๋ฉฐ ์ด URL์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.

Prometheus์™€ Gitlab ํ†ตํ•ฉ์—๋Š” ๋‘ ๊ฐ€์ง€ ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • GitLab ๋ชจ๋‹ˆํ„ฐ๋ง(์˜ด๋‹ˆ๋ฒ„์Šค)
  • Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๊ฐœ๋ณ„ GitLab ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋‹ˆํ„ฐ๋ง

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

"Omnibus"๋Š” GitLab์ด ๊ธฐ๋ณธ ์„ค์น˜ ํŒจํ‚ค์ง€๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์‹œ์žฅ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋” ๋‚˜์€์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๊ทธ๋ผํŒŒ๋‚˜ ์„ค์ • ๋ฐฉ๋ฒ•

Grafana ๋กœ๊ทธ์ธ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€๋งŒ(SSO ๋กœ๊ทธ์ธ๋งŒ ํ—ˆ์šฉ) ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ๊ณ„์ •์— ๋กœ๊ทธ์ธํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๋กœ๊ทธ์ธ์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ Gitlab ๊ตฌ์„ฑ์—์„œ ์ด๋ฅผ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์ค„์„ ํŽธ์ง‘ํ•˜์—ฌ /etc/gitlab/gitlab .rb ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜์„ธ์š”.

grafana['disable_login_form'] = false

๊ทธ๋ฆฌ๊ณ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๋„๋ก Gitlab์„ ์žฌ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

sudo gitlab-ctl reconfigure

Marketplace์˜ ๊ฐ€์ƒ ๋จธ์‹  ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ Gitlab์„ ์‹œ์ž‘ํ•œ ๊ฒฝ์šฐ /etc/gitlab/gitlab.rb์—์„œ ํ•ด๋‹น ์ค„์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์„œ๋ฒ„์— URL์„ ํ• ๋‹นํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

external_url = 'http://gitlab.mydomain.ru'

์žฌ๊ตฌ์„ฑ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

sudo gitlab-ctl reconfigure

๊ทธ์— ๋”ฐ๋ผ Grafana์˜ ๋ฆฌ๋””๋ ‰์…˜ URI๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ฆฌ ์˜์—ญ > ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ > GitLab Grafana

gitlab.mydomain.ru/-/grafana/login/gitlab

์šฐ๋ฆฌ๋Š” ์‹œ์žฅ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋” ๋‚˜์€์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

SSO๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜์Œ ๋กœ๊ทธ์ธํ•˜๋ฉด Gitlab์€ Grafana ๋กœ๊ทธ์ธ์„ ์Šน์ธํ•˜๊ธฐ ์œ„ํ•œ ๊ถŒํ•œ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์‹œ์žฅ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋” ๋‚˜์€์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ธก์ •ํ•ญ๋ชฉ

Grafana์—์„œ๋Š” ๊ธฐ๋ณธ ์„œ๋น„์Šค์˜ ๊ธฐ์„ฑ ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ โ€‹โ€‹Gitlab Omnibus ์นดํ…Œ๊ณ ๋ฆฌ์—์„œ ๊ตฌ์„ฑ๋˜๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์‹œ์žฅ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋” ๋‚˜์€์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
๋Œ€์‹œ๋ณด๋“œ ๊ฐœ์š”

์šฐ๋ฆฌ๋Š” ์‹œ์žฅ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋” ๋‚˜์€์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
์„œ๋น„์Šค ํ”Œ๋žซํผ ์ง€ํ‘œ ๋Œ€์‹œ๋ณด๋“œ

  • ๊ฐœ์š” - ์„œ๋น„์Šค, ๋Œ€๊ธฐ์—ด ๋ฐ ์„œ๋ฒ„ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ ์ƒํƒœ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฐœ์š” ๋Œ€์‹œ๋ณด๋“œ
  • Gitaly - Gitlab ์ €์žฅ์†Œ์— ๋Œ€ํ•œ RPC ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค ๋ชจ๋‹ˆํ„ฐ๋ง
  • NGINX VTS - ์š”์ฒญ๋‹น ์„œ๋น„์Šค ํŠธ๋ž˜ํ”ฝ ๋ฐ HTTP ์ฝ”๋“œ์— ๋Œ€ํ•œ ํ†ต๊ณ„
  • PostgreSQL - PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐ€์šฉ์„ฑ ๋ฐ ๋กœ๋“œ์— ๋Œ€ํ•œ ํ†ต๊ณ„
  • Praefect - ๊ณ ๊ฐ€์šฉ์„ฑ์„ ๊ฐ–์ถ˜ ์Šคํ† ๋ฆฌ์ง€ ๋ถ€ํ•˜ ๋ชจ๋‹ˆํ„ฐ๋ง Praefect
  • Rails ์•ฑ - Rails ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ์š” ๋Œ€์‹œ๋ณด๋“œ
  • Redis - Redis ์„œ๋น„์Šค์˜ ๋กœ๋“œ ๋ชจ๋‹ˆํ„ฐ๋ง
  • ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ - ์ด๋ฏธ์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋ชจ๋‹ˆํ„ฐ๋ง
  • ์„œ๋น„์Šค ํ”Œ๋žซํผ ์ง€ํ‘œ - Gitlab์˜ ๋ฆฌ์†Œ์Šค ํ™œ์šฉ๋„, ์„œ๋น„์Šค ๊ฐ€์šฉ์„ฑ, RPC ์š”์ฒญ ์ˆ˜ ๋ฐ ์˜ค๋ฅ˜ ์ˆ˜๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์„œ๋น„์Šค ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค.

ํ†ตํ•ฉ์€ ๋งค์šฐ ํฌ๊ด„์ ์ด๋ฉฐ Gitlab ์‚ฌ์šฉ์ž๋Š” ์ฆ‰์‹œ ์‹œ๊ฐํ™”๋œ Gitlab ์ธก์ •ํ•ญ๋ชฉ์„ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Gitlab์—์„œ๋Š” ๋Œ€์‹œ๋ณด๋“œ ์œ ์ง€ ๋ฐ ์—…๋ฐ์ดํŠธ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๋ณ„๋„์˜ ํŒ€์ด ์žˆ์œผ๋ฉฐ Gitlab์˜ SRE ์—”์ง€๋‹ˆ์–ด์ธ Ben Kochie์— ๋”ฐ๋ฅด๋ฉด ๊ธฐ๋ณธ ์„ค์ •๊ณผ ์ค€๋น„๋œ ๋Œ€์‹œ๋ณด๋“œ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ํ•จ๊ป˜ ์‹œ์žฅ์„ ๋งŒ๋“ค์–ด ๋ณด์ž๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ „์ฒด Habr ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์ƒ์„ฑ์— ์ฐธ์—ฌํ•˜๋„๋ก ์ดˆ๋Œ€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ž… ๋ฐฉ๋ฒ•์—๋Š” ์„ธ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€๋ฅผ ์ง์ ‘ ์ค€๋น„ํ•˜๊ณ  ์ž”๊ณ ์— 3000๋ฃจ๋ธ”์„ ํ™•๋ณดํ•˜์„ธ์š”.

์ฆ‰์‹œ ์ „ํˆฌ์— ๋Œ์ž…ํ•˜์—ฌ ๋ˆ„๋ฝ๋œ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ค€๋น„๊ฐ€ ๋˜์…จ๋‹ค๋ฉด ์„œ๋ฒ„์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ด๋ถ€ ์ž”์•ก์œผ๋กœ 3000๋ฃจ๋ธ”์„ ์ ๋ฆฝํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•:

  1. ์šฐ๋ฆฌ์™€ ํ•จ๊ป˜ ๊ณ„์ •์„ ๋งŒ๋“œ์„ธ์š” ์˜จ๋ผ์ธ์œผ๋กœ
  2. ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ง€์›ํŒ€์— ์•Œ๋ฆฌ์„ธ์š”.
  3. 3000๋ฃจ๋ธ”์„ ์ ๋ฆฝํ•ด ๋“œ๋ฆฌ๊ณ  ์Šค๋ƒ…์ƒท์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
  4. ๊นจ๋—ํ•œ ์šด์˜ ์ฒด์ œ๋กœ ๊ฐ€์ƒ ์„œ๋ฒ„๋ฅผ ์ฃผ๋ฌธํ•˜์„ธ์š”
  5. ์ด VPS์— ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์„ค์ •ํ•˜์„ธ์š”.
  6. ์†Œํ”„ํŠธ์›จ์–ด ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ง€์นจ ๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ
  7. ๊ตฌ์„ฑ๋œ ์„œ๋ฒ„์— ๋Œ€ํ•œ ์Šค๋ƒ…์ƒท ์ƒ์„ฑ
  8. "์„œ๋ฒ„ ํ…œํ”Œ๋ฆฟ" ๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์—์„œ ์ด์ „์— ์ƒ์„ฑ๋œ ์Šค๋ƒ…์ƒท์„ ์„ ํƒํ•˜์—ฌ ์ƒˆ ๊ฐ€์ƒ ์„œ๋ฒ„๋ฅผ ์ฃผ๋ฌธํ•ฉ๋‹ˆ๋‹ค.
  9. ์„œ๋ฒ„ ์ƒ์„ฑ์— ์„ฑ๊ณตํ•˜๋ฉด 6๋‹จ๊ณ„์—์„œ ๋ฐ›์€ ์ž๋ฃŒ๋ฅผ ๊ธฐ์ˆ ์ง€์›ํŒ€์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  10. ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ์ง€์›ํŒ€์— ์›์ธ์„ ํ™•์ธํ•˜๊ณ  ์„ค์ •์„ ๋ฐ˜๋ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„์ฆˆ๋‹ˆ์Šค ์†Œ์œ ์ž์˜ ๊ฒฝ์šฐ: ์†Œํ”„ํŠธ์›จ์–ด ์ œ๊ณต

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

๋Œ“๊ธ€๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ถ”์ฒœํ•ด์ฃผ์„ธ์š”

ํ•œ ๋ฒˆ์˜ ํด๋ฆญ์œผ๋กœ ๊ฐ€์ƒ ๋จธ์‹ ์„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ž‘์„ฑํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

RUVDS ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค์—์„œ ๋ฌด์—‡์„ ๊ทธ๋ฆฌ์›Œํ•˜์‹œ๋‚˜์š”?

์ž์กด์‹ฌ์ด ๊ฐ•ํ•œ ๋ชจ๋“  ํ˜ธ์ŠคํŒ… ํšŒ์‚ฌ๋Š” ์‹œ์žฅ์— ๋ฌด์—‡์„ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์šฐ๋ฆฌ๋Š” ์‹œ์žฅ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋” ๋‚˜์€์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์šฐ๋ฆฌ๋Š” ์‹œ์žฅ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋” ๋‚˜์€์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋“ฑ๋ก๋œ ์‚ฌ์šฉ์ž๋งŒ ์„ค๋ฌธ ์กฐ์‚ฌ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ์ œ๋ฐœ

๋จผ์ € ์–ด๋–ค ์ด๋ฏธ์ง€๋ฅผ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค์— ํฌํ•จํ•ด์•ผ ํ• ๊นŒ์š”?

  • 50,0%LEMP10

  • 15,0%๋“œ๋ฃจํŒ”3

  • 10,0%์คŒ๋ผ2

  • 5,0%๋…์ฟ 1

  • 0,0%PacVim0

  • 0,0%๋Ÿฐํด๋ผ์šฐ๋“œ0

  • 5,0%์ฝ”๋“œ ์„œ๋ฒ„1

  • 15,0%Ghost3

  • 5,0%WikiJs1

  • 0,0%๋‹ด๋ก 0

  • 0,0%์•Œ์ŠคํŠœ๋””์˜ค0

  • 5,0%์˜คํ”ˆ์นดํŠธ1

  • 35,0%Django7

  • 40,0%๋ผ๋ผ๋ฒจ8

  • 20,0%๋ฃจ๋น„ ์˜จ ๋ ˆ์ผ์Šค4

  • 55,0%NodeJs11

20๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ํˆฌํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. 12๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๊ถŒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€