21์„ธ๊ธฐ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ด์•„๋‚จ๋Š” ๋ฐฉ๋ฒ•: ํด๋ผ์šฐ๋“œ, Kubernetes ๋ฐ PostgreSQL ๋ฉ€ํ‹ฐ๋งˆ์Šคํ„ฐ

์•ˆ๋…•ํ•˜์„ธ์š”, ํ•˜๋ธŒ๋กœํ”„์Šคํฌ ์ฃผ๋ฏผ ์—ฌ๋Ÿฌ๋ถ„. ์˜ค๋Š˜๋ถ€ํ„ฐ ์ฒซ ๋ฒˆ์งธ ๊ทธ๋ฃน ์ˆ˜์—…์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค "ํฌ์ŠคํŠธ๊ทธ๋ ˆSQL". ์ด์— ๋ณธ ๊ฐ•์ขŒ์˜ ๊ณต๊ฐœ ์›จ๋น„๋‚˜๊ฐ€ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜์—ˆ๋Š”์ง€ ์•Œ๋ ค๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

21์„ธ๊ธฐ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ด์•„๋‚จ๋Š” ๋ฐฉ๋ฒ•: ํด๋ผ์šฐ๋“œ, Kubernetes ๋ฐ PostgreSQL ๋ฉ€ํ‹ฐ๋งˆ์Šคํ„ฐ

ะ’ ๋‹ค์Œ ๊ณต๊ฐœ ์ˆ˜์—… ์šฐ๋ฆฌ๋Š” ํด๋ผ์šฐ๋“œ์™€ Kubernetes ์‹œ๋Œ€์— SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ง๋ฉดํ•œ ๊ณผ์ œ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ์šฐ๋ฆฌ๋Š” SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ด๋Ÿฌํ•œ ๊ณผ์ œ์˜ ์˜ํ–ฅ์„ ๋ฐ›์•„ ์–ด๋–ป๊ฒŒ ์ ์‘ํ•˜๊ณ  ๋ณ€ํ˜•๋˜๋Š”์ง€ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์›จ๋น„๋‚˜๊ฐ€ ๊ฐœ์ตœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค ๋ฐœ๋ ˆ๋ฆฌ ๋ฒ ์ฆˆ๋ฃจ์ฝ”ํ”„, EPAM Systems์˜ Google Cloud Practice ์ œ๊ณต ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค.

๋‚˜๋ฌด๊ฐ€ ์ž‘์•˜๋˜ ์‹œ์ ˆ..

๋จผ์ € ์ง€๋‚œ ์„ธ๊ธฐ๋ง DBMS์˜ ์„ ํƒ์ด ์–ด๋–ป๊ฒŒ ์‹œ์ž‘๋˜์—ˆ๋Š”์ง€ ๊ธฐ์–ตํ•ด๋ณด์ž. ํ•˜์ง€๋งŒ ์ด๋Š” ๋‹น์‹œ DBMS์˜ ์„ ํƒ์ด ์‹œ์ž‘๋˜๊ณ  ๋๋‚ฌ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋ ต์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค. ์‹ ํƒ.

21์„ธ๊ธฐ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ด์•„๋‚จ๋Š” ๋ฐฉ๋ฒ•: ํด๋ผ์šฐ๋“œ, Kubernetes ๋ฐ PostgreSQL ๋ฉ€ํ‹ฐ๋งˆ์Šคํ„ฐ

90๋…„๋Œ€ ํ›„๋ฐ˜๊ณผ 2๋…„๋Œ€ ์ดˆ๋ฐ˜์—๋Š” ์‚ฐ์—…์šฉ์œผ๋กœ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ด€ํ•ด์„œ๋Š” ๋ณธ์งˆ์ ์œผ๋กœ ์„ ํƒ์˜ ์—ฌ์ง€๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ, IBM DBXNUMX, Sybase ๋ฐ ๊ธฐํƒ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์™”๋‹ค ๊ฐ”๋‹ค ํ–ˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ Oracle์˜ ๋ฐฐ๊ฒฝ์— ๋น„ํ•ด ๊ทธ๋‹ค์ง€ ๋ˆˆ์— ๋„์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹น์‹œ ์—”์ง€๋‹ˆ์–ด์˜ ๊ธฐ์ˆ ์€ ์กด์žฌํ•˜๋Š” ์œ ์ผํ•œ ์„ ํƒ๊ณผ ์–ด๋–ป๊ฒŒ๋“  ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

Oracle DBA๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐฐํฌ ํ‚คํŠธ์—์„œ Oracle Server๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • Oracle ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • init.ora;
  • ๋ฆฌ์Šค๋„ˆ.ora;

- ๋งŒ๋“ค๋‹ค:

  • ํ…Œ์ด๋ธ”์ŠคํŽ˜์ด์Šค;
  • ๊ณ„ํš;
  • ์‚ฌ์šฉ์ž;

โ€” ๋ฐฑ์—… ๋ฐ ๋ณต์›์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
- ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
โ€” ์ตœ์ ์ด ์•„๋‹Œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋™์‹œ์— Oracle DBA์—์„œ๋Š” ํŠน๋ณ„ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ๋„ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ตœ์ ์˜ DBMS ๋˜๋Š” ๊ธฐํƒ€ ๊ธฐ์ˆ ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ณ ๊ฐ€์šฉ์„ฑ๊ณผ ์ˆ˜ํ‰์  ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค(ํ•ญ์ƒ DBA ๋ฌธ์ œ๋Š” ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค).
  • ์ฃผ์ œ ์˜์—ญ, ์ธํ”„๋ผ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜, OS์— ๋Œ€ํ•œ ํ’๋ถ€ํ•œ ์ง€์‹
  • ๋ฐ์ดํ„ฐ ๋กœ๋“œ ๋ฐ ์–ธ๋กœ๋“œ, ์„œ๋กœ ๋‹ค๋ฅธ DBMS ๊ฐ„์— ๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜.

์ผ๋ฐ˜์ ์œผ๋กœ ๋‹น์‹œ ์„ ํƒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋ฉด 80๋…„๋Œ€ ํ›„๋ฐ˜ ์†Œ๋ จ ์ƒ์ ์˜ ์„ ํƒ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

21์„ธ๊ธฐ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ด์•„๋‚จ๋Š” ๋ฐฉ๋ฒ•: ํด๋ผ์šฐ๋“œ, Kubernetes ๋ฐ PostgreSQL ๋ฉ€ํ‹ฐ๋งˆ์Šคํ„ฐ

์šฐ๋ฆฌ ์‹œ๋Œ€

๋ฌผ๋ก  ๊ทธ ์ดํ›„๋กœ ๋‚˜๋ฌด๋„ ์ž๋ผ๊ณ , ์„ธ์ƒ๋„ ๋ฐ”๋€Œ์—ˆ๊ณ , ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

21์„ธ๊ธฐ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ด์•„๋‚จ๋Š” ๋ฐฉ๋ฒ•: ํด๋ผ์šฐ๋“œ, Kubernetes ๋ฐ PostgreSQL ๋ฉ€ํ‹ฐ๋งˆ์Šคํ„ฐ

Gartner์˜ ์ตœ์‹  ๋ณด๊ณ ์„œ์—์„œ ๋ถ„๋ช…ํžˆ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด DBMS ์‹œ์žฅ๋„ ๋ณ€ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

21์„ธ๊ธฐ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ด์•„๋‚จ๋Š” ๋ฐฉ๋ฒ•: ํด๋ผ์šฐ๋“œ, Kubernetes ๋ฐ PostgreSQL ๋ฉ€ํ‹ฐ๋งˆ์Šคํ„ฐ

๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์„œ ์ธ๊ธฐ๊ฐ€ ๋†’์•„์ง€๊ณ  ์žˆ๋Š” ํด๋ผ์šฐ๋“œ๊ฐ€ ํ‹ˆ์ƒˆ ์‹œ์žฅ์„ ์ ์œ ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์ ์— ์ฃผ๋ชฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ Gartner ๋ณด๊ณ ์„œ๋ฅผ ์ฝ์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๋ก ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋งŽ์€ ๊ณ ๊ฐ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํด๋ผ์šฐ๋“œ๋กœ ์ด๋™ํ•˜๋Š” ๊ณผ์ •์— ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์€ ํด๋ผ์šฐ๋“œ์— ์ฒ˜์Œ ๋“ฑ์žฅํ•˜๋ฉฐ, ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์ด ํด๋ผ์šฐ๋“œ๊ฐ€ ์•„๋‹Œ ์ธํ”„๋ผ๋กœ ์ด๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์‚ฌ์‹ค์ด ์•„๋‹™๋‹ˆ๋‹ค.
  3. ์ข…๋Ÿ‰์ œ ๊ฐ€๊ฒฉ ์ฑ…์ • ๋ชจ๋ธ์ด ์ผ๋ฐ˜ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์‚ฌ๋žŒ์€ ์ž์‹ ์ด ์‚ฌ์šฉํ•œ ๋งŒํผ๋งŒ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋ฉฐ ์ด๋Š” ์ถ”์„ธ๊ฐ€ ์•„๋‹ˆ๋ผ ๋‹จ์ˆœํžˆ ์‚ฌ์‹ค์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

์ง€๊ธˆ ๋ญ์•ผ?

์˜ค๋Š˜๋‚  ์šฐ๋ฆฌ๋Š” ๋ชจ๋‘ ํด๋ผ์šฐ๋“œ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ์—๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” ์งˆ๋ฌธ์€ ์„ ํƒ์˜ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ˜•์‹์˜ DBMS ๊ธฐ์ˆ  ์„ ํƒ์— ๋Œ€ํ•ด์„œ๋งŒ ์ด์•ผ๊ธฐํ•˜๋”๋ผ๋„ ๊ทธ ๊ทœ๋ชจ๋Š” ์—„์ฒญ๋‚ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค์™€ SaaS๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์„ ํƒ์€ ๋งค๋…„ ๋”์šฑ ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค.

์„ ํƒ์˜ ์งˆ๋ฌธ๊ณผ ํ•จ๊ป˜ ์ œํ•œ ์š”์ธ:

  • ๊ฐ€๊ฒฉ. ๋งŽ์€ ๊ธฐ์ˆ ์—๋Š” ์—ฌ์ „ํžˆ ๋น„์šฉ์ด ๋“ญ๋‹ˆ๋‹ค.
  • ๊ธฐ์ˆ . ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด์— ๊ด€ํ•ด ์ด์•ผ๊ธฐํ•œ๋‹ค๋ฉด ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ๋ฌธ์ œ๊ฐ€ ์ œ๊ธฐ๋ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ž์œ  ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ทธ๊ฒƒ์„ ๋ฐฐํฌํ•˜๊ณ  ์šด์˜ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์˜ ์ถฉ๋ถ„ํ•œ ์—ญ๋Ÿ‰์„ ์š”๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • ๊ธฐ๋Šฅ์˜. ํด๋ผ์šฐ๋“œ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ๋™์ผํ•œ Postgres์— ๊ตฌ์ถ•๋œ ๋ชจ๋“  ์„œ๋น„์Šค๊ฐ€ Postgres On-Premise์™€ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ˜๋“œ์‹œ ์•Œ๊ณ  ์ดํ•ดํ•ด์•ผ ํ•  ํ•„์ˆ˜ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๋”์šฑ์ด ์ด ์š”์†Œ๋Š” ๋‹จ์ผ DBMS์˜ ์ผ๋ถ€ ์ˆจ๊ฒจ์ง„ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง€์‹๋ณด๋‹ค ๋” ์ค‘์š”ํ•ด์ง‘๋‹ˆ๋‹ค.

ํ˜„์žฌ DA/DE์—์„œ ๊ธฐ๋Œ€๋˜๋Š” ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ฃผ์ œ ์˜์—ญ๊ณผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ข‹์€ ์ดํ•ด
  • ํ˜„์žฌ ์ž‘์—…์„ ๊ณ ๋ คํ•˜์—ฌ ์ ์ ˆํ•œ DBMS ๊ธฐ์ˆ ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ ํƒํ•˜๋Š” ๋Šฅ๋ ฅ
  • ๊ธฐ์กด ์ œํ•œ ์‚ฌํ•ญ์˜ ๋งฅ๋ฝ์—์„œ ์„ ํƒํ•œ ๊ธฐ์ˆ ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์ ์˜ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜๋Š” ๋Šฅ๋ ฅ
  • ๋ฐ์ดํ„ฐ ์ „์†ก ๋ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋Šฅ๋ ฅ;
  • ์„ ํƒ๋œ ์†”๋ฃจ์…˜์„ ๊ตฌํ˜„ํ•˜๊ณ  ์šด์˜ํ•˜๋Š” ๋Šฅ๋ ฅ.

์•„๋ž˜ ์˜ˆ GCP ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ์ž‘์—…์„ ์œ„ํ•œ ํ•˜๋‚˜ ๋˜๋Š” ๋‹ค๋ฅธ ๊ธฐ์ˆ ์˜ ์„ ํƒ์ด ๊ตฌ์กฐ์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

21์„ธ๊ธฐ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ด์•„๋‚จ๋Š” ๋ฐฉ๋ฒ•: ํด๋ผ์šฐ๋“œ, Kubernetes ๋ฐ PostgreSQL ๋ฉ€ํ‹ฐ๋งˆ์Šคํ„ฐ

PostgreSQL์€ ์Šคํ‚ค๋งˆ์— ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉฐ ์ด๋Š” ์šฉ์–ด ์•„๋ž˜์— ์ˆจ๊ฒจ์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ SQL. ๊ทธ๋ฆฌ๊ณ  Cloud SQL์— ๋„๋‹ฌํ•˜๋ฉด ๋‹ค์‹œ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

21์„ธ๊ธฐ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ด์•„๋‚จ๋Š” ๋ฐฉ๋ฒ•: ํด๋ผ์šฐ๋“œ, Kubernetes ๋ฐ PostgreSQL ๋ฉ€ํ‹ฐ๋งˆ์Šคํ„ฐ

์ด ์„ ํƒ์ด ํ•ญ์ƒ ๋ช…ํ™•ํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋ฏ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๋Š” ์ข…์ข… ์ง๊ด€์— ๋”ฐ๋ผ ์•ˆ๋‚ด๋œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ณ„ :

  1. ๋” ๋ฉ€๋ฆฌ ๊ฐˆ์ˆ˜๋ก ์„ ํƒ์˜ ๋ฌธ์ œ๋Š” ๋”์šฑ ์‹œ๊ธ‰ํ•ด์ง‘๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  GCP, ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค, SaaS๋งŒ ๋ณด๋”๋ผ๋„ RDBMS์— ๋Œ€ํ•œ ์–ธ๊ธ‰์€ 4๋‹จ๊ณ„์—์„œ๋งŒ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  Spanner๊ฐ€ ๊ทผ์ฒ˜์— ์žˆ์Šต๋‹ˆ๋‹ค). ๊ฒŒ๋‹ค๊ฐ€ 5๋‹จ๊ณ„์— PostgreSQL์˜ ์„ ํƒ์ด ๋‚˜์˜ค๋ฉฐ, ๊ทธ ์˜†์—๋Š” MySQL๊ณผ SQL Server๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ๋งŽ์ง€๋งŒ ์„ ํƒํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  2. ์œ ํ˜น์˜ ๋ฐฐ๊ฒฝ์— ๋Œ€ํ•œ ์ œํ•œ์„ ์žŠ์–ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ์‚ฌ๋žŒ์ด Spanner๋ฅผ ์›ํ•˜์ง€๋งŒ ๋น„์šฉ์ด ๋งŽ์ด ๋“ญ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ผ๋ฐ˜์ ์ธ ์š”์ฒญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. โ€œ์ €ํฌ์—๊ฒŒ Spanner๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์„ธ์š”. ํ•˜์ง€๋งŒ Cloud SQL์˜ ๊ฐ€๊ฒฉ์„ ์ƒ๊ฐํ•œ๋‹ค๋ฉด ๋‹น์‹ ์€ ์ „๋ฌธ๊ฐ€์ž…๋‹ˆ๋‹ค!โ€

21์„ธ๊ธฐ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ด์•„๋‚จ๋Š” ๋ฐฉ๋ฒ•: ํด๋ผ์šฐ๋“œ, Kubernetes ๋ฐ PostgreSQL ๋ฉ€ํ‹ฐ๋งˆ์Šคํ„ฐ

๋ฌด์—‡์„ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

๊ถ๊ทน์ ์ธ ์ง„์‹ค์ด๋ผ๊ณ  ์ฃผ์žฅํ•˜์ง€ ์•Š๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ•ด๋ณด์ž.

์šฐ๋ฆฌ๋Š” ํ•™์Šต์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๋ฐ”๊ฟ”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ด์ „์— DBA๋ฅผ ๊ฐ€๋ฅด์ณค๋˜ ๋ฐฉ์‹์„ ๊ฐ€๋ฅด์น˜๋Š” ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ํ•˜๋‚˜์˜ ์ œํ’ˆ์— ๋Œ€ํ•œ ์ง€์‹๋งŒ์œผ๋กœ๋Š” ๋” ์ด์ƒ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋Ÿฌ๋‚˜ ํ•œ ์‚ฌ๋žŒ์˜ ์ˆ˜์ค€์—์„œ ์ˆ˜์‹ญ ์‚ฌ๋žŒ์„ ์•„๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ œํ’ˆ์˜ ๊ฐ€๊ฒฉ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค์Œ ์‚ฌํ•ญ๋„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€
  • ๋‹ค์–‘ํ•œ ๋ฐฐํฌ ๋ฐฉ๋ฒ•;
  • ๊ฐ ๋ฐฉ๋ฒ•์˜ ์žฅ์ ๊ณผ ๋‹จ์ ;
  • ํ•ญ์ƒ ์นœ์ˆ™ํ•œ ์ œํ’ˆ์„ ์„ ํ˜ธํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์ •๋ณด์— ์ž…๊ฐํ•œ ์ตœ์ ์˜ ์„ ํƒ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์œ ์‚ฌ ๋ฐ ๋Œ€์ฒด ์ œํ’ˆ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ณ  ETL๊ณผ์˜ ํ†ตํ•ฉ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์›์น™์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ์‚ฌ๋ก€

์ตœ๊ทผ์—๋Š” ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ ๋ฐฑ์—”๋“œ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž‘์—…์ด ์‹œ์ž‘๋˜์—ˆ์„ ๋•Œ ๋ฐฑ์—”๋“œ๋Š” ์ด๋ฏธ ๊ฐœ๋ฐœ๋˜์–ด ๊ตฌํ˜„ ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์—ˆ์œผ๋ฉฐ ๊ฐœ๋ฐœ ํŒ€์€ ์ด ํ”„๋กœ์ ํŠธ์— ์•ฝ XNUMX๋…„์„ ํˆฌ์žํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์ž‘์—…์ด ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • CI/CD ๊ตฌ์ถ•
  • ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ๊ฒƒ์„ ์‹คํ–‰์— ์˜ฎ๊ธฐ์‹ญ์‹œ์˜ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์ฒด๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜€์œผ๋ฉฐ Python/Django ์ฝ”๋“œ๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ GCP์—์„œ ์ง์ ‘ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์ƒ์€ ๋ฏธ๊ตญ๊ณผ ์œ ๋Ÿฝ ๋‘ ์ง€์—ญ์œผ๋กœ ๊ฐ€์ •ํ•˜๊ณ , ํŠธ๋ž˜ํ”ฝ์€ Global Load Balancer๋ฅผ ํ†ตํ•ด ๋ถ„์‚ฐํ•˜์˜€๋‹ค. ๋ชจ๋“  ์ž‘์—… ๋ถ€ํ•˜์™€ ์ปดํ“จํŒ… ์ž‘์—… ๋ถ€ํ•˜๊ฐ€ Google Kubernetes Engine์—์„œ ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋Š” 3๊ฐ€์ง€์˜€์Šต๋‹ˆ๋‹ค.

  • ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€;
  • ๋ฐ์ดํ„ฐ์Šคํ† ์–ด;
  • ํด๋ผ์šฐ๋“œ SQL(PostgreSQL).

21์„ธ๊ธฐ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ด์•„๋‚จ๋Š” ๋ฐฉ๋ฒ•: ํด๋ผ์šฐ๋“œ, Kubernetes ๋ฐ PostgreSQL ๋ฉ€ํ‹ฐ๋งˆ์Šคํ„ฐ

Cloud SQL์„ ์„ ํƒํ•œ ์ด์œ ๊ฐ€ ๊ถ๊ธˆํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ์ด๋Ÿฌํ•œ ์งˆ๋ฌธ์€ ์ตœ๊ทผ ๋ช‡ ๋…„ ๋™์•ˆ ์ผ์ข…์˜ ์–ด์ƒ‰ํ•œ ์ผ์‹œ ์ค‘์ง€๋ฅผ ์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ๋ถ€๋„๋Ÿฌ์›Œํ•œ๋‹ค๋Š” ๋Š๋‚Œ์ด ์žˆ์ง€๋งŒ ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ณ„์†ํ•ด์„œ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค ;-).

์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ Cloud SQL์„ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์•ž์„œ ์–ธ๊ธ‰ํ•œ ๋Œ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Django๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์˜๊ตฌ ๋ฐ์ดํ„ฐ๋ฅผ Python ๊ฐœ์ฒด(Django ORM)์— ๋งคํ•‘ํ•˜๋Š” ๋ชจ๋ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ํ”„๋ ˆ์ž„์›Œํฌ ์ž์ฒด๋Š” ์ƒ๋‹นํžˆ ํ•œ์ •๋œ 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 ๋ฐ๋ชฌ์ธ ์˜คํ”ˆ ์†Œ์Šค ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํ๋ฒ„์™€ ์ž˜ ํ†ตํ•ฉ๋˜๊ณ  ์ƒˆ๋กœ์šด ์—”ํ„ฐํ‹ฐ๋ฅผ ๋„์ž…ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ํฅ๋ฏธ๋กœ์šด ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ๋ฌด์—‡์„ ์„ ํƒํ•˜์…จ๋‚˜์š”?

์„ ํƒ์€ ์‰ฝ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

  1. ๋ฐ”ํ€ด๋ฒŒ๋ ˆ DB - ๋ถˆ์ด์ง€๋งŒ ์–ด๋‘ก์Šต๋‹ˆ๋‹ค.
  2. MySQL ๊ฐˆ๋ ˆ๋ผ - ๋˜ํ•œ ๋‚˜์˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์‚ฌ์šฉ๋˜์ง€๋งŒ MySQL์ž…๋‹ˆ๋‹ค.
  3. Pgpool โ€” ๋ถˆํ•„์š”ํ•œ ์—”ํ„ฐํ‹ฐ๊ฐ€ ๋งŽ์•„ ํด๋ผ์šฐ๋“œ ๋ฐ K8๊ณผ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.
  4. ํŒจํŠธ๋กœ๋‹ˆ - ๋ถˆํ•„์š”ํ•œ ์—”ํ„ฐํ‹ฐ๊ฐ€ ์—†๋Š” K8s์™€์˜ ํƒ์›”ํ•œ ํ†ตํ•ฉ, GCP LB์™€ ์ž˜ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์„ ํƒ์€ Patroni์—๊ฒŒ ๋–จ์–ด์กŒ์Šต๋‹ˆ๋‹ค.

์กฐ์‚ฌ ๊ฒฐ๊ณผ

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

SQL์˜ ๊ฒฝ์šฐ SQL์ด ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, PostgreSQL๊ณผ MySQL์„ ์•Œ์•„์•ผ ํ•˜๊ณ  ์ด๋“ค๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ๋” ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ด๋“ค์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

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