Postgres ํ™”์š”์ผ 5๋ฒˆ: โ€œPostgreSQL๊ณผ Kubernetes. CI/CD. ํ…Œ์ŠคํŠธ ์ž๋™ํ™”"

Postgres ํ™”์š”์ผ 5๋ฒˆ: โ€œPostgreSQL๊ณผ Kubernetes. CI/CD. ํ…Œ์ŠคํŠธ ์ž๋™ํ™”"

์ž‘๋…„ ๋ง์—๋Š” ๋Ÿฌ์‹œ์•„ PostgreSQL ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋˜ ๋‹ค๋ฅธ ์ƒ๋ฐฉ์†ก์ด ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. #Ruํฌ์ŠคํŠธ๊ทธ๋ ˆ์Šค, ๊ณต๋™ ์ฐฝ๋ฆฝ์ž์ธ Nikolai Samokhvalov๋Š” Flant ๊ธฐ์ˆ  ์ด์‚ฌ์ธ Dmitry Stolyarov์™€ Kubernetes์˜ ๋งฅ๋ฝ์—์„œ ์ด DBMS์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด ํ† ๋ก ์˜ ์ฃผ์š” ๋ถ€๋ถ„์— ๋Œ€ํ•œ ๊ธฐ๋ก์„ ์ถœํŒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ YouTube ์ฑ„๋„ ๊ฒŒ์‹œ๋œ ์ „์ฒด ๋™์˜์ƒ:

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ Kubernetes

NS: ์˜ค๋Š˜์€ VACUUM๊ณผ CHECKPOINT์— ๋Œ€ํ•ด์„œ๋Š” ์ด์•ผ๊ธฐํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Kubernetes์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์ด ๋‹ค๋…„๊ฐ„์˜ ๊ฒฝํ—˜์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์˜ ๋น„๋””์˜ค๋ฅผ ๋ณด์•˜๊ณ  ๊ทธ ์ค‘ ์ผ๋ถ€๋ฅผ ๋‹ค์‹œ ๋ณด๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค... ์š”์ ์œผ๋กœ ๋ฐ”๋กœ ๋„˜์–ด๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค: ์™œ K8s์—์„œ Postgres๋‚˜ MySQL์ด ํ•„์š”ํ•œ๊ฐ€์š”?

DS: ์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ๋Œ€๋‹ต์€ ์—†์œผ๋ฉฐ, ๊ทธ๋Ÿด ์ˆ˜๋„ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๊ฒƒ์€ ๋‹จ์ˆœ์„ฑ๊ณผ ํŽธ์˜์„ฑ... ์ž ์žฌ๋ ฅ์ž…๋‹ˆ๋‹ค. ๋ˆ„๊ตฌ๋‚˜ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.

NS: ์–ด๋–ป๊ฒŒ RDS, ์ง‘์—์„œ๋งŒ์š”?

DS: ์˜ˆ: RDS์ฒ˜๋Ÿผ ์–ด๋””์„œ๋‚˜ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

NS: '์–ด๋””๋“ ์ง€'๊ฐ€ ์ข‹์€ ์ง€์ ์ด์—์š”. ๋Œ€๊ธฐ์—…์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค๋ฅธ ์žฅ์†Œ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋Œ€๊ธฐ์—…์ด๋ผ๋ฉด ๊ธฐ์„ฑ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด Nutanix์—๋Š” ์ž์ฒด ๊ฐœ๋ฐœ์ด ์žˆ๊ณ  ๋‹ค๋ฅธ ํšŒ์‚ฌ(VMware...)์—๋Š” ๋™์ผํ•œ "RDS, only home"์ด ์žˆ์Šต๋‹ˆ๋‹ค.

DS: ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ํŠน์ • ์กฐ๊ฑด์—์„œ๋งŒ ์ž‘๋™ํ•˜๋Š” ๋ณ„๋„์˜ ๊ตฌํ˜„์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Kubernetes์— ๊ด€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๋งค์šฐ ๋‹ค์–‘ํ•œ ์ธํ”„๋ผ(K8์— ์žˆ์„ ์ˆ˜ ์žˆ์Œ)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ ์ด๋Š” ํด๋ผ์šฐ๋“œ์— ๋Œ€ํ•œ API์˜ ํ‘œ์ค€์ž…๋‹ˆ๋‹ค.

NS: ๊ทธ๊ฒƒ๋„ ๋ฌด๋ฃŒ์˜ˆ์š”!

DS: ๋ณ„๋กœ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹œ์žฅ์˜ ๊ทœ๋ชจ๊ฐ€ ํฌ์ง€ ์•Š์€ ๋ถ€๋ฌธ์—์„œ๋Š” ์ž์œ ๋„๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒŒ ์ค‘์š”ํ•œ๋ฐ... ์•„๋งˆ ๋ณด๊ณ ์„œ๋ฅผ ๊ธฐ์–ตํ•˜์‹ค ๊ฒ๋‹ˆ๋‹ค.โ€๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ Kubernetes? "

NS์˜ˆ.

DS: ๋งค์šฐ ๋ชจํ˜ธํ•˜๊ฒŒ ๋ฐ›์•„๋“ค์—ฌ์กŒ์Œ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์‚ฌ๋žŒ๋“ค์€ ๋‚ด๊ฐ€ โ€œ์–˜๋“ค์•„, ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— ๋„ฃ์ž!โ€๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๊ณ , ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ์ด๊ฒƒ๋“ค์ด ๋ชจ๋‘ ๋”์ฐํ•œ ์ž์ „๊ฑฐ๋ผ๊ณ  ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ €๋Š” ์™„์ „ํžˆ ๋‹ค๋ฅธ ๋ง์„ ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. โ€œ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€, ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€, ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณด์„ธ์š”. ์ง€๊ธˆ Kubernetes ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ์š”? ์ƒ์‚ฐ? ๊ธ€์Ž„์š”, ๋‹น์‹ ์ด ์ข‹์•„ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ...ํŠน์ • ์ผ์„ ํ•˜๋Š” ๊ฑฐ์ฃ . ํ•˜์ง€๋งŒ ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ๋Š” ์ถ”์ฒœํ•œ๋‹ค๊ณ  ๋ง์”€๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ํ™˜๊ฒฝ ์ƒ์„ฑ/์‚ญ์ œ์˜ ์—ญ๋™์„ฑ์ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.โ€

NS: ๊ฐœ๋ฐœ์ž๋ž€ ํ”„๋กœ๋•์…˜์ด ์•„๋‹Œ ๋ชจ๋“  ํ™˜๊ฒฝ์„ ์˜๋ฏธํ•˜๋‚˜์š”? ์Šคํ…Œ์ด์ง•, QAโ€ฆ

DS: ์„ฑ๋Šฅ ์Šคํƒ ๋“œ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์š”๊ตฌ ์‚ฌํ•ญ์ด ๊ตฌ์ฒด์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ ‡์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํ…Œ์ด์ง•์„ ์œ„ํ•ด ๋งค์šฐ ํฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํ•„์š”ํ•œ ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์•„๋งˆ๋„ ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค... ์ด๊ฒƒ์ด ์ •์ ์ด๋ฉฐ ์ˆ˜๋ช…์ด ๊ธด ํ™˜๊ฒฝ์ด๋ผ๋ฉด K8s์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐฐ์น˜ํ•˜๋ฉด ์–ด๋–ค ์ด์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

NS: ์—†์Œ. ๊ทธ๋Ÿฌ๋‚˜ ์ •์  ํ™˜๊ฒฝ์€ ์–ด๋””์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ •์  ํ™˜๊ฒฝ์€ ๋‚ด์ผ์ด๋ฉด ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

DS: ์Šคํ…Œ์ด์ง•์€ ์ •์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์—๊ฒ ๊ณ ๊ฐ์ด ์žˆ์Šต๋‹ˆ๋‹ค...

NS: ๋„ค, ์ €๋„ ์žˆ์–ด์š”. 10TB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ 200GB ์Šคํ…Œ์ด์ง•์ด ์žˆ๋‹ค๋ฉด ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค...

DS: ๋‚˜ํ•œํ…Œ ์•„์ฃผ ๋ฉ‹์ง„ ์ผ€์ด์Šค๊ฐ€ ์žˆ์–ด! ์ค€๋น„ ๋‹จ๊ณ„์—๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์šฉ๋˜๋Š” ์ œํ’ˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  "ํ”„๋กœ๋•์…˜ ์ถœ์‹œ" ๋ฒ„ํŠผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ(๋ธํƒ€)์€ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค(๋‹จ์ˆœํžˆ API๋ฅผ ํ†ตํ•ด ๋™๊ธฐํ™”๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค). ์ด๊ฒƒ์€ ๋งค์šฐ ์ด๊ตญ์ ์ธ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

NS: RDS๋‚˜ ์‹ฌ์ง€์–ด Heroku์— ์žˆ๋Š” ์Šคํƒ€ํŠธ์—…์„ ๋ฐธ๋ฆฌ์—์„œ ๋ณธ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ 2~3๋…„ ์ „์˜ ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค์€ ๋…ธํŠธ๋ถ์— ๋คํ”„๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์—ฌ์ „ํžˆ 80GB์— ๋ถˆ๊ณผํ•˜๊ณ  ๋…ธํŠธ๋ถ์— ๊ณต๊ฐ„์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ชจ๋“  ์‚ฌ๋žŒ์„ ์œ„ํ•ด ์ถ”๊ฐ€ ๋””์Šคํฌ๋ฅผ ๊ตฌ์ž…ํ•˜์—ฌ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” 3๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ผ๋„ ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ ๊ทธ๋“ค์ด prod๋ฅผ ์Šคํ…Œ์ด์ง•์— ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์„ ๋‘๋ ค์›Œํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํšŒ์‚ฌ์— ๋”ฐ๋ผ ํฌ๊ฒŒ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๋˜ํ•œ ๊ทธ๋“ค์ด ๋งค์šฐ ๋‘๋ ค์›Œํ•˜๊ณ  ์ข…์ข… ์‹œ๊ฐ„๊ณผ ์†์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์ฃผ์ œ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „์— Kubernetes์— ๋Œ€ํ•ด ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์•„์ง ์•„๋ฌด๋„ prod์— ์ฐธ์—ฌํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

DS: ์šฐ๋ฆฌ๋Š” ํ”„๋กœ๋•์…˜์— ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ณต์ œ๋ณธ์„ ๋งŒ๋“ค๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๊ฒŒ์œผ๋ฅธ ์ˆ˜์‹ญ ๊ธฐ๊ฐ€๋ฐ”์ดํŠธ์˜ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ์„œ๋น„์Šค์™€ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ์„œ๋น„์Šค์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Kubernetes ์•„๋ž˜์— ์ผ๋ฐ˜ ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์— ํ•œํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์กฐ๊ฑด์— ๋”ฐ๋ผ ์Šคํ† ๋ฆฌ์ง€ ์‹œ์Šคํ…œ ์œ„์— ์žˆ๋Š” VMware์˜ ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๋„ฃ์—ˆ๋‹ค PV ์ด์ œ ๊ธฐ๊ณ„์—์„œ ๊ธฐ๊ณ„๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

NS: ์ด ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(์ตœ๋Œ€ 100GB)๋Š” ์ข‹์€ ๋””์Šคํฌ์™€ ์ข‹์€ ๋„คํŠธ์›Œํฌ์—์„œ ๋ช‡ ๋ถ„ ์•ˆ์— ๋กค์•„์›ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ฃ ? ์ดˆ๋‹น 1GB์˜ ์†๋„๋Š” ๋” ์ด์ƒ ์ด๊ตญ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

DS: ์˜ˆ, ์„ ํ˜• ์ž‘๋™์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

NS: ์ข‹์•„์š”, prod์— ๋Œ€ํ•ด์„œ๋งŒ ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋น„ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์„ ์œ„ํ•ด Kubernetes๋ฅผ ๊ณ ๋ คํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”? ์ž˜๋ž€๋„์—์„œ ๋ณธ ๊ฒƒ ๊ฐ™์€๋ฐ ์—ฐ์‚ฐ์ž๋ฅผ ์ˆ˜ํ–‰, ํฌ๋Ÿฐ์น˜์—์„œ ์ œ์žฌ, ๋‹ค๋ฅธ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฑฐ๊ธฐ์— ์˜จ๊ทธ๋ ˆ์Šค - ์ด๋ถ„์€ ์ŠคํŽ˜์ธ์—์„œ ์˜จ ์šฐ๋ฆฌ์˜ ์ข‹์€ ์นœ๊ตฌ Alvaro์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ํ•˜๋Š” ์ผ์€ ๋ณธ์งˆ์ ์œผ๋กœ ๋‹จ์ˆœํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์—ฐ์‚ฐ์ž, ๊ทธ๋ฆฌ๊ณ  ์ „์ฒด ๋ถ„ํฌ(StackGres), Postgres ์ž์ฒด ์™ธ์—๋„ ๋ฐฑ์—…, Envoy ํ”„๋ก์‹œ๋ฅผ ๋„ฃ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

DS: ๋ฌด์Šจ ํŠน์‚ฌ์š”? Postgres ํŠธ๋ž˜ํ”ฝ์˜ ๊ท ํ˜•์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์กฐ์ •ํ•˜์‹œ๋‚˜์š”?

NS: ์˜ˆ. ์ฆ‰, ๊ทธ๋“ค์€ Linux ๋ฐฐํฌํŒ๊ณผ ์ปค๋„์„ ์‚ฌ์šฉํ•˜๋ฉด ์ผ๋ฐ˜ PostgreSQL์ด ์ปค๋„์ด๊ณ  ํด๋ผ์šฐ๋“œ ์นœํ™”์ ์ด๊ณ  Kubernetes์—์„œ ์‹คํ–‰๋˜๋Š” ๋ฐฐํฌํŒ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์–ดํ•œ๋‹ค๊ณ  ๋ด…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ตฌ์„ฑ ์š”์†Œ(๋ฐฑ์—… ๋“ฑ)๋ฅผ ํ•จ๊ป˜ ๋ชจ์œผ๊ณ  ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋„๋ก ๋””๋ฒ„๊น…ํ•ฉ๋‹ˆ๋‹ค.

DS: ์•„์ฃผ ๋ฉ‹์ง€๋„ค์š”! ๋ณธ์งˆ์ ์œผ๋กœ ์ด๊ฒƒ์€ ์ž์‹ ๋งŒ์˜ ๊ด€๋ฆฌํ˜• Postgres๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค.

NS: Linux ๋ฐฐํฌํŒ์—๋Š” ๋ชจ๋“  ํ•˜๋“œ์›จ์–ด๊ฐ€ ์ง€์›๋˜๋„๋ก ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด๋ผ๋Š” ์˜์›ํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค์€ Kubernetes์—์„œ ์ž‘๋™ํ•  ๊ฒƒ์ด๋ผ๋Š” ์ƒ๊ฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ Zalando ์šด์˜์ž๊ฐ€ AWS์— ์—ฐ๊ฒฐ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋Š”๋ฐ ์ด๋Š” ๋” ์ด์ƒ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŠน์ • ์ธํ”„๋ผ์™€ ์—ฐ๊ฒฐ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์š”์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

DS: ์ž˜๋ž€๋„๊ฐ€ ์–ด๋–ค ์ƒํ™ฉ์— ์ฒ˜ํ–ˆ๋Š”์ง€๋Š” ์ •ํ™•ํžˆ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ๋Š” ์ด์ œ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ๋””์Šคํฌ ๋ฐฑ์—…์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋„๋ก ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ ํ‘œ์ค€ - ์ตœ์‹  ๋ฒ„์ „ CSI ์‚ฌ์–‘ โ€” ์Šค๋ƒ…์ƒท์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ์œผ๋‚˜ ์–ด๋””์— ๊ตฌํ˜„๋˜์–ด ์žˆ๋‚˜์š”? ์†”์งํžˆ ์•„์ง์€ ๋ชจ๋“  โ€‹โ€‹๊ฒŒ ๋„ˆ๋ฌด ์ƒ์ƒํ•ด์š”... AWS, GCE, Azure, vSphere ์œ„์—์„œ CSI๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด๊ณ  ์žˆ๋Š”๋ฐ ๋ง‰์ƒ ์‚ฌ์šฉ์„ ์‹œ์ž‘ํ•˜๋ฉด ์•„์ง ์ค€๋น„๊ฐ€ ์•ˆ ๋œ ๊ฑธ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

NS: ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋•Œ๋กœ๋Š” ์ธํ”„๋ผ์— ์˜์กดํ•ด์•ผ ํ•  ๋•Œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์ง ์ดˆ๊ธฐ ๋‹จ๊ณ„์ธ ์„ฑ์žฅํ†ต์ธ ๊ฒƒ ๊ฐ™์•„์š”. ์งˆ๋ฌธ: K8์—์„œ PgSQL์„ ์‚ฌ์šฉํ•ด ๋ณด๊ณ  ์‹ถ์€ ์ดˆ๋ณด์ž์—๊ฒŒ ์–ด๋–ค ์กฐ์–ธ์„ ํ•ด์ฃผ๊ณ  ์‹ถ๋‚˜์š”? ์•„๋งˆ๋„ ์–ด๋–ค ์šด์˜์ž์ผ๊นŒ์š”?

DS: ๋ฌธ์ œ๋Š” Postgres๊ฐ€ ์šฐ๋ฆฌ์—๊ฒŒ 3%๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ Kubernetes์—๋Š” ๋งค์šฐ ๋‹ค์–‘ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๋ชฉ๋ก์ด ์žˆ์œผ๋ฏ€๋กœ ๋ชจ๋“  ๊ฒƒ์„ ๋‚˜์—ดํ•˜์ง€๋Š” ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์—˜๋ผ์Šคํ‹ฑ์„œ์น˜. ๋งŽ์€ ์šด์˜์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€๋Š” ์ ๊ทน์ ์œผ๋กœ ๊ฐœ๋ฐœ ์ค‘์ด๊ณ  ๋‹ค๋ฅธ ์ผ๋ถ€๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ์ง„์ง€ํ•˜๊ฒŒ ๋ฐ›์•„๋“ค์ด๊ธฐ ์œ„ํ•ด ์šด์˜์ž๊ฐ€ ๊ฐ–์ถฐ์•ผ ํ•  ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์Šค์Šค๋กœ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. "Amazon์˜ ์กฐ๊ฑด์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ฐ์‚ฐ์ž"๊ฐ€ ์•„๋‹Œ Kubernetes ์ „์šฉ ์—ฐ์‚ฐ์ž์—์„œ... ์‚ฌ์‹ค ์šฐ๋ฆฌ๋Š” ์ƒ๋‹นํžˆ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ(= ๊ฑฐ์˜ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ) ๋‹จ์ผ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Redis์šฉ (์šฐ๋ฆฌ๋Š” ๊ณง ๊ทธ์— ๊ด€ํ•œ ๊ธฐ์‚ฌ๋ฅผ ๊ฒŒ์‹œํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค).

NS: ๊ทธ๋ฆฌ๊ณ  MySQL์—๋„ ํ•ด๋‹น๋˜์ง€ ์•Š๋‚˜์š”? Percona๋Š” ํ˜„์žฌ MySQL, MongoDB ๋ฐ Postgres์—์„œ ์ž‘์—…ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋ชจ๋“  ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž๋ฅผ ์œ„ํ•œ ์ผ์ข…์˜ ๋ฒ”์šฉ ์†”๋ฃจ์…˜์„ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

DS: MySQL์˜ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ดํŽด๋ณผ ์‹œ๊ฐ„์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ง€๊ธˆ ์šฐ๋ฆฌ์˜ ์ฃผ์š” ์ดˆ์ ์ด ์•„๋‹™๋‹ˆ๋‹ค. MySQL์€ ๋…๋ฆฝ ์‹คํ–‰ํ˜•์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋งŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์™œ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? Postrges๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์‹œ์ž‘ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

NS: ์ด์— ๋Œ€ํ•œ ์งˆ๋ฌธ๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์šด์˜์ž๊ฐ€ ์ „ํ˜€ ์—†๋‚˜์š”?

DS: ๋„ค, ์šฐ๋ฆฌ ์ค‘ 100%๋Š” ์—ฐ์‚ฐ์ž ์—†์ด PostgreSQL์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€. ์šฐ๋ฆฌ๋Š” Prometheus ๋ฐ Redis์— ์—ฐ์‚ฐ์ž๋ฅผ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Elasticsearch๋ฅผ ์œ„ํ•œ ์šด์˜์ž๋ฅผ ์ฐพ์„ ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” 100% ๊ฒฝ์šฐ์— Kubernetes์— ์„ค์น˜ํ•˜๊ธฐ๋ฅผ ์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์žฅ "๋ถˆํƒ€์˜ค๋ฅด๋Š”" ์šด์˜์ž์ž…๋‹ˆ๋‹ค. MongoDB๋„ ํ•ญ์ƒ Kubernetes์— ์„ค์น˜๋˜๋„๋ก ํ•˜๋ ค๋Š” ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ํŠน์ • ์†Œ์›์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋ญ”๊ฐ€๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋Š๋‚Œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” Postgres๋„ ๋ณด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์šฐ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ์˜ต์…˜์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๋…๋ฆฝํ˜• ์˜ต์…˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Kubernetes์—์„œ ํ…Œ์ŠคํŠธ์šฉ DB

NS: ํ…Œ์ŠคํŠธ ์ฃผ์ œ๋กœ ๋„˜์–ด ๊ฐ‘์‹œ๋‹ค. DevOps ๊ด€์ ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์žˆ์œผ๋ฉฐ ํ•ญ์ƒ ์–ด๋”˜๊ฐ€์—์„œ ๋ฌด์–ธ๊ฐ€๊ฐ€ ๋ณ€ํ™”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. DBMS ๊ด€์ ์—์„œ ๋ชจ๋“  ๊ฒƒ์ด ์ •๋ˆ๋˜๋„๋ก ์ •์ƒ์ ์ธ CI/CD๋ฅผ ๋ณด์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•. ๋‹น์‹ ์˜ ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

DS: ๋‹ต์€ ํ•˜๋‚˜์ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ๋กค์•„์›ƒํ•˜๋ ค๋Š” ๋ฒ ์ด์Šค์˜ ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๊ธฐ์—…๋“ค์ด ๊ฐœ๋ฐœ ๋ฐ ๋‹จ๊ณ„์—์„œ ์ œํ’ˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ๋ณธ์„ ๊ฐ–๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ํƒœ๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ์ง์ ‘ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

NS: ๊ทธ๋ฆฌ๊ณ  GDPR์˜ ์กฐ๊ฑด ํ•˜์—์„œ ๊ทธ๋“ค์€ ์ ์  ๋” ์กฐ์‹ฌํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์š”... ์œ ๋Ÿฝ์—์„œ๋Š” ์ด๋ฏธ ๋ฒŒ๊ธˆ์„ ๋ถ€๊ณผํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์šฐ๋ฆฌ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ณ ์ • ๋ฐ์ดํ„ฐ ์„ธํŠธ(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ตœ์†Œ ๋ฒ„์ „)๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ณ„ํš์„ ์„ธ์› ์Šต๋‹ˆ๋‹ค. ๊ฒ€ํ†  ํ™˜๊ฒฝ์— ๊ด€ํ•ด ์ด์•ผ๊ธฐํ•œ๋‹ค๋ฉด ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ๊ฑฐ๊ธฐ์— ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋กค์•„์›ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ž˜ ๋‚˜์™”๋„ค์š” ะฒะฐั€ะธะฐะฝั‚, ํ•˜๋ฃจ์— ํ•œ ๋ฒˆ(๋ฐค์—) ํ”„๋กœ๋•์…˜์—์„œ ๋คํ”„๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋กœ๋“œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PostgreSQL ๋ฐ MySQL๋กœ Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ด ์ด๋ฏธ์ง€์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ 50๋ฐฐ ํ™•์žฅํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

NS: ๋‹จ์ˆœ ๋ณต์‚ฌ๋กœ?

DS: ๋ฐ์ดํ„ฐ๋Š” Docker ์ด๋ฏธ์ง€์— ์ง์ ‘ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ €๊ฒƒ๋“ค. ๋น„๋ก 100GB์ด์ง€๋งŒ ๊ธฐ์„ฑ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Docker์˜ ๋ ˆ์ด์–ด ๋•๋ถ„์— ์ด ์ด๋ฏธ์ง€๋ฅผ ํ•„์š”ํ•œ ๋งŒํผ ๋น ๋ฅด๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉ๋ฒ•์€ ๋ฐ”๋ณด๊ฐ™์ง€๋งŒ ํšจ๊ณผ๋Š” ์ข‹์Šต๋‹ˆ๋‹ค.

NS: ๊ทธ๋Ÿผ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋ฉด Docker ๋‚ด๋ถ€์—์„œ ๋ฐ”๋กœ ๋ฐ”๋€Œ์ฃ ? Docker ๋‚ด๋ถ€์˜ Copy-on-Write - ๋ฒ„๋ฆฌ๊ณ  ๋‹ค์‹œ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ž…๋‹ˆ๋‹ค. ์ˆ˜์—…! ๊ทธ๋ฆฌ๊ณ  ๋‹น์‹ ์€ ์ด๋ฏธ ๊ทธ๊ฒƒ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

DS: ์˜ค๋žซ๋™์•ˆ.

NS: ์šฐ๋ฆฌ๋Š” ๋งค์šฐ ์œ ์‚ฌํ•œ ์ผ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Docker์˜ Copy-On-Write๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ๊ฒƒ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

DS: ์ผ๋ฐ˜์ ์ธ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. Docker๋Š” ์–ด๋””์—์„œ๋‚˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

NS: ์ด๋ก ์ ์œผ๋กœ๋Š” ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฑฐ๊ธฐ์—๋Š” ๋ชจ๋“ˆ๋„ ์žˆ์œผ๋ฏ€๋กœ ๋‹ค์–‘ํ•œ ๋ชจ๋“ˆ์„ ๋งŒ๋“ค๊ณ  ๋‹ค์–‘ํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๋ง ์ˆœ๊ฐ„์ด๊ตฐ์š”. Postgres ์ธก์—์„œ๋Š” ์ด ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค๋ฅด๊ฒŒ ๋ด…๋‹ˆ๋‹ค. ์ด์ œ Docker ์ธก๋ฉด์—์„œ ์‚ดํŽด๋ณด๋‹ˆ ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ 1TB์™€ ๊ฐ™์ด ํฌ๋‹ค๋ฉด ์ด ๋ชจ๋“  ์ž‘์—…์— ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ๋ฐค์— ์ž‘์—…ํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์„ Docker์— ์ฑ„์šฐ๋Š” ์ž‘์—…... ๊ทธ๋ฆฌ๊ณ  5TB๋ฅผ Docker์— ์ฑ„์šฐ๋Š” ๊ฒฝ์šฐ... ์•„๋‹ˆ๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ๊ดœ์ฐฎ์Šต๋‹ˆ๊นŒ?

DS: ์ฐจ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ๋‹จ์ง€ ๋น„ํŠธ์™€ ๋ฐ”์ดํŠธ์ผ ๋ฟ์ธ ์–ผ๋ฃฉ์ž…๋‹ˆ๋‹ค.

NS: ์ฐจ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋คํ”„ ๋ฐ ๋ณต์›์„ ํ†ตํ•ด ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๊นŒ?

DS: ์ „ํ˜€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

NS: ์ผ๋ถ€ ํด๋ผ์ด์–ธํŠธ์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ์ด๋ฏธ์ง€๋ฅผ ์ •๊ธฐ์ ์œผ๋กœ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ์ง€์†์ ์œผ๋กœ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋„๋ก ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ ๋ณต์ œ๋ณธ์ด์ง€๋งŒ ๋งˆ์Šคํ„ฐ๋กœ๋ถ€ํ„ฐ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์ง€ ์•Š๊ณ  ์•„์นด์ด๋ธŒ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. WAL์ด ๋งค์ผ ๋‹ค์šด๋กœ๋“œ๋˜๊ณ  ๋ฐฑ์—…์ด ์ˆ˜ํ–‰๋˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ์•„์นด์ด๋ธŒ... ์ด๋Ÿฌํ•œ WAL์€ ์•ฝ๊ฐ„์˜ ์ง€์—ฐ(๋ฌธ์ž ๊ทธ๋Œ€๋กœ 1-2์ดˆ) ํ›„์— ๊ธฐ๋ณธ ์ด๋ฏธ์ง€์— ๋„๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ๋“  ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๊ธฐ๋ณธ์ ์œผ๋กœ ZFS๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

DS: ๊ทธ๋Ÿฌ๋‚˜ ZFS์—์„œ๋Š” ํ•˜๋‚˜์˜ ๋…ธ๋“œ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

NS: ์˜ˆ. ํ•˜์ง€๋งŒ ZFS์—๋Š” ๋งˆ๋ฒ• ๊ฐ™์€ ๊ธฐ๋Šฅ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋‚ด๋‹ค: ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์Šค๋ƒ…์ƒท์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ณ  ์‹ฌ์ง€์–ด (์•„์ง ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธํ•˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ...) ๋‘˜ ์‚ฌ์ด์— ๋ธํƒ€๋ฅผ ๋ณด๋‚ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. PGDATA. ์‹ค์ œ๋กœ ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์œ„ํ•ด ์‹ค์ œ๋กœ ๊ณ ๋ คํ•˜์ง€ ์•Š์€ ๋˜ ๋‹ค๋ฅธ ๋„๊ตฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. PostgreSQL์—๋Š” pg_rewind, "์Šค๋งˆํŠธ" rsync์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๋ฉฐ, ์•„๋ฌด๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์ฒญํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๋งŽ์€ ํ•ญ๋ชฉ์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ๋‘ ์„œ๋ฒ„ ๊ฐ„์— ๋น ๋ฅธ ๋™๊ธฐํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๋˜๊ฐ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

DS: 50๋ฒˆ์€ ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค 50๊ฐœ๋ฅผ ์ฃผ๋ฌธํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

NS: ์•„๋‹ˆ์š”, ์šฐ๋ฆฌ๋Š” ํ•˜๋‚˜์˜ ๊ธฐ๊ณ„์—์„œ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

DS: ๊ทธ๋Ÿฐ๋ฐ ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ•˜๋‚˜๊ฐ€ ๊ฐ€๋ น ํ…Œ๋ผ๋ฐ”์ดํŠธ๋ผ๋ฉด ์–ด๋–ป๊ฒŒ 50๋ฐฐ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ์กฐ๊ฑด๋ถ€ 256GB RAM์ด ํ•„์š”ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๊ฐ€์žฅ ๋†’์Šต๋‹ˆ๊นŒ?

NS: ์˜ˆ, ๋•Œ๋กœ๋Š” ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๋•Œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ •์ƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์‚ถ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค. ์ƒ์‚ฐ ๋จธ์‹ ์—๋Š” 96๊ฐœ์˜ ์ฝ”์–ด์™€ 600GB๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋Š” 32๊ฐœ ์ฝ”์–ด(ํ˜„์žฌ๋Š” 16๊ฐœ ์ฝ”์–ด๋„ ์žˆ์Œ)์™€ 100-120GB์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

DS: ๊ทธ๋ฆฌ๊ณ  ๊ฑฐ๊ธฐ์— 50์žฅ์ด ๋“ค์–ด๊ฐ€๋‚˜์š”?

NS: ๊ทธ๋Ÿผ ๋ณต์‚ฌ๋ณธ์ด ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉด ZFS(Copy-On-Write)๊ฐ€ ์ž‘๋™ํ•˜๋Š”๊ตฐ์š”... ์ž์„ธํžˆ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด 10TB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ด๋ฅผ ์œ„ํ•œ ๋””์Šคํฌ๋ฅผ ๋งŒ๋“ค์—ˆ๊ณ  ZFS๋„ ํฌ๊ธฐ๋ฅผ 30-40% ์ค„์˜€์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋กœ๋“œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ •ํ™•ํ•œ ์‘๋‹ต ์‹œ๊ฐ„์€ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ตœ๋Œ€ 2๋ฐฐ ์ •๋„ ๋Š๋ฆฌ๊ฒŒ ๋†”๋‘์–ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋จธ, QA, DBA ๋“ฑ์—๊ฒŒ ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. 1~2๊ฐœ์˜ ์Šค๋ ˆ๋“œ์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ผ์ข…์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ์— 10๊ฐœ์˜ ์ฝ”์–ด๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 1๊ฐœ์˜ Postgres ๋ฐฑ์—”๋“œ, 1๊ฐœ์˜ ์ฝ”์–ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ž๋™ ์ง„๊ณตํ™” ๊ณ„์† ์‹œ์ž‘๋˜๋ฉด ๋‘ ๋ฒˆ์งธ ์ฝ”์–ด๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. 16~32๊ฐœ์˜ ์ฝ”์–ด๊ฐ€ ํ• ๋‹น๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ 10๋ช…์ด ๋™์‹œ์— ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ ์—†์Šต๋‹ˆ๋‹ค.

์™œ๋ƒ๋ฉด ์œก์ฒด์ ์œผ๋กœ PGDATA ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์šฐ๋ฆฌ๋Š” ์‹ค์ œ๋กœ Postgres๋ฅผ ์†์ด๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. ๋น„๊ฒฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 10๊ฐœ์˜ Postgres๊ฐ€ ๋™์‹œ์— ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต ๋ฌด์Šจ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‚˜์š”? ๊ทธ๋“ค์€ ๋„ฃ์–ด ๊ณต์œ  ๋ฒ„ํผ, 25%๋ผ๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๊ฒƒ์€ 200GB์ž…๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ค‘ XNUMX๊ฐœ ์ด์ƒ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์–ด๋Š ์‹œ์ ์—์„œ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. โ€‹โ€‹shared_buffers๋ฅผ 2GB๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. PostgreSQL์—๋Š” ํšจ๊ณผ์ ์ธ _ ์บ์‹œ _ ํฌ๊ธฐ, ์‹ค์ œ๋กœ๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์œ ์ผํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ณ„ํš. 0,5TB๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์ด ์‹ค์ œ๋กœ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ๋งˆ์น˜ ๊ทธ๊ฒƒ์ด ์กด์žฌํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊ณ„ํš์„ ์„ธ์›๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ผ์ข…์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ…Œ์ŠคํŠธํ•  ๋•Œ ๋ชจ๋“  ๊ณ„ํš์„ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ”„๋กœ๋•์…˜์—์„œ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ดˆ๋Š” ๋‹ค๋ฅด์ง€๋งŒ(๋Š๋ฆฌ๊ฒŒ) ์‹ค์ œ๋กœ ์ฝ์€ ๋ฐ์ดํ„ฐ์™€ ๊ณ„ํš ์ž์ฒด(JOIN์ด ๋ฌด์—‡์ธ์ง€ ๋“ฑ)๋Š” ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ๊ณผ ์ •ํ™•ํžˆ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•˜๋‚˜์˜ ์‹œ์Šคํ…œ์—์„œ ์ด๋Ÿฌํ•œ ์—ฌ๋Ÿฌ ๊ฒ€์‚ฌ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DS: ์—ฌ๊ธฐ์— ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š๋‚˜์š”? ์ฒซ ๋ฒˆ์งธ๋Š” PostgreSQL์—์„œ๋งŒ ์ž‘๋™ํ•˜๋Š” ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋งค์šฐ ๊ฐœ์ธ์ ์ด๋ฉฐ ์ผ๋ฐ˜์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ๋Š” Kubernetes(๋ฐ ํ˜„์žฌ ํด๋ผ์šฐ๋“œ ๊ธฐ์ˆ ์— ์ ์šฉ๋˜๋Š” ๋ชจ๋“  ๊ฒƒ)์—๋Š” ๋งŽ์€ ๋…ธ๋“œ๊ฐ€ ํฌํ•จ๋˜๋ฉฐ ์ด๋Ÿฌํ•œ ๋…ธ๋“œ๋Š” ์ผ์‹œ์ ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๊ฒฝ์šฐ ์ด๋Š” ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ์˜๊ตฌ ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒƒ๋“ค์ด ๋‚˜๋ฅผ ๊ฐˆ๋“ฑํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.

NS: ์ฒซ์งธ, ์ด๊ฒƒ์€ ์ˆœ์ „ํžˆ Postgres ์ด์•ผ๊ธฐ๋ผ๋Š” ์ ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์ƒ๊ฐ์— ์šฐ๋ฆฌ๊ฐ€ ๊ฑฐ์˜ ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•œ ์ผ์ข…์˜ ์ง์ ‘ IO์™€ ๋ฒ„ํผ ํ’€์„ ๊ฐ–๊ณ  ์žˆ๋‹ค๋ฉด ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ณ„ํš์€ ๋‹ฌ๋ผ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ง€๊ธˆ์€ Postgres๋กœ๋งŒ ์ž‘์—…ํ•˜๊ณ  ๋‹ค๋ฅธ ๊ฒƒ์— ๋Œ€ํ•ด์„œ๋Š” ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— ๋Œ€ํ•˜์—ฌ. ๋‹น์‹ ์€ ์šฐ๋ฆฌ๊ฐ€ ์˜๊ตฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ๋ชจ๋“  ๊ณณ์—์„œ ์šฐ๋ฆฌ์—๊ฒŒ ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋””์Šคํฌ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” Kubernetes์˜ ์ „์ฒด ํ”Œ๋žซํผ๋„ ์žˆ์œผ๋ฉฐ Postgres๊ฐ€ ํฌํ•จ๋œ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋ณ„๋„์ž…๋‹ˆ๋‹ค(์–ธ์  ๊ฐ€๋Š” ์žˆ์„ ์˜ˆ์ •์ž„). ๋”ฐ๋ผ์„œ ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๊ฐ€ ๋–จ์–ด์กŒ์ง€๋งŒ PV๋ฅผ ์ €์žฅํ•˜๊ณ  ์•„๋ฌด ์ผ๋„ ์—†์—ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ๋‹ค๋ฅธ (์ƒˆ) ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

DS: ๋‚ด ๊ด€์ ์—์„œ๋Š” Kubernetes์—์„œ Pod๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. K8s - ํƒ„์„ฑ: ๋งค๋“ญ์€ ํ•„์š”์— ๋”ฐ๋ผ ์ฃผ๋ฌธ๋ฉ๋‹ˆ๋‹ค. ์ž„๋ฌด๋Š” ๋‹จ์ˆœํžˆ ํฌ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  X๋งŒํผ์˜ ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ๋งํ•˜๋ฉด K8์ด ์Šค์Šค๋กœ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Kubernetes์˜ ์Šคํ† ๋ฆฌ์ง€ ์ง€์›์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋ถˆ์•ˆ์ •ํ•ฉ๋‹ˆ๋‹ค. 1.16์— 1.17 (์ด ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ะฝะตะดะตะปะธ ์ด์ „) ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์€ ๋ฒ ํƒ€๋กœ๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

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

NS: ์ด ๋ฒ„์ „์„ ์ง€์›ํ•˜๋ ค๋ฉด ๋ชจ๋“  ์—”์ง„(Amazon, Google...)์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์—ญ์‹œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

DS: ์•„์ง์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ ๊ฒƒ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Kubernetes๋ฅผ ์œ„ํ•œ ๋กœ์ปฌ ๊ฐœ๋ฐœ

NS: ํ•œ ๋จธ์‹ ์— ๋ชจ๋“  ํฌ๋“œ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์ด๋ ‡๊ฒŒ ์ž‘์€ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๋•Œ ๊ทธ๋Ÿฐ ํฌ๋ง ์‚ฌํ•ญ์„ ๋ฐœ๊ฒฌํ•˜์…จ๋‚˜์š”? ๊ฐœ๋… ์ฆ๋ช…์„ ์‹ ์†ํ•˜๊ฒŒ ์–ป์œผ๋ ค๋ฉด ๋งŽ์€ ๋จธ์‹ ์„ ์ „์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Kubernetes์—์„œ ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. Minikube๊ฐ€ ์žˆ์ฃ ?

DS: ํ•œ ๋…ธ๋“œ์— ๋ฐฐํฌ๋œ ์ด ์‚ฌ๋ก€๋Š” ์ „์ ์œผ๋กœ ๋กœ์ปฌ ๊ฐœ๋ฐœ์— ๊ด€ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ๊ทธ๋Ÿฌํ•œ ํŒจํ„ด์˜ ์ผ๋ถ€ ํ‘œํ˜„. ๋จน๋‹ค ๋ฏธ๋‹ˆ์ฟ ๋ฒ ๊ทธ๊ณณ์— k3s, ์ข…๋ฅ˜. ์šฐ๋ฆฌ๋Š” Kubernetes IN Docker๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋‚˜์•„๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์šฐ๋ฆฌ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ž‘์—…์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

NS: ์ €๋Š” ์ด๊ฒƒ์ด ๋ชจ๋“  Pod๋ฅผ ํ•˜๋‚˜์˜ Docker ์ด๋ฏธ์ง€๋กœ ํฌ์žฅํ•˜๋ ค๋Š” ์‹œ๋„๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์™„์ „ํžˆ ๋‹ค๋ฅธ ๊ฒƒ์— ๊ด€ํ•œ ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  Docker์—๋Š” ๋ณ„๋„์˜ ์ปจํ…Œ์ด๋„ˆ, ๋ณ„๋„์˜ ํฌ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

DS: ์˜ˆ. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์†Œ ์šฐ์Šค๊ฝ์Šค๋Ÿฌ์šด ๋ชจ๋ฐฉ์ด ๋งŒ๋“ค์–ด์กŒ๋Š”๋ฐ ๊ทธ ์˜๋ฏธ๋Š” ์ด๋ ‡์Šต๋‹ˆ๋‹ค... ์šฐ๋ฆฌ๋Š” ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค - ์›Œํ”„. ์กฐ๊ฑด๋ถ€ ๋ชจ๋“œ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. werf up: "๋กœ์ปฌ Kubernetes๋ฅผ ๊ฐ€์ ธ์˜ค์„ธ์š”." ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฑฐ๊ธฐ์—์„œ ์กฐ๊ฑด๋ฌธ์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. werf follow. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฐœ๋ฐœ์ž๋Š” IDE๋ฅผ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ™•์ธํ•˜๊ณ  ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜์—ฌ ๋กœ์ปฌ K8์— ์žฌ๋ฐฐํฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์Šคํ…œ์—์„œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ์ง€์—ญ ๋ฐœ์ „ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

K8s ํ˜„์‹ค์˜ ์Šค๋ƒ…์ƒท ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต์ œ

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

๊ทธ๋Ÿฌ๋‚˜ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด Docker์—์„œ ์ด์•ผ๊ธฐํ•˜๊ฑฐ๋‚˜ ZFS, btrfs, ์‹ฌ์ง€์–ด LVM์—์„œ ์ด์•ผ๊ธฐํ•˜๋Š” ์Šค๋ƒ…์ƒท์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜๋‚˜์˜ ์‹œ์Šคํ…œ์—์„œ ์‹ค์ œ๋กœ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ์—์„œ๋Š” ๋งค๋ฒˆ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๊ณ  ๋ช‡ ์ดˆ๊ฐ€ ์•„๋‹Œ ๋ช‡ ๋ถ„๋งŒ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ฒŒ์œผ๋ฅธ ๋กœ๋“œ, ์•„๋งˆ๋„ ์‹œ๊ณ„).

๋Œ€์‹ , ์ด ๋ฐ์ดํ„ฐ๋ฅผ XNUMX~XNUMX์ดˆ ์•ˆ์— ๊ฐ€์ ธ์™€์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ฒ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์Šค๋ƒ…์ƒท์€ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๊ฒฝ์šฐ์—๋Š” ํ™•์žฅํ•˜์—ฌ ์ƒˆ ๋ณต์ œ๋ณธ์„ ์–ป๊ณ  ๋‘ ๋ฒˆ์งธ ๊ฒฝ์šฐ์—๋Š” ํ…Œ์ŠคํŠธ์šฉ์ž…๋‹ˆ๋‹ค.

DS: ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณผ๋ฅจ ๋ณต์ œ๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ํด๋ผ์šฐ๋“œ์˜ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๊ตฌํ˜„์„ ์‚ดํŽด๋ณด์ง„ ์•Š์•˜์ง€๋งŒ ํ•˜๋“œ์›จ์–ด์—์„œ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Ceph๊ฐ€ ์žˆ๋Š”๋ฐ, ์ด๋Š” ๋ชจ๋“  ๋ฌผ๋ฆฌ์  ๋ณผ๋ฅจ(RBD) ๋งํ•˜๋‹ค ๋ณต์ œ ์ˆ˜์‹ญ ๋ฐ€๋ฆฌ์ดˆ ์•ˆ์— ๋™์ผํ•œ ํŠน์„ฑ์„ ๊ฐ€์ง„ ๋‘ ๋ฒˆ์งธ ๋ณผ๋ฅจ์„ ์–ป์Šต๋‹ˆ๋‹ค. IOPS'์•„๋ฏธ ๋“ฑ๋“ฑ ๋‚ด๋ถ€์— ๊นŒ๋‹ค๋กœ์šด Copy-On-Write๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ๋„ ๊ฐ™์€ ์ผ์„ ํ•˜๋ฉด ์•ˆ ๋˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๋“ค์ด ์–ด๋–ค ์‹์œผ๋กœ๋“  ์ด๊ฒƒ์„ ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

NS: ํ•˜์ง€๋งŒ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  Docker๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ๋Š” ์—ฌ์ „ํžˆ ๋ช‡ ์ดˆ, ์ˆ˜์‹ญ ์ดˆ๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

DS: ์ „์ฒด ์ธ์Šคํ„ด์Šค๋ฅผ ํ‚ค์›Œ์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” 32๊ฐœ์˜ ์ฝ”์–ด, 16๊ฐœ...๋ฅผ ๊ฐ€์ง„ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์—ฌ๊ธฐ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: XNUMX๊ฐœ). ๋‹ค์„ฏ ๋ฒˆ์งธ๋ฅผ ์ฃผ๋ฌธํ•˜๋ฉด ์ธ์Šคํ„ด์Šค๊ฐ€ ์ด๋ฏธ ์ƒ์„ฑ๋œ ํ›„ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

NS: ๋„ค, ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. Kubernetes๋Š” ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” K8s์— ์—†์œผ๋ฉฐ ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•˜๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฉ€ํ‹ฐํ…Œ๋ผ๋ฐ”์ดํŠธ ๊ทœ๋ชจ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณต์ œํ•˜๋Š” ๋ฐ๋Š” XNUMX์ดˆ๋„ ๊ฑธ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

DS: ์ •๋ง ์ข‹์•„์š”. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜์˜ ์ดˆ๊ธฐ ์š”์ ์€ ์ด๊ฒƒ์ด ์ผ๋ฐ˜์ ์ธ ์†”๋ฃจ์…˜์ด ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ, ์ข‹์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Postgres์™€ ํ•˜๋‚˜์˜ ๋…ธ๋“œ์—๋งŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

NS: ์ด๊ฒƒ์€ Postgres์—๋งŒ ์ ํ•ฉํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์„ค๋ช…ํ•œ ๋Œ€๋กœ ์ด ๊ณ„ํš์€ Postgres์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ณ„ํš์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๊ณ  ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋งŒ ํ•„์š”ํ•˜๋‹ค๋ฉด ์ด๋Š” ๋ชจ๋“  DBMS์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

DS: ๋ช‡ ๋…„ ์ „์— ์šฐ๋ฆฌ๋Š” LVM ์Šค๋ƒ…์ƒท์—์„œ ๋น„์Šทํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ณ ์ „์ž…๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋งค์šฐ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒํƒœ ์ €์žฅ ๋…ธ๋“œ๋Š” ๊ณ ํ†ต์Šค๋Ÿฌ์šธ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋–จ์–ด๋œจ๋ฆฌ๋ฉด ์•ˆ ๋˜๋‹ˆ๊นŒ ๋Š˜ ๊ธฐ์–ตํ•ด์•ผ์ง€...

NS: ์—ฌ๊ธฐ์„œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๊ณ  ๋ณด์‹œ๋‚˜์š”? ์ƒํƒœ ์ €์žฅ์ด ์ผ์ข…์˜ ํฌ๋“œ๋ผ๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ(๋งŽ์€ ํ…Œ์Šคํ„ฐ)์—๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ณผ๋ฅจ์€ ํ•˜๋‚˜์ด์ง€๋งŒ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋•๋ถ„์— ๋ณต์ œ๋ณธ์€ ๋กœ์ปฌ์ž…๋‹ˆ๋‹ค. ํฌ๋“œ๊ฐ€ ๋–จ์–ด์กŒ์ง€๋งŒ ๋””์Šคํฌ๋Š” ๋‚จ์•„ ์žˆ์œผ๋ฉด ํฌ๋“œ๊ฐ€ ์˜ฌ๋ผ๊ฐ€์„œ ๋ชจ๋“  ํด๋ก ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค์‹œ ์ง‘์–ด ๋“ค๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ•ฉ๋‹ˆ๋‹ค. "์—ฌ๊ธฐ ์ด ํฌํŠธ์—์„œ ์‹คํ–‰ ์ค‘์ธ ํด๋ก ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ„์† ์ž‘์—…ํ•˜์„ธ์š”."

DS: ๊ธฐ์ˆ ์ ์œผ๋กœ ์ด๊ฒƒ์€ Kubernetes ๋‚ด์—์„œ ๋งŽ์€ Postgres๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ•˜๋‚˜์˜ ํฌ๋“œ๋ผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

NS: ์˜ˆ. ๊ทธ์—๊ฒŒ๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ๊ทธ์™€ ํ•จ๊ป˜ ์ผํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์€ 10๋ช… ์ดํ•˜๋ผ๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 20๊ฐœ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋‘ ๋ฒˆ์งธ ํฌ๋“œ๋ฅผ ์ถœ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ „์ฒด ๋ณผ๋ฅจ์„ ์ˆ˜์‹ ํ•˜๋ฉด ์ด๋ฅผ ์™„์ „ํžˆ ๋ณต์ œํ•  ๊ฒƒ์ด๋ฉฐ ๋™์ผํ•œ 10๊ฐœ์˜ "์”ฌ" ํด๋ก ์„ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ธฐํšŒ๊ฐ€ ๋ณด์ด์ง€ ์•Š๋‚˜์š”?

DS: ์—ฌ๊ธฐ์— ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ์กฐ์ง์€ ์ด ํฌ๋“œ๊ฐ€ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๋น„ํ‘œ์ค€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋†’์€ ๊ถŒํ•œ(๊ธฐ๋Šฅ)์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค... ํ•˜์ง€๋งŒ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ์ค‘๊ธฐ์ ์œผ๋กœ๋Š” ๊ทธ๋“ค์ด Kubernetes์˜ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ณ ์น  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ๊ตฌ๋ฆ„์€ ์ „์ฒด ์ด์•ผ๊ธฐ๋ฅผ ๋ณผ๋ฅจ์œผ๋กœ ๊ณ ์น  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด "๊ทธ๋ƒฅ ์ž‘๋™"ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํฌ๊ธฐ ์กฐ์ •, ๋ณต์ œ... ๋ณผ๋ฅจ์ด ์žˆ์Šต๋‹ˆ๋‹ค. "์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ ๋ณผ๋ฅจ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค."๋ผ๊ณ  ๋งํ•˜๊ณ  XNUMX์ดˆ ๋ฐ˜ ํ›„์— ํ•„์š”ํ•œ ๊ฒƒ์„ ์–ป์Šต๋‹ˆ๋‹ค.

NS: ๋‚˜๋Š” ์ˆ˜ ํ…Œ๋ผ๋ฐ”์ดํŠธ์— ๋Œ€ํ•ด 2์ดˆ๋ผ๋Š” ๊ฒƒ์„ ๋ฏฟ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Ceph์—์„œ๋Š” ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ ํด๋ผ์šฐ๋“œ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ๋กœ ์ด๋™ํ•˜์—ฌ ECXNUMX์—์„œ ๋ฉ€ํ‹ฐ ํ…Œ๋ผ๋ฐ”์ดํŠธ EBS ๋ณผ๋ฅจ์˜ ๋ณต์ œ๋ณธ์„ ๋งŒ๋“ค๊ณ  ์„ฑ๋Šฅ์ด ์–ด๋–ค์ง€ ํ™•์ธํ•˜์„ธ์š”. ๋ช‡ ์ดˆ๋„ ๊ฑธ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์–ธ์ œ ์ด ์ˆ˜์ค€์— ๋„๋‹ฌํ• ์ง€ ๋งค์šฐ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์ด ๋งํ•˜๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๋‹ค๋ฅด๊ฒŒ ๊ฐ„์ฒญํ•ฉ๋‹ˆ๋‹ค.

DS: ๋„ค, ๊ทธ๋Ÿฐ๋ฐ ๋‹จ๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ ์ค‘๊ธฐ๋ผ๊ณ  ๋ง์”€๋“œ๋ ธ๋Š”๋ฐ์š”. ๋ช‡ ๋…„ ๋™์•ˆ.

Zalando์˜ PostgreSQL ์—ฐ์‚ฐ์ž ์ •๋ณด

์ด ํšŒ์˜ ์ค‘๊ฐ„์— Zalando์˜ ์ „ ๊ฐœ๋ฐœ์ž์ธ Alexey Klyukin๋„ ํ•ฉ๋ฅ˜ํ•˜์—ฌ PostgreSQL ์šด์˜์ž์˜ ์—ญ์‚ฌ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.

Postgres์™€ Kubernetes ๋ชจ๋‘์—์„œ ์ด ์ฃผ์ œ๋ฅผ ์ „๋ฐ˜์ ์œผ๋กœ ๋‹ค๋ฃฌ๋‹ค๋Š” ๊ฒƒ์€ ์ข‹์€ ์ผ์ž…๋‹ˆ๋‹ค. 2017๋…„ Zalando์—์„œ ์ด ์ž‘์—…์„ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ๋ชจ๋‘๊ฐ€ ํ•˜๊ณ  ์‹ถ์–ดํ•˜๋Š” ์ฃผ์ œ์˜€์ง€๋งŒ ์•„๋ฌด๋„ ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฌ๋‚˜ ์ด๋ฏธ Kubernetes๋ฅผ ๊ฐ–๊ณ  ์žˆ์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ฌผ์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ฌ๋žŒ๋“ค๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์ผˆ์‹œ ํ•˜์ดํƒ€์›ŒK8s๋ฅผ ์„ค๊ตํ•œ ๋ถ„์€ ์ด๋ ‡๊ฒŒ ๋ง์”€ํ•˜์…จ์Šต๋‹ˆ๋‹ค.

โ€œ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค๋กœ ์ด๋™ํ•˜์—ฌ ์‚ฌ์šฉํ•˜์„ธ์š”. Kubernetes์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‹คํ–‰ํ•˜์ง€ ๋งˆ์„ธ์š”. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์˜ˆ๋ฅผ ๋“ค์–ด K8์ด ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๋„๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์•„์ฃผ ๋ฉ€๋ฆฌ ๋‚ ์•„๊ฐˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.โ€

์šฐ๋ฆฌ๋Š” ์ด ์กฐ์–ธ๊ณผ๋Š” ๋ฐ˜๋Œ€๋กœ Kubernetes์—์„œ Postgres ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‹œ์ž‘ํ•  ์šด์˜์ž๋ฅผ ๋งŒ๋“ค๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ์—๊ฒŒ๋Š” ๊ทธ๋Ÿด๋งŒํ•œ ์ด์œ ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค - ํŒจํŠธ๋กœ๋‹ˆ. ์ด๋Š” PostgreSQL์— ๋Œ€ํ•œ ์ž๋™ ์žฅ์•  ์กฐ์น˜์ด๋ฉฐ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. etcd, consul ๋˜๋Š” ZooKeeper๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ์ •๋ณด ์ €์žฅ์†Œ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ˜„์žฌ ๋ฆฌ๋”๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ๋ฌป๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ๋™์ผํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ €์žฅ์†Œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๋ถ„์‚ฐ๋˜์–ด ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ถ„ํ• ๋œ ๋‘๋‡Œ๊ฐ€ ์—†๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์šฐ๋ฆฌ๋Š” ๋„์ปค ์ด๋ฏธ์ง€ ๊ทธ๋ฅผ ์œ„ํ•ด.

์ผ๋ฐ˜์ ์œผ๋กœ ํšŒ์‚ฌ์˜ ์ž๋™ ์žฅ์•  ์กฐ์น˜(failover)์— ๋Œ€ํ•œ ํ•„์š”์„ฑ์€ ๋‚ด๋ถ€ ํ•˜๋“œ์›จ์–ด ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„œ ํด๋ผ์šฐ๋“œ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•œ ํ›„์— ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ๋Š” ๋…์ ์ ์ธ PaaS(Platform-as-a-Service) ์†”๋ฃจ์…˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜คํ”ˆ ์†Œ์Šค์ด์ง€๋งŒ ์ด๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐ ๋งŽ์€ ์ž‘์—…์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ถˆ๋ ธ๋‹ค ์Šคํ….

์ฒ˜์Œ์—๋Š” Kubernetes๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ •ํ™•ํžˆ ๋งํ•˜๋ฉด, ์ž์ฒด ์†”๋ฃจ์…˜์„ ๋„์ž…ํ•  ๋‹น์‹œ K8์€ ์ด๋ฏธ ์กด์žฌํ–ˆ์ง€๋งŒ, ๋„ˆ๋ฌด ์กฐ์žกํ•ด์„œ ์ƒ์‚ฐ์— ์ ํ•ฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด ์ƒ๊ฐ์—” 2015๋…„์ธ๊ฐ€ 2016๋…„์ด์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. 2017๋…„๊นŒ์ง€ Kubernetes๋Š” ๋‹ค์†Œ ์„ฑ์ˆ™ํ•ด์กŒ์œผ๋ฉฐ ๊ทธ๊ณณ์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ํ•„์š”๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ–๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Docker๋ฅผ ์‚ฌ์šฉํ•œ PaaS๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. K8์„ ์‹œํ—˜ํ•ด ๋ณด๋Š” ๊ฒƒ์€ ์–ด๋–จ๊นŒ์š”? ์ž์‹ ๋งŒ์˜ ์—ฐ์‚ฐ์ž๋ฅผ ์ž‘์„ฑํ•ด ๋ณด๋Š” ๊ฒƒ์€ ์–ด๋–จ๊นŒ์š”? Avito์—์„œ ์šฐ๋ฆฌ์—๊ฒŒ ์˜จ Murat Kabilov๋Š” ์ž์‹ ์˜ ์ฃผ๋„๋กœ "๋†€์ด"๋ผ๋Š” ํ”„๋กœ์ ํŠธ๋กœ ์ด๊ฒƒ์„ ์‹œ์ž‘ํ–ˆ๊ณ  ํ”„๋กœ์ ํŠธ๋Š” "์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค."

ํ•˜์ง€๋งŒ ์ „๋ฐ˜์ ์œผ๋กœ AWS์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ AWS ๊ด€๋ จ ์ฝ”๋“œ๊ฐ€ ์žˆ์—ˆ๋˜ ์ด์œ ๋Š”...

Kubernetes์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ์‹คํ–‰ํ•  ๋•Œ K8s๊ฐ€ ์ง„ํ–‰ ์ค‘์ธ ์ž‘์—…์ด๋ผ๋Š” ์ ์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋Š์ž„์—†์ด ๋ฐœ์ „ํ•˜๊ณ , ๊ฐœ์„ ๋˜๊ณ , ๋•Œ๋กœ๋Š” ๋ฌด๋„ˆ์ง€๊ธฐ๊นŒ์ง€ ํ•ฉ๋‹ˆ๋‹ค. Kubernetes์˜ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฉด๋ฐ€ํžˆ ๊ด€์ฐฐํ•ด์•ผ ํ•˜๋ฉฐ, ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋ฉด ์ด๋ฅผ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ณ  ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ž์„ธํžˆ ๋ฐฐ์šธ ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ์›ํ•˜๋Š” ๊ฒƒ ์ด์ƒ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์›์น™์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ชจ๋“  ํ”Œ๋žซํผ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๊ฐ€ ์„ฑ๋ช…์„œ๋ฅผ ์ž‘์„ฑํ–ˆ์„ ๋•Œ Postgres๋Š” ์™ธ๋ถ€ ๋ณผ๋ฅจ(์ด ๊ฒฝ์šฐ AWS์—์„œ ์ž‘์—… ์ค‘์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— EBS)์—์„œ ์‹คํ–‰ ์ค‘์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ปค์ ธ์„œ ์–ด๋–ค ์‹œ์ ์—์„œ๋Š” ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด EBS์˜ ์ดˆ๊ธฐ ํฌ๊ธฐ๋Š” 100TB์˜€๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋„ ๊ทธ ์ •๋„๋กœ ๋Š˜์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด์ œ EBS๋ฅผ 200TB๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ? ์ƒˆ ์ธ์Šคํ„ด์Šค์—์„œ ๋คํ”„/๋ณต์›์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ  ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„์ด ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

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

๋‹ค๋ฅธ ํ”Œ๋žซํผ์—์„œ๋„ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์•„๋ฌด๋„ ๋ง‰์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์„ค๋ช…์—๋Š” AWS์—์„œ๋งŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ํžŒํŠธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๊ฒƒ์€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ๋ˆ„๊ตฌ๋“ ์ง€ ์ƒˆ๋กœ์šด API ์‚ฌ์šฉ์˜ ์ถœํ˜„ ์†๋„๋ฅผ ๋†’์ด๊ณ  ์‹ถ๋‹ค๋ฉด ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๋จน๋‹ค GitHub์˜, ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ - Zalando ํŒ€์€ ๋งค์šฐ ์‹ ์†ํ•˜๊ฒŒ ์ด์— ์‘๋‹ตํ•˜๊ณ  ์šด์˜์ž๋ฅผ ์Šน๊ฒฉ์‹œํ‚ค๋ ค๊ณ  ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ, ๊ทธ ํ”„๋กœ์ ํŠธ๋Š” ์ฐธ์—ฌํ•œ Google Summer of Code ๋ฐ ๊ธฐํƒ€ ์œ ์‚ฌํ•œ ์ด๋‹ˆ์…”ํ‹ฐ๋ธŒ์—์„œ. Zalando๋Š” ์ด์— ๋Œ€ํ•ด ๋งค์šฐ ์ ๊ทน์ ์œผ๋กœ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

PS ๋ณด๋„ˆ์Šค!

PostgreSQL๊ณผ Kubernetes ์ฃผ์ œ์— ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด ๋‹ค์Œ Postgres ํ™”์š”์ผ์ด ์ง€๋‚œ์ฃผ์— ์—ด๋ ธ์œผ๋ฉฐ ์ œ๊ฐ€ Nikolai์™€ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆด๋‹ค๋Š” ์ ๋„ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. Zalando์˜ Alexander Kukushkin. ํ•ด๋‹น ๋™์˜์ƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—.

PPS

๋ธ”๋กœ๊ทธ์—์„œ๋„ ์ฝ์–ด๋ณด์„ธ์š”.

์ถœ์ฒ˜ : habr.com

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