์ด๊ฒ์ ์๋ ์ Postgres์ ๋ํ ์ง๋ฌธ์ผ๋ก ๋์๊ฒ ์ ๊ทผํ ์น๊ตฌ ์ค ํ ์ฌ๋์ ์ธ์ฉ๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ค๊ฐ ์ฐ๋ฆฌ๋ ๋ฉฐ์น ๋ง์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๊ทธ๋ ๋์๊ฒ ๊ฐ์ฌํ๋ค๊ณ ๋ง๋ถ์์ต๋๋ค. โ์ต์ํ DBA๊ฐ ์์ด์ ์ข์์.โ
ํ์ง๋ง DBA๋ฅผ ๋ชจ๋ฅธ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ์น๊ตฌ ์ค์์ ์น๊ตฌ๋ฅผ ์ฐพ๋ ๊ฒ๋ถํฐ ์ง๋ฌธ์ ์ง์ ์ฐ๊ตฌํ๋ ๊ฒ๊น์ง ๋ค์ํ ๋ต๋ณ ์ต์ ์ด ์์ ์ ์์ต๋๋ค. ํ์ง๋ง ์ด๋ค ๋๋ต์ด ๋ ์ค๋ฅด๋ ์ข์ ์์์ด ์์ต๋๋ค. ํ ์คํธ ๋ชจ๋์์๋ Postgres์ ๊ทธ ์ฃผ๋ณ์ ๋ชจ๋ ๊ฒ์ ๋ํ ์ถ์ฒ ์๋น์ค๋ฅผ ์์ํ์ต๋๋ค. ์ด๊ฒ ๋ญ๊ณ , ์ฐ๋ฆฌ๋ ์ด์ฉ๋ค๊ฐ ์ด๋ ๊ฒ ์ด๊ฒ ๋๋?
์ ์ด๊ฒ์ด ์ ๋ถ์ ๋๊น?
Postgres๋ ์ ์ด๋ ์ฝ์ง ์์ผ๋ฉฐ ๋๋ก๋ ๋งค์ฐ ์ด๋ ต์ต๋๋ค. ์ฐธ์ฌ ์ ๋์ ์ฑ ์ ์ ๋์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
์ด์์ ์ข ์ฌํ๋ ์ฌ๋๋ค์ Postgres as a Service๊ฐ ์ฌ๋ฐ๋ฅด๊ณ ์์ ์ ์ผ๋ก ์๋ํ๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ์ฆ, ๋ฆฌ์์ค ํ์ฉ๋, ๊ฐ์ฉ์ฑ, ๊ตฌ์ฑ์ ์ ์ ์ฑ์ ๋ชจ๋ํฐ๋งํ๊ณ ์ ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธ์ ์ ๊ธฐ์ ์ธ ์ํ ์ ๊ฒ์ ์ํํด์ผ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ณ ์์ฑํ๋ ์ฌ๋๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ ์์ฉํ๋ ๋ฐฉ์๊ณผ ์ด๋ก ์ธํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ค๋จ๋ ์ ์๋ ๊ธด๊ธ ์ํฉ์ด ๋ฐ์ํ์ง ์๋์ง ๋ชจ๋ํฐ๋งํด์ผ ํฉ๋๋ค. ์ด๋ค ์ฌ๋์ด ๊ธฐ์ ์ฑ ์์/๊ธฐ์ ์ด์ฌ๊ฐ ๋ ๋งํผ ์ด์ด ์ข์ง ์๋ค๋ฉด Postgres ์ ์ฒด๊ฐ ์์ ์ ์ด๊ณ ์์ธก ๊ฐ๋ฅํ๋ฉฐ ๋ฌธ์ ๋ฅผ ์ผ์ผํค์ง ์๋ ๊ฒ์ด ์ค์ํ์ง๋ง ์ค๋ซ๋์ Postgres์ ๊น์ด ๋น ์ ธ๋ค์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. .
์ด ๊ฒฝ์ฐ์๋ ๊ทํ์ Postgres๊ฐ ์์ต๋๋ค. Postgres๋ฅผ ์ ๋๋ก ์ ๊ณตํ๋ ค๋ฉด Postgres์ ๋ํด ์ ์ดํดํ๊ณ ์๋ ๋ฐฉ์์ ์ดํดํด์ผ ํฉ๋๋ค. Postgres๊ฐ ์ง์ ์ ์ธ ์ ๋ฌธ ๋ถ์ผ๊ฐ ์๋ ๊ฒฝ์ฐ Postgres๋ฅผ ๋ฐฐ์ฐ๋ ๋ฐ ๊ฝค ๋ง์ ์๊ฐ์ ํ ์ ํ ์ ์์ต๋๋ค. ์ด์์ ์ผ๋ก๋ ์๊ฐ๊ณผ ์๊ตฌ๊ฐ ์์ ๋ ์ด๋์ ์์ํด์ผ ํ ์ง, ์ด๋ป๊ฒ, ์ด๋๋ก ์ด๋ํ ์ง ํญ์ ๋ช ํํ์ง ์์ต๋๋ค.
์ด๋ก ์ ์ผ๋ก ์ด์์ ์ฉ์ดํ๊ฒ ํ๋ ๋ชจ๋ํฐ๋ง์ด ๋์ ๋๋๋ผ๋ ์ ๋ฌธ ์ง์์ ๋ฌธ์ ๋ ์ฌ์ ํ ์ด๋ ค ์์ต๋๋ค. ๊ทธ๋ํ๋ฅผ ์ฝ๊ณ ์ดํดํ๋ ค๋ฉด Postgres์ ์๋ ๋ฐฉ์์ ์ ์ดํดํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ชจ๋ ๋ชจ๋ํฐ๋ง์ด ํ๋ฃจ ์ค ์์์ ์๊ฐ์ ์๋ฆผ์ผ๋ก ์ธํด ์ฌํ ๊ทธ๋ฆผ๊ณผ ์คํธ์ผ๋ก ๋ณํฉ๋๋ค.
์ด ์๋น์ค์ ์ฃผ์ ๋ชฉํ๋ ํ์ฌ ์ผ์ด๋๊ณ ์๋ ์ผ๊ณผ ๋ค์์ ์ํํด์ผ ํ ์์ ์ ๋ํ ์์ด๋์ด๋ฅผ ์ ๊ณตํ๋ ๋ช ํํ ๊ถ์ฅ ์ฌํญ์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค.
์ ๋ฌธ ์ง์์ด ์๋ ์ ๋ฌธ๊ฐ๋ฅผ ์ํด ๊ถ์ฅ ์ฌํญ์ ๊ณ ๊ธ ๊ต์ก์ ์ํ ์ถ๋ฐ์ ์ ์ ๊ณตํฉ๋๋ค. ๊ณ ๊ธ ์ ๋ฌธ๊ฐ์ ๊ฒฝ์ฐ ๊ถ์ฅ ์ฌํญ์ ์ฃผ์ํด์ผ ํ ์ฌํญ์ ๋ํ๋ ๋๋ค. ์ด๋ฐ ์ ์์ Weaponry๋ ์ผ์์ ์ธ ์์ ์ ์ํํ์ฌ ํน๋ณํ ์ฃผ์๊ฐ ํ์ํ ๋ฌธ์ ๋ ๋จ์ ์ ์ฐพ์๋ด๋ ๋ณด์กฐ์ ์ญํ ์ ํฉ๋๋ค. ๋ฌด๊ธฐ๋ Postgres๋ฅผ ํ์ธํ๊ณ ๊ฒฐํจ์ ์ง์ ํ๋ ๋ฆฐํฐ์ ๋น์ ๋ ์ ์์ต๋๋ค.
์ง๊ธ์ ์ด๋ค๊ฐ์?
์๊ฐ์์,
๊ทธ๊ฑด ๊ทธ๋ ๊ณ , ๊ถ์ฅ ์ฌํญ์ ์ฌ์ ํ โโโโ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ์ถ๊ฐ ์ธ๋ถ ์ ๋ณด์์ด ๋ฌด์์ ํด์ผํ ์ง, ์ด๋ป๊ฒ ํด์ผํ ์ง ์๋ ค์ค๋๋ค. ๋ฐ๋ผ์ ๋จผ์ ๊ด๋ จ ๋งํฌ๋ฅผ ๋ฐ๋ฅด๊ฑฐ๋ Google์ ๋ฐ๋ผ์ผํฉ๋๋ค. ์ ๊ฒ ๋ฐ ๊ถ์ฅ ์ฌํญ์๋ ์์คํ ๋ฐ ํ๋์จ์ด ์ค์ , Postgres ์์ฒด ์ค์ , ๋ด๋ถ ์คํค๋ง ๋ฐ ์ฌ์ฉ๋ ๋ฆฌ์์ค๊ฐ ํฌํจ๋ฉ๋๋ค. ์์ง ๊ณํ์ ์ถ๊ฐํด์ผ ํ ๊ฒ๋ค์ด ๊ฝค ๋ง์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฌผ๋ก , ์ฐ๋ฆฌ๋ ์๋น์ค๋ฅผ ์๋ํ๊ณ ํผ๋๋ฐฑ์ ์ค ์ค๋น๊ฐ ๋์ด ์๋ ์์๋ด์ฌ์๋ฅผ ์ฐพ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ฐ์ง๊ณ ์๋ค
2020-09-16 ์ ๋ฐ์ดํธ๋จ. ์์ํ๊ธฐ.
๋ฑ๋ก ํ ์ฌ์ฉ์์๊ฒ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค๋ฅผ ๊ทธ๋ฃน์ผ๋ก ๊ฒฐํฉํ ์ ์์ต๋๋ค. ํ๋ก์ ํธ๋ฅผ ์์ฑํ ํ ์ฌ์ฉ์์๊ฒ ์์ด์ ํธ ๊ตฌ์ฑ ๋ฐ ์ค์น ์ง์นจ์ด ํ์๋ฉ๋๋ค. ๊ฐ๋จํ ๋งํด์ ์์ด์ ํธ์ ๋ํ ์ฌ์ฉ์๋ฅผ ์์ฑํ ๋ค์ ์์ด์ ํธ ์ค์น ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ด๋ก๋ํ์ฌ ์คํํด์ผ ํฉ๋๋ค. ์ ๋ช ๋ น์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
psql -c "CREATE ROLE pgscv WITH LOGIN SUPERUSER PASSWORD 'A7H8Wz6XFMh21pwA'"
export PGSCV_PG_PASSWORD=A7H8Wz6XFMh21pwA
curl -s https://dist.weaponry.io/pgscv/install.sh |sudo -E sh -s - 1 6ada7a04-a798-4415-9427-da23f72c14a5
ํธ์คํธ์ pgbouncer๊ฐ ์๋ ๊ฒฝ์ฐ ์์ด์ ํธ๋ฅผ ์ฐ๊ฒฐํ๋ ค๋ฉด ์ฌ์ฉ์๋ ๋ง๋ค์ด์ผ ํฉ๋๋ค. pgbouncer์์ ์ฌ์ฉ์๋ฅผ ๊ตฌ์ฑํ๋ ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ์ ๋งค์ฐ ๋ค์ํ ์ ์์ผ๋ฉฐ ์ฌ์ฉ๋ ๊ตฌ์ฑ์ ๋ฐ๋ผ ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ค์ ์ ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ผ๋ก ๊ท๊ฒฐ๋ฉ๋๋ค. ํต๊ณ_์ฌ์ฉ์ ๊ตฌ์ฑ ํ์ผ(๋ณดํต pgbouncer.ini) ๋งค๊ฐ๋ณ์์ ์ง์ ๋ ํ์ผ์ ๋น๋ฐ๋ฒํธ(๋๋ ํด๋น ํด์)๋ฅผ ์๋๋ค. ์ธ์ฆ_ํ์ผ. stats_users๋ฅผ ๋ณ๊ฒฝํ๋ฉด pgbouncer๋ฅผ ๋ค์ ์์ํด์ผ ํฉ๋๋ค.
install.sh ์คํฌ๋ฆฝํธ๋ ๊ฐ ํ๋ก์ ํธ์ ๊ณ ์ ํ ๋ช ๊ฐ์ง ํ์ ์ธ์๋ฅผ ์ฌ์ฉํ๊ณ ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ์์ฑ๋ ์ฌ์ฉ์์ ์ธ๋ถ ์ ๋ณด๋ฅผ ํ์ฉํฉ๋๋ค. ๋ค์์ผ๋ก ์คํฌ๋ฆฝํธ๋ ๋ถํธ์คํธ๋ฉ ๋ชจ๋์์ ์์ด์ ํธ๋ฅผ ์์ํฉ๋๋ค. ์์ด์ ํธ๋ ์์ ์ PATH์ ๋ณต์ฌํ๊ณ ์ธ๋ถ ์ ๋ณด๊ฐ ํฌํจ๋ ๊ตฌ์ฑ, systemd ๋จ์๋ฅผ ์์ฑํ๊ณ systemd ์๋น์ค๋ก ์์ํฉ๋๋ค.
์ด๊ฒ์ผ๋ก ์ค์น๊ฐ ์๋ฃ๋ฉ๋๋ค. ๋ช ๋ถ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค๊ฐ ์ธํฐํ์ด์ค์ ํธ์คํธ ๋ชฉ๋ก์ ๋ํ๋๋ฉฐ ์ด๋ฏธ ์ฒซ ๋ฒ์งธ ๊ถ์ฅ ์ฌํญ์ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ค์ํ ์ ์ ๋ง์ ์ถ์ฒ์๋ (์ ์ด๋ ํ๋ฃจ์) ๋ง์ ์์ ๋์ ๋ ์งํ๊ฐ ํ์ํ๋ค๋ ๊ฒ์
๋๋ค.
์ถ์ฒ : habr.com