์๋
ํ์ธ์, ํ๋ธ๋กํ์คํฌ ์ฃผ๋ฏผ ์ฌ๋ฌ๋ถ. ์ค๋๋ถํฐ ์ฒซ ๋ฒ์งธ ๊ทธ๋ฃน ์์
์ด ์์๋ฉ๋๋ค
ะ
์จ๋น๋๊ฐ ๊ฐ์ต๋์์ต๋๋ค
๋๋ฌด๊ฐ ์์๋ ์์ ..
๋จผ์ ์ง๋ ์ธ๊ธฐ๋ง DBMS์ ์ ํ์ด ์ด๋ป๊ฒ ์์๋์๋์ง ๊ธฐ์ตํด๋ณด์. ํ์ง๋ง ์ด๋ ๋น์ DBMS์ ์ ํ์ด ์์๋๊ณ ๋๋ฌ๊ธฐ ๋๋ฌธ์ ์ด๋ ต์ง ์์ ๊ฒ์ด๋ค. ์ ํ.
90๋
๋ ํ๋ฐ๊ณผ 2๋
๋ ์ด๋ฐ์๋ ์ฐ์
์ฉ์ผ๋ก ํ์ฅ ๊ฐ๋ฅํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ดํด์๋ ๋ณธ์ง์ ์ผ๋ก ์ ํ์ ์ฌ์ง๊ฐ ์์์ต๋๋ค. ์, IBM DBXNUMX, Sybase ๋ฐ ๊ธฐํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋ค ๊ฐ๋ค ํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก Oracle์ ๋ฐฐ๊ฒฝ์ ๋นํด ๊ทธ๋ค์ง ๋์ ๋์ง ์์์ต๋๋ค. ๋ฐ๋ผ์ ๋น์ ์์ง๋์ด์ ๊ธฐ์ ์ ์กด์ฌํ๋ ์ ์ผํ ์ ํ๊ณผ ์ด๋ป๊ฒ๋ ์ฐ๊ฒฐ๋์ด ์์์ต๋๋ค.
Oracle DBA๋ ๋ค์์ ์ํํ ์ ์์ด์ผ ํ์ต๋๋ค.
- ๋ฐฐํฌ ํคํธ์์ Oracle Server๋ฅผ ์ค์นํฉ๋๋ค.
- Oracle ์๋ฒ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
- init.ora;
- ๋ฆฌ์ค๋.ora;
- ๋ง๋ค๋ค:
- ํ ์ด๋ธ์คํ์ด์ค;
- ๊ณํ;
- ์ฌ์ฉ์;
โ ๋ฐฑ์
๋ฐ ๋ณต์์ ์ํํฉ๋๋ค.
- ๋ชจ๋ํฐ๋ง์ ์ํํ๋ค.
โ ์ต์ ์ด ์๋ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
๋์์ Oracle DBA์์๋ ํน๋ณํ ์๊ตฌ ์ฌํญ๋ ์์์ต๋๋ค.
- ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ์ต์ ์ DBMS ๋๋ ๊ธฐํ ๊ธฐ์ ์ ์ ํํ ์ ์์ต๋๋ค.
- ๊ณ ๊ฐ์ฉ์ฑ๊ณผ ์ํ์ ํ์ฅ์ฑ์ ์ ๊ณตํฉ๋๋ค(ํญ์ DBA ๋ฌธ์ ๋ ์๋์์ต๋๋ค).
- ์ฃผ์ ์์ญ, ์ธํ๋ผ, ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ, OS์ ๋ํ ํ๋ถํ ์ง์
- ๋ฐ์ดํฐ ๋ก๋ ๋ฐ ์ธ๋ก๋, ์๋ก ๋ค๋ฅธ DBMS ๊ฐ์ ๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์ .
์ผ๋ฐ์ ์ผ๋ก ๋น์ ์ ํ์ ๋ํด ์ด์ผ๊ธฐํ๋ฉด 80๋ ๋ ํ๋ฐ ์๋ จ ์์ ์ ์ ํ๊ณผ ์ ์ฌํฉ๋๋ค.
์ฐ๋ฆฌ ์๋
๋ฌผ๋ก ๊ทธ ์ดํ๋ก ๋๋ฌด๋ ์๋ผ๊ณ , ์ธ์๋ ๋ฐ๋์๊ณ , ๋ค์๊ณผ ๊ฐ์ด ๋ณํ์ต๋๋ค.
Gartner์ ์ต์ ๋ณด๊ณ ์์์ ๋ถ๋ช
ํ ์ ์ ์๋ฏ์ด DBMS ์์ฅ๋ ๋ณํํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ์ธ๊ธฐ๊ฐ ๋์์ง๊ณ ์๋ ํด๋ผ์ฐ๋๊ฐ ํ์ ์์ฅ์ ์ ์ ํ๊ณ ์๋ค๋ ์ ์ ์ฃผ๋ชฉํด์ผ ํฉ๋๋ค. ๋์ผํ Gartner ๋ณด๊ณ ์๋ฅผ ์ฝ์ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๋ก ์ ์ป์ ์ ์์ต๋๋ค.
- ๋ง์ ๊ณ ๊ฐ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ํด๋ผ์ฐ๋๋ก ์ด๋ํ๋ ๊ณผ์ ์ ์์ต๋๋ค.
- ์๋ก์ด ๊ธฐ์ ์ ํด๋ผ์ฐ๋์ ์ฒ์ ๋ฑ์ฅํ๋ฉฐ, ์ด๋ฌํ ๊ธฐ์ ์ด ํด๋ผ์ฐ๋๊ฐ ์๋ ์ธํ๋ผ๋ก ์ด๋ํ๋ค๋ ๊ฒ์ ์ฌ์ค์ด ์๋๋๋ค.
- ์ข ๋์ ๊ฐ๊ฒฉ ์ฑ ์ ๋ชจ๋ธ์ด ์ผ๋ฐํ๋์์ต๋๋ค. ๋ชจ๋ ์ฌ๋์ ์์ ์ด ์ฌ์ฉํ ๋งํผ๋ง ๋น์ฉ์ ์ง๋ถํ๊ธฐ๋ฅผ ์ํ๋ฉฐ ์ด๋ ์ถ์ธ๊ฐ ์๋๋ผ ๋จ์ํ ์ฌ์ค์ ๋ํ ์ค๋ช ์ ๋๋ค.
์ง๊ธ ๋ญ์ผ?
์ค๋๋ ์ฐ๋ฆฌ๋ ๋ชจ๋ ํด๋ผ์ฐ๋์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ์๊ฒ ๋ฐ์ํ๋ ์ง๋ฌธ์ ์ ํ์ ์ง๋ฌธ์ ๋๋ค. ์จํ๋ ๋ฏธ์ค ํ์์ DBMS ๊ธฐ์ ์ ํ์ ๋ํด์๋ง ์ด์ผ๊ธฐํ๋๋ผ๋ ๊ทธ ๊ท๋ชจ๋ ์์ฒญ๋ฉ๋๋ค. ๋ํ ๊ด๋ฆฌํ ์๋น์ค์ SaaS๋ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ํ์ ๋งค๋ ๋์ฑ ์ด๋ ค์์ง๋๋ค.
์ ํ์ ์ง๋ฌธ๊ณผ ํจ๊ป ์ ํ ์์ธ:
- ๊ฐ๊ฒฉ. ๋ง์ ๊ธฐ์ ์๋ ์ฌ์ ํ ๋น์ฉ์ด ๋ญ๋๋ค.
- ๊ธฐ์ . ์์ ์ํํธ์จ์ด์ ๊ดํด ์ด์ผ๊ธฐํ๋ค๋ฉด ๊ธฐ์ ์ ๋ํ ๋ฌธ์ ๊ฐ ์ ๊ธฐ๋ฉ๋๋ค. ์๋ํ๋ฉด ์์ ์ํํธ์จ์ด๋ ๊ทธ๊ฒ์ ๋ฐฐํฌํ๊ณ ์ด์ํ๋ ์ฌ๋๋ค์ ์ถฉ๋ถํ ์ญ๋์ ์๊ตฌํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ๊ธฐ๋ฅ์. ํด๋ผ์ฐ๋์์ ์ฌ์ฉ ๊ฐ๋ฅํ๊ณ ๋์ผํ Postgres์ ๊ตฌ์ถ๋ ๋ชจ๋ ์๋น์ค๊ฐ Postgres On-Premise์ ๋์ผํ ๊ธฐ๋ฅ์ ๊ฐ๋ ๊ฒ์ ์๋๋๋ค. ์ด๋ ๋ฐ๋์ ์๊ณ ์ดํดํด์ผ ํ ํ์ ์์์ ๋๋ค. ๋์ฑ์ด ์ด ์์๋ ๋จ์ผ DBMS์ ์ผ๋ถ ์จ๊ฒจ์ง ๊ธฐ๋ฅ์ ๋ํ ์ง์๋ณด๋ค ๋ ์ค์ํด์ง๋๋ค.
ํ์ฌ DA/DE์์ ๊ธฐ๋๋๋ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ฃผ์ ์์ญ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ์ ๋ํ ์ข์ ์ดํด
- ํ์ฌ ์์ ์ ๊ณ ๋ คํ์ฌ ์ ์ ํ DBMS ๊ธฐ์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ ํํ๋ ๋ฅ๋ ฅ
- ๊ธฐ์กด ์ ํ ์ฌํญ์ ๋งฅ๋ฝ์์ ์ ํํ ๊ธฐ์ ์ ๊ตฌํํ๊ธฐ ์ํ ์ต์ ์ ๋ฐฉ๋ฒ์ ์ ํํ๋ ๋ฅ๋ ฅ
- ๋ฐ์ดํฐ ์ ์ก ๋ฐ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ํํ๋ ๋ฅ๋ ฅ;
- ์ ํ๋ ์๋ฃจ์ ์ ๊ตฌํํ๊ณ ์ด์ํ๋ ๋ฅ๋ ฅ.
์๋ ์ GCP ๊ธฐ๋ฐ ๋ฐ์ดํฐ ์์ ์ ์ํ ํ๋ ๋๋ ๋ค๋ฅธ ๊ธฐ์ ์ ์ ํ์ด ๊ตฌ์กฐ์ ๋ฐ๋ผ ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ณด์ฌ์ค๋๋ค.
PostgreSQL์ ์คํค๋ง์ ํฌํจ๋์ด ์์ง ์์ผ๋ฉฐ ์ด๋ ์ฉ์ด ์๋์ ์จ๊ฒจ์ ธ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ํด๋ผ์ฐ๋ SQL. ๊ทธ๋ฆฌ๊ณ Cloud SQL์ ๋๋ฌํ๋ฉด ๋ค์ ์ ํํด์ผ ํฉ๋๋ค.
์ด ์ ํ์ด ํญ์ ๋ช
ํํ ๊ฒ์ ์๋๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์๋ ์ข
์ข
์ง๊ด์ ๋ฐ๋ผ ์๋ด๋๋ค๋ ์ ์ ์ ์ํด์ผ ํฉ๋๋ค.
์ด๊ณ :
- ๋ ๋ฉ๋ฆฌ ๊ฐ์๋ก ์ ํ์ ๋ฌธ์ ๋ ๋์ฑ ์๊ธํด์ง๋๋ค. ๊ทธ๋ฆฌ๊ณ GCP, ๊ด๋ฆฌํ ์๋น์ค, SaaS๋ง ๋ณด๋๋ผ๋ RDBMS์ ๋ํ ์ธ๊ธ์ 4๋จ๊ณ์์๋ง ๋ํ๋ฉ๋๋ค(๊ทธ๋ฆฌ๊ณ Spanner๊ฐ ๊ทผ์ฒ์ ์์ต๋๋ค). ๊ฒ๋ค๊ฐ 5๋จ๊ณ์ PostgreSQL์ ์ ํ์ด ๋์ค๋ฉฐ, ๊ทธ ์์๋ MySQL๊ณผ SQL Server๋ ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ๋ง์ง๋ง ์ ํํด์ผํฉ๋๋ค.
- ์ ํน์ ๋ฐฐ๊ฒฝ์ ๋ํ ์ ํ์ ์์ด์๋ ์๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ์ฌ๋์ด Spanner๋ฅผ ์ํ์ง๋ง ๋น์ฉ์ด ๋ง์ด ๋ญ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ผ๋ฐ์ ์ธ ์์ฒญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. โ์ ํฌ์๊ฒ Spanner๋ฅผ ๋ง๋ค์ด ์ฃผ์ธ์. ํ์ง๋ง Cloud SQL์ ๊ฐ๊ฒฉ์ ์๊ฐํ๋ค๋ฉด ๋น์ ์ ์ ๋ฌธ๊ฐ์ ๋๋ค!โ
๋ฌด์์ํด์ผํฉ๋๊น?
๊ถ๊ทน์ ์ธ ์ง์ค์ด๋ผ๊ณ ์ฃผ์ฅํ์ง ์๊ณ ๋ค์๊ณผ ๊ฐ์ด ๋งํด๋ณด์.
์ฐ๋ฆฌ๋ ํ์ต์ ๋ํ ์ ๊ทผ ๋ฐฉ์์ ๋ฐ๊ฟ์ผ ํฉ๋๋ค.
- ์ด์ ์ DBA๋ฅผ ๊ฐ๋ฅด์ณค๋ ๋ฐฉ์์ ๊ฐ๋ฅด์น๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค.
- ํ๋์ ์ ํ์ ๋ํ ์ง์๋ง์ผ๋ก๋ ๋ ์ด์ ์ถฉ๋ถํ์ง ์์ต๋๋ค.
- ๊ทธ๋ฌ๋ ํ ์ฌ๋์ ์์ค์์ ์์ญ ์ฌ๋์ ์๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ ํ์ ๊ฐ๊ฒฉ๋ฟ๋ง ์๋๋ผ ๋ค์ ์ฌํญ๋ ์์์ผ ํฉ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ ์ฌ๋ก
- ๋ค์ํ ๋ฐฐํฌ ๋ฐฉ๋ฒ;
- ๊ฐ ๋ฐฉ๋ฒ์ ์ฅ์ ๊ณผ ๋จ์ ;
- ํญ์ ์น์ํ ์ ํ์ ์ ํธํ๋ ๊ฒ์ ์๋์ง๋ง ์ ๋ณด์ ์ ๊ฐํ ์ต์ ์ ์ ํ์ ํ๊ธฐ ์ํด ์ ์ฌ ๋ฐ ๋์ฒด ์ ํ์ ์ฌ์ฉํฉ๋๋ค.
๋ํ ๋ฐ์ดํฐ๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํ๊ณ ETL๊ณผ์ ํตํฉ์ ๋ํ ๊ธฐ๋ณธ ์์น์ ์ดํดํ ์ ์์ด์ผ ํฉ๋๋ค.
์ค์ ์ฌ๋ก
์ต๊ทผ์๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ฉ ๋ฐฑ์๋๋ฅผ ์์ฑํด์ผ ํ์ต๋๋ค. ์์ ์ด ์์๋์์ ๋ ๋ฐฑ์๋๋ ์ด๋ฏธ ๊ฐ๋ฐ๋์ด ๊ตฌํ ์ค๋น๊ฐ ๋์ด ์์์ผ๋ฉฐ ๊ฐ๋ฐ ํ์ ์ด ํ๋ก์ ํธ์ ์ฝ XNUMX๋ ์ ํฌ์ํ์ต๋๋ค. ๋ค์ ์์ ์ด ์ค์ ๋์์ต๋๋ค.
- CI/CD ๊ตฌ์ถ
- ์ํคํ ์ฒ๋ฅผ ๊ฒํ ํฉ๋๋ค.
- ๋ชจ๋ ๊ฒ์ ์คํ์ ์ฎ๊ธฐ์ญ์์ค.
์ ํ๋ฆฌ์ผ์ด์ ์์ฒด๋ ๋ง์ดํฌ๋ก์๋น์ค์์ผ๋ฉฐ Python/Django ์ฝ๋๋ ์ฒ์๋ถํฐ GCP์์ ์ง์ ๊ฐ๋ฐ๋์์ต๋๋ค. ๋์์ ๋ฏธ๊ตญ๊ณผ ์ ๋ฝ ๋ ์ง์ญ์ผ๋ก ๊ฐ์ ํ๊ณ , ํธ๋ํฝ์ Global Load Balancer๋ฅผ ํตํด ๋ถ์ฐํ์๋ค. ๋ชจ๋ ์์ ๋ถํ์ ์ปดํจํ ์์ ๋ถํ๊ฐ Google Kubernetes Engine์์ ์คํ๋์์ต๋๋ค.
๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ 3๊ฐ์ง์์ต๋๋ค.
- ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง;
- ๋ฐ์ดํฐ์คํ ์ด;
- ํด๋ผ์ฐ๋ SQL(PostgreSQL).
Cloud SQL์ ์ ํํ ์ด์ ๊ฐ ๊ถ๊ธํ ์๋ ์์ต๋๋ค. ์ฌ์ค, ์ด๋ฌํ ์ง๋ฌธ์ ์ต๊ทผ ๋ช ๋
๋์ ์ผ์ข
์ ์ด์ํ ์ผ์ ์ค์ง๋ฅผ ์ผ๊ธฐํ์ต๋๋ค. ์ฌ๋๋ค์ด ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด ๋ถ๋๋ฌ์ํ๋ค๋ ๋๋์ด ์์ง๋ง ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๊ณ์ํด์ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค ;-).
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก Cloud SQL์ ์ ํํ์ต๋๋ค.
- ์์ ์ธ๊ธํ ๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ Django๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ๋์์ผ๋ฉฐ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๊ตฌ ๋ฐ์ดํฐ๋ฅผ Python ๊ฐ์ฒด(Django ORM)์ ๋งคํํ๋ ๋ชจ๋ธ์ด ์์ต๋๋ค.
- ํ๋ ์์ํฌ ์์ฒด๋ ์๋นํ ํ์ ๋ DBMS ๋ชฉ๋ก์ ์ง์ํ์ต๋๋ค.
- ํฌ์คํธ๊ทธ๋ SQL;
- ๋ง๋ฆฌ์DB;
- MySQL;
- ์ ํ;
- SQLite๋.
๋ฐ๋ผ์ PostgreSQL์ ์ด ๋ชฉ๋ก์์ ๋ค์ ์ง๊ด์ ์ผ๋ก ์ ํ๋์์ต๋๋ค(์ฌ์ค Oracle์ ์ ํํ๋ ๊ฒ์ ์๋๋๋ค).
๋๋ฝ๋ ๋ด์ฉ:
- ์ ํ๋ฆฌ์ผ์ด์ ์ 2๊ฐ ์ง์ญ์๋ง ๋ฐฐํฌ๋์์ผ๋ฉฐ ์ธ ๋ฒ์งธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ณํ(์์์)์ ๋ํ๋ฌ์ต๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ถ๋ฏธ ์ง์ญ(์์ด์ค์)์ ์์นํ์ต๋๋ค.
- ๊ณ ๊ฐ ์ธก์์๋ ๊ฐ๋ฅํ์ง ์ฐ๋ คํ์ต๋๋ค. ์ก์ธ์ค ์ง์ฐ ์ ๋ฝ๊ณผ ์์์ ์ถ์ ๊ทธ๋ฆฌ๊ณ ๋ฐฉํด ์๋น์ค ์ค DBMS ๋ค์ดํ์์ด ๋ฐ์ํ ๊ฒฝ์ฐ.
Django ์์ฒด๋ ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณ๋ ฌ๋ก ์์ ํ๊ณ ์ฝ๊ธฐ์ ์ฐ๊ธฐ๋ก ๋๋ ์ ์๋ค๋ ์ฌ์ค์๋ ๋ถ๊ตฌํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฐ๊ธฐ๊ฐ ๊ทธ๋ฆฌ ๋ง์ง ์์์ต๋๋ค(90% ์ด์์ด ์ฝ๊ธฐ). ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ผ๋ก, ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ผ๋ก ๊ฐ๋ฅํ๋ค๋ฉด ์ ๋ฝ๊ณผ ์์์์ ์ฃผ์ ๊ธฐ์ง์ ์ฝ๊ธฐ ๋ณต์ ๋ณธ, ์ด๊ฒ์ ์ ์ถฉ์ ์๋ฃจ์ ์ด ๋ ๊ฒ์ ๋๋ค. ๊ธ์, ๋ญ๊ฐ ๊ทธ๋ ๊ฒ ๋ณต์กํด?
์ด๋ ค์ด ์ ์ ๊ณ ๊ฐ์ด ๊ด๋ฆฌํ ์๋น์ค์ Cloud SQL ์ฌ์ฉ์ ํฌ๊ธฐํ๊ณ ์ถ์ง ์๋ค๋ ์ ์ด์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Cloud SQL์ ๊ธฐ๋ฅ์ ํ์ฌ ์ ํ๋์ด ์์ต๋๋ค. Cloud SQL์ ๊ณ ๊ฐ์ฉ์ฑ(HA)๊ณผ ์ฝ๊ธฐ ๋ณต์ ๋ณธ(RR)์ ์ง์ํ์ง๋ง ๋์ผํ RR์ ํ ์ง์ญ์์๋ง ์ง์๋ฉ๋๋ค. ๋ฏธ๊ตญ ์ง์ญ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ ํ์๋ Cloud SQL์ ์ฌ์ฉํ์ฌ ์ ๋ฝ ์ง์ญ์์ ์ฝ๊ธฐ ๋ณต์ ๋ณธ์ ๋ง๋ค ์ ์์ต๋๋ค. ํ์ง๋ง Postgres ์์ฒด์์๋ ์ด๋ฅผ ๋ฐฉ์งํ์ง ๋ชปํฉ๋๋ค. Google ์ง์๊ณผ์ ์์ ์ ์๋ฌด ์ฑ๊ณผ๋ ์์์ผ๋ฉฐ "์ฐ๋ฆฌ๋ ๋ฌธ์ ๋ฅผ ์๊ณ ์์ผ๋ฉฐ ๋ ธ๋ ฅ ์ค์ ๋๋ค. ์ธ์ ๊ฐ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๊ฒ์ ๋๋ค"๋ผ๋ ์คํ์ผ์ ์ฝ์์ผ๋ก ๋๋ฌ์ต๋๋ค.
Cloud SQL์ ๊ธฐ๋ฅ์ ๊ฐ๋ตํ๊ฒ ๋์ดํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ๊ณ ๊ฐ์ฉ์ฑ(HA):
- ํ ์ง์ญ ๋ด์์;
- ๋์คํฌ ๋ณต์ ๋ฅผ ํตํด;
- PostgreSQL ์์ง์ ์ฌ์ฉ๋์ง ์์ต๋๋ค.
- ์๋ ๋ฐ ์๋ ์ ์ด ๊ฐ๋ฅ - ์ฅ์ ์กฐ์น/์ฅ์ ๋ณต๊ตฌ;
- ์ ํ ์ ๋ช ๋ถ ๋์ DBMS๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
2. ์ฝ๊ธฐ ๋ณต์ ๋ณธ(RR):
- ํ ์ง์ญ ๋ด์์;
- ํซ ๋๊ธฐ;
- PostgreSQL ์คํธ๋ฆฌ๋ฐ ๋ณต์ .
๋ํ, ๊ด๋ก๋๋ก ๊ธฐ์ ์ ์ ํํ ๋ ํญ์ ๋ช ๊ฐ์ง ๋ฌธ์ ์ ์ง๋ฉดํ๊ฒ ๋ฉ๋๋ค. ์ ํ:
- ๊ณ ๊ฐ์ GKE๋ฅผ ํตํ๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ์ํฐํฐ๋ฅผ ์์ฑํ๊ณ IaaS๋ฅผ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํ์ง ์์์ต๋๋ค.
- ๊ณ ๊ฐ์ ์ ํ ์๋น์ค PostgreSQL/MySQL ๋ฐฐํฌ๋ฅผ ์ํ์ง ์์ต๋๋ค.
- ๊ธ์, ์ผ๋ฐ์ ์ผ๋ก Google Spanner๋ ๊ฐ๊ฒฉ์ด ์๋๋ผ๋ฉด ๊ฝค ์ ํฉํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ Django ORM์ ์ฌ์ฉํ ์ ์์ง๋ง ์ข์ ๊ฒ์ ๋๋ค.
์ํฉ์ ๊ณ ๋ คํ์ฌ ๊ณ ๊ฐ์ ํ์ ์ง๋ฌธ์ ๋ฐ์์ต๋๋ค. "Google Spanner์ ๋น์ทํ๋ฉด์๋ Django ORM๊ณผ๋ ์๋ํ๋๋ก ๋น์ทํ ์์ ์ ์ํํ ์ ์๋์?"
์๋ฃจ์ ์ต์ No. 0
๊ฐ์ฅ ๋จผ์ ๋ ์ค๋ฅธ ๊ฒ:
- CloudSQL ๋ด์ ๋จธ๋ฌด๋ฅด์ธ์.
- ์ด๋ค ํํ๋ก๋ ์ง์ญ ๊ฐ์ ๊ธฐ๋ณธ ์ ๊ณต ๋ณต์ ๊ฐ ์์ต๋๋ค.
- PostgreSQL์ ํตํด ๊ธฐ์กด Cloud SQL์ ๋ณต์ ๋ณธ์ ์ฐ๊ฒฐํด ๋ณด์ธ์.
- PostgreSQL ์ธ์คํด์ค๋ฅผ ์ด๋๊ฐ์์ ์ด๋ป๊ฒ๋ ์์ํ๋ ์ ์ด๋ ๋ง์คํฐ๋ ๊ฑด๋๋ฆฌ์ง ๋ง์ธ์.
์์, ํธ์คํธ(์์ ํ ๋ค๋ฅธ ํ๋ก์ ํธ์ ์์)(pg_hba ๋ฑ)์ ๋ํ ์ก์ธ์ค ๊ถํ์ด ์๊ณ ์ํผ์ ์ ์๋์๋ ์ก์ธ์คํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ์์ ์ ์ํํ ์ ์๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค.
์๋ฃจ์ ์ต์ No. 1
๋ ๊น์ด ์๊ฐํ๊ณ ์ด์ ์ํฉ์ ๊ณ ๋ คํ ํ์ ์๊ฐ์ ํ๋ฆ์ด ๋ค์ ๋ฐ๋์์ต๋๋ค.
- ์ฐ๋ฆฌ๋ ์ฌ์ ํ CloudSQL์ ์ ์งํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ง๋ง MySQL์ Cloud SQL์๋ ๋ค์๊ณผ ๊ฐ์ ์ธ๋ถ ๋ง์คํฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ MySQL๋ก ์ ํํ๊ณ ์์ต๋๋ค.
โ ์ธ๋ถ MySQL์ ์ํ ํ๋ก์์
๋๋ค.
- MySQL ์ธ์คํด์ค์ฒ๋ผ ๋ณด์
๋๋ค.
- ๋ค๋ฅธ ํด๋ผ์ฐ๋ ๋๋ ์จํ๋ ๋ฏธ์ค์์ ๋ฐ์ดํฐ๋ฅผ ๋ง์ด๊ทธ๋ ์ด์
ํ๊ธฐ ์ํด ๊ฐ๋ฐ๋์์ต๋๋ค.
MySQL ๋ณต์ ๋ฅผ ์ค์ ํ๋ ๋ฐ์๋ ํธ์คํธ์ ๋ํ ์ก์ธ์ค๊ฐ ํ์ํ์ง ์๊ธฐ ๋๋ฌธ์ ์์น์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ด ์๋ํ์ง๋ง ๋งค์ฐ ๋ถ์์ ํ๊ณ ๋ถํธํ์ต๋๋ค. ๋ ๋์๊ฐ์ ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ํ ๋ผํผ์ผ๋ก ๋ฐฐํฌํ๋๋ฐ ๊ฐ์๊ธฐ ์ธ๋ถ ๋ง์คํฐ๊ฐ ํ ๋ผํผ์์ ์ง์๋์ง ์๋๋ค๋ ์ฌ์ค์ด ๋ฐํ์ก๊ธฐ ๋๋ฌธ์ ์์ ํ ๋ฌด์์์ก์ต๋๋ค. ์, Google์๋ CLI๊ฐ ์์ง๋ง ์ด๋ค ์ด์ ๋ก ์ฌ๊ธฐ์์๋ ๋ชจ๋ ๊ฒ์ด ๊ฐ๋์ฉ ์๋ํ์ต๋๋ค. ๋๋ก๋ ์์ฑ๋๊ธฐ๋ ํ๊ณ ์์ฑ๋์ง ์๊ธฐ๋ ํฉ๋๋ค. ์๋ง๋ CLI๊ฐ ๋ณต์ ๋ณธ์ด ์๋ ์ธ๋ถ ๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ํด ๊ฐ๋ฐ๋์๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ ๋๋ค.
์ฌ์ค ์ด ์์ ์์ Cloud SQL์ด ์ ํ ์ ํฉํ์ง ์๋ค๋ ๊ฒ์ด ๋ถ๋ช ํด์ก์ต๋๋ค. ๊ทธ๋ค์ด ๋งํ๋ฏ์ด ์ฐ๋ฆฌ๋ ํ ์ ์๋ ๋ชจ๋ ์ผ์ ํ์ต๋๋ค.
์๋ฃจ์ ์ต์ No. 2
Cloud SQL ํ๋ ์์ํฌ ๋ด์ ๋จธ๋ฌด๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ ์ถฉ ์๋ฃจ์ ์ ๋ํ ์๊ตฌ ์ฌํญ์ ๊ณต์ํํ๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค. ์๊ตฌ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Kubernetes์์ ์์ ํ๊ณ Kubernetes(DCS, ...) ๋ฐ GCP(LB, ...)์ ๋ฆฌ์์ค์ ๊ธฐ๋ฅ์ ์ต๋ํ ํ์ฉํฉ๋๋ค.
- HA ํ๋ก์์ ๊ฐ์ ํด๋ผ์ฐ๋์ ๋ถํ์ํ ๊ฒ๋ค๋ก ์ธํด ์์ ๊ธฐ๊ฐ ๋ถ์กฑํฉ๋๋ค.
- ๊ธฐ๋ณธ HA ์ง์ญ์์ PostgreSQL ๋๋ MySQL์ ์คํํ๋ ๊ธฐ๋ฅ ๋ค๋ฅธ ์ง์ญ - ๊ธฐ๋ณธ ์ง์ญ์ RR์ ์๋ HA์ ํด๋น ๋ณต์ฌ๋ณธ(์ ๋ขฐ์ฑ์ ์ํด)
- ๋ฉํฐ ๋ง์คํฐ (์ฐ๋ฝํ๊ณ ์ถ์ง ์์์ง๋ง ๊ทธ๋ค์ง ์ค์ํ ๋ด์ฉ์ ์๋์์ต๋๋ค)
.
์ด๋ฌํ ์๊ตฌ์ ๊ฒฐ๊ณผ๋ก, p์ ํฉํ DBMS ๋ฐ ๋ฐ์ธ๋ฉ ์ต์
:
- MySQL ๊ฐ๋ ๋ผ;
- ๋ฐํด๋ฒ๋ DB;
- PostgreSQL ๋๊ตฌ
:
- pgpool-II;
โ ํจํธ๋ก๋.
MySQL ๊ฐ๋ ๋ผ
MySQL Galera ๊ธฐ์ ์ Codership์์ ๊ฐ๋ฐ๋์์ผ๋ฉฐ InnoDB์ฉ ํ๋ฌ๊ทธ์ธ์ ๋๋ค. ํน์ง:
- ๋ค์ค ๋ง์คํฐ;
- ๋๊ธฐ ๋ณต์ ;
- ๋ชจ๋ ๋ ธ๋์์ ์ฝ๊ธฐ;
- ๋ชจ๋ ๋ ธ๋์ ๊ธฐ๋ก;
- ๋ด์ฅํ HA ๋ฉ์ปค๋์ฆ;
- Bitnami์ Helm ์ฐจํธ๊ฐ ์์ต๋๋ค.
๋ฐํด๋ฒ๋ DB
์ค๋ช ์ ๋ฐ๋ฅด๋ฉด ์ด ๋ฌธ์ ๋ ์ ๋ง ํญํ์ด๋ฉฐ Go๋ก ์์ฑ๋ ์คํ ์์ค ํ๋ก์ ํธ์ ๋๋ค. ์ฃผ์ ์ฐธ๊ฐ์๋ Cockroach Labs(Google ์ฌ๋๋ค์ด ์ค๋ฆฝํ)์ ๋๋ค. ์ด ๊ด๊ณํ DBMS๋ ์๋ ๋ถ์ฐํ(๊ธฐ๋ณธ์ ์ผ๋ก ์ํ ํ์ฅ ํฌํจ) ๋ฐ ๋ด๊ฒฐํจ์ฑ์ ๊ฐ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ํ์ฌ์ ์ ์๋ "SQL ๊ธฐ๋ฅ์ ํ๋ถํจ๊ณผ NoSQL ์๋ฃจ์ ์ ์ต์ํ ์ํ์ ์ ๊ทผ์ฑ์ ๊ฒฐํฉ"ํ๋ ๋ชฉํ๋ฅผ ์ค๋ช ํ์ต๋๋ค.
์ข์ ๋ณด๋์ค๋ post-gress ์ฐ๊ฒฐ ํ๋กํ ์ฝ์ ์ง์ํ๋ค๋ ๊ฒ์ ๋๋ค.
Pgpool
์ด๊ฒ์ ์ค์ ๋ก ๋ชจ๋ ์ฐ๊ฒฐ์ ์ธ๊ณ๋ฐ์ ์ฒ๋ฆฌํ๋ ์๋ก์ด ์ํฐํฐ์ธ PostgreSQL์ ์ถ๊ฐ ๊ธฐ๋ฅ์ ๋๋ค. BSD ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ผ์ด์ ์ค๊ฐ ๋ถ์ฌ๋ ์์ฒด ๋ก๋ ๋ฐธ๋ฐ์์ ํ์๊ฐ ์์ต๋๋ค. ์ถฉ๋ถํ ๊ธฐํ๋ฅผ ์ ๊ณตํ์ง๋ง, ์๋ก์ด ์กด์ฌ์ ์กด์ฌ๊ฐ ์ถ๊ฐ์ ์ธ ๋ชจํ์ ์์ฒ์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋ค์ ๋ฌด์ญ๊ฒ ๋ณด์ ๋๋ค.
ํจํธ๋ก๋
์ด๊ฒ์ด ๋ด ๋์ด ๋จ์ด์ง ๋ง์ง๋ง ์ผ์ด์๊ณ ๊ฒฐ๊ณผ์ ์ผ๋ก ํ๋์ง ์์์ต๋๋ค. Patroni๋ ๋ค์ํ ์ ํ์ ๋ณต์ ๋ฐ ์๋ ์ญํ ์ ํ์ ํตํด PostgreSQL ํด๋ฌ์คํฐ๋ฅผ ์๋์ผ๋ก ์ ์ง ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ๋ณธ์ง์ ์ผ๋ก Python ๋ฐ๋ชฌ์ธ ์คํ ์์ค ์ ํธ๋ฆฌํฐ์ ๋๋ค. ์ด๋ ํ๋ฒ์ ์ ํตํฉ๋๊ณ ์๋ก์ด ์ํฐํฐ๋ฅผ ๋์ ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ํฅ๋ฏธ๋ก์ด ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
๊ฒฐ๊ตญ ๋ฌด์์ ์ ํํ์ จ๋์?
์ ํ์ ์ฝ์ง ์์์ต๋๋ค.
- ๋ฐํด๋ฒ๋ DB - ๋ถ์ด์ง๋ง ์ด๋ก์ต๋๋ค.
- MySQL ๊ฐ๋ ๋ผ - ๋ํ ๋์์ง ์์ต๋๋ค. ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฉ๋์ง๋ง MySQL์ ๋๋ค.
- Pgpool โ ๋ถํ์ํ ์ํฐํฐ๊ฐ ๋ง์ ํด๋ผ์ฐ๋ ๋ฐ K8๊ณผ ํตํฉ๋ฉ๋๋ค.
- ํจํธ๋ก๋ - ๋ถํ์ํ ์ํฐํฐ๊ฐ ์๋ K8s์์ ํ์ํ ํตํฉ, GCP LB์ ์ ํตํฉ๋ฉ๋๋ค.
๋ฐ๋ผ์ ์ ํ์ Patroni์๊ฒ ๋จ์ด์ก์ต๋๋ค.
์กฐ์ฌ ๊ฒฐ๊ณผ
๊ฐ๋ตํ๊ฒ ์์ฝํด ๋ณด๋ ์๊ฐ์ ๋๋ค. ๊ทธ๋ ์ต๋๋ค. IT ์ธํ๋ผ์ ์ธ๊ณ๋ ํฌ๊ฒ ๋ณํํ์ผ๋ฉฐ ์ด๋ ์์์ ๋ถ๊ณผํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ์๋ ํด๋ผ์ฐ๋๊ฐ ๋จ์ง ๋ ๋ค๋ฅธ ์ ํ์ ์ธํ๋ผ์๋ค๋ฉด ์ด์ ๋ ๋ชจ๋ ๊ฒ์ด ๋ฌ๋ผ์ก์ต๋๋ค. ๋์ฑ์ด ํด๋ผ์ฐ๋์ ํ์ ์ ์ง์์ ์ผ๋ก ๋ํ๋๊ณ ์์ผ๋ฉฐ ์๋ง๋ ํด๋ผ์ฐ๋์๋ง ๋ํ๋ ๊ฒ์ด๋ฉฐ ๊ทธ ํ์์ผ ์คํํธ์ ์ ๋ ธ๋ ฅ์ ์ํด ์จํ๋ ๋ฏธ์ค๋ก ์ด์ ๋ ๊ฒ์ ๋๋ค.
SQL์ ๊ฒฝ์ฐ SQL์ด ์ ์ง๋ฉ๋๋ค. ์ฆ, PostgreSQL๊ณผ MySQL์ ์์์ผ ํ๊ณ ์ด๋ค๋ก ์์
ํ ์ ์์ด์ผ ํ์ง๋ง ๋ ์ค์ํ ๊ฒ์ ์ด๋ค์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์
๋๋ค.
์ถ์ฒ : habr.com