Couchbase์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ

Capella๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ „์šฉ ์‚ฌ์šฉ ์‚ฌ๋ก€ ๋ฐ Couchbase Enterprise 7.2๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

ํฌ๋ ˆ์Šคํ„ฐ ์›จ๋น„๋‚˜: Couchbase 7.1๋กœ ์šด์˜ ์•ฑ์˜ ์ธํ…”๋ฆฌ์ „์Šค ํ–ฅ์ƒ

Couchbase Server 7.1 ๋ฐœํ‘œ

Couchbase Server 7.1์€ ์ƒ๋‹นํ•œ ์šด์˜ ํšจ์œจ์„ฑ์„ ๋„์ž…ํ•˜์—ฌ Couchbase๋ฅผ ์—ญ๋Œ€ ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ, ์‚ฌ์šฉ์„ฑ, ํ™•์žฅ์„ฑ, ๊ฒฝ์ œ์„ฑ์„ ๊ฐ–์ถ˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค. ์Šคํ† ๋ฆฌ์ง€ ํšจ์œจ์„ฑ ํ–ฅ์ƒ, ๊ธฐ์กด RDBMS ํ‘œ์ค€๊ณผ์˜ ๊ธด๋ฐ€ํ•œ ๊ฒฐํ•ฉ, ๋‹ค์Œ์„ ํ†ตํ•ด ๋”์šฑ ๊ฐ•๋ ฅํ•œ ์šด์˜ ๋ถ„์„ ๋ฐ ์ธ์‚ฌ์ดํŠธ ์ œ๊ณต ๋“ฑ์˜ ๊ฐœ์„  ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ Tableau ํ†ตํ•ฉ.

Couchbase Server 7.1์€ ๋ถ„์‚ฐ ๋ฐฐํฌ์˜ ์ƒˆ๋กœ์šด ํ‘œ์ค€์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ฑ๋Šฅ ๋ชจ๋“  ์‚ฌ์šฉ์ž์™€ ๊ณ ๊ฐ์—๊ฒŒ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๋‚ฎ์€ TCO๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ์ƒˆ ๊ธฐ๋Šฅ

๋†’์€ ๋ฐ์ดํ„ฐ ๋ฐ€๋„์˜ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„, Couchbase Magma

์นด์šฐ์น˜๋ฒ ์ด์Šค๋Š” ์นด์šฐ์น˜๋ฒ ์ด์Šค ์„œ๋ฒ„์— ํ”„๋กœ๋•์…˜์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ๋ฐ€๋„ ๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ธ Magma๋ฅผ ๋„์ž…ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๊ธฐ์กด Couchstore ๋˜๋Š” ์ƒˆ๋กœ์šด ๊ณ ๋ฐ€๋„ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ ๋ฐ€๋„ ์Šคํ† ๋ฆฌ์ง€๋Š” ํ•ต์‹ฌ ๊ฐ€์น˜ ์—”์ง„์„ ์œ„ํ•ด ์žฅ๊ธฐ์ ์œผ๋กœ ์„ ํ˜ธ๋˜๋Š” ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ž…๋‹ˆ๋‹ค. ๊ณ ๋ฐ€๋„ ์Šคํ† ๋ฆฌ์ง€๋Š” ์ปดํ“จํŒ…๊ณผ ์Šคํ† ๋ฆฌ์ง€ ๋ถ„๋ฆฌ์˜ ์žฅ์ ์„ ๋ชจ๋‘ ๊ฐ–์ถ”๊ณ  ์žˆ์œผ๋ฉฐ, ์ตœ๋Œ€ 10๋ฐฐ ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ตœ๋Œ€ 4๋ฐฐ ๋น ๋ฅธ ์„ฑ๋Šฅ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ , ๋…ธ๋“œ๋‹น 3๋ฐฐ ๋” ํฐ ๋ฐ์ดํ„ฐ ์„ธํŠธ(ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ๋‹น 3TB์—์„œ 10TB๊นŒ์ง€)๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํ† ๋ฆฌ์ง€ ์šฉ๋Ÿ‰์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์žฅ์  ๋•๋ถ„์— ๋” ๋†’์€ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์œผ๋กœ ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋” ์ž‘๊ณ  ๊ฒฝ์ œ์ ์ธ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž‘๋™ ๋ฐฉ์‹ Magma๋Š” ๋กœ๊ทธ ๊ตฌ์กฐ ๋ณ‘ํ•ฉ ํŠธ๋ฆฌ(LSM)์˜ ์„ฑ๋Šฅ๊ณผ ์ •๋ ฌ๋œ ๋ฌธ์ž์—ด ํ…Œ์ด๋ธ”(SSTable)์˜ ์••์ถ•์„ฑ, ์žฌ๊ตฌ์„ฑ์„ฑ, ๋ถˆ๋ณ€์„ฑ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์“ฐ๊ธฐ ์ž‘์—…์ด ๋งŽ๊ณ  ์ง€์—ฐ ์‹œ๊ฐ„์ด ์งง์€ ํฌ์ธํŠธ ์กฐํšŒ ์›Œํฌ๋กœ๋“œ์— ์ ํ•ฉํ•œ ์ž˜ ์ •๋ฆฌ๋œ ์งง์€ ์ง€์—ฐ ์‹œ๊ฐ„ ์—”์ง„์—์„œ ๊ณ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค๊ณ„๋Š” '์Šคํ† ๋ฆฌ์ง€ ์ฆํญ'์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๋””์Šคํฌ ๊ณต๊ฐ„ ์ฆ๊ฐ€๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ  ๋ฌธ์„œ๊ฐ€ ์žฌ๊ตฌ์„ฑ๋˜์ง€ ์•Š์€ ์ฑ„๋กœ ์‹ฌํ•˜๊ฒŒ ๋ณ€๊ฒฝ๋  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ˆ˜๋ฐ˜๋˜๋Š” ๋ณต์žก์„ฑ์„ ์ค„์—ฌ์ค๋‹ˆ๋‹ค.

ํš๊ธฐ์ ์ธ ์„ฑ๋Šฅ ๋ฐ TCO ํ˜œํƒ

  • ๊ณ ๋ฐ€๋„ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋…ธ๋“œ๋‹น ๋ฐ์ดํ„ฐ ์šฉ๋Ÿ‰์ด 3TB์—์„œ 10TB๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค.
  • ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ 4๋ฐฐ ๋” ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰(์ดˆ๋‹น ์ž‘์—… ์ˆ˜)๊ณผ ์“ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ ์†๋„ ๋ชจ๋‘ ๊ฐœ์„ ๋œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.
  • ๋˜ํ•œ ๊ณ ๋ฐ€๋„ ์Šคํ† ๋ฆฌ์ง€๋Š” ๋น„ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ ์ต์Šคํ”„๋ ˆ์Šค(NVMe) SSD์™€ ๊ฐ™์€ ํ•˜์ด์—”๋“œ SSD๋ฅผ ์ง€์›ํ•˜๊ณ  ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•˜๋“œ์›จ์–ด ์‚ฌ์–‘์€ ๋…ธ๋“œ๋‹น ๋ฉ”๋ชจ๋ฆฌ ๋Œ€ ๋ฐ์ดํ„ฐ ๋น„์œจ์„ 10%์—์„œ 1%๋กœ ๋‚ฎ์ท„์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ณ ๊ฐ์€ ๊ธฐ์กด ์ธํ”„๋ผ๋ฅผ ์‚ฌ์šฉํ•ด ์ตœ๋Œ€ 10๋ฐฐ ๋” ํ™•์žฅํ•˜๊ฑฐ๋‚˜ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ ์ˆ˜๋ฅผ ์ตœ๋Œ€ 10๋ฐฐ๊นŒ์ง€ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณ ๊ฐ์€ Couchbase ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์—๋””์…˜ ๋ฐฐํฌ ์‹œ ์ƒ๋‹นํ•œ ๋น„์šฉ ์ ˆ๊ฐ ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šด์˜ ๋ถ„์„์˜ ๋ฐœ์ „

Tableau๋ฅผ ํ†ตํ•œ JSON ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” Couchbase๋ฅผ ํ†ตํ•ด ๊ณ ๊ฐ์€ ์„ ๋„์ ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ์ธํ…”๋ฆฌ์ „์Šค ๋„๊ตฌ์ธ Tableau๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JSON ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋“œ๋ผ์ด๋ฒ„๋Š” ํ™œ์„ฑ Couchbase ๋ฐ์ดํ„ฐ๋ฅผ Tableau ์ง€์› ๊ด€๊ณ„ํ˜• ๊ตฌ์กฐ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉฐ, ์—ฌ๊ธฐ์—๋Š” JSON ๊ตฌ์กฐ์—์„œ ๋ฐ์ดํ„ฐ ์œ ํ˜• ๋ฐ ์™ธ๋ž˜ ํ‚ค ๊ด€๊ณ„ ๋ณด๊ฐ„์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด์ œ Tableau ์‚ฌ์šฉ์ž๋Š” JSON ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ๋“œํ˜น ๋ณด๊ณ ์„œ, ๋Œ€์‹œ๋ณด๋“œ ๋ฐ ๋Œ€ํ™”ํ˜• ๋น„์ฃผ์–ผ๋ฆฌ์ œ์ด์…˜์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Tableau ์ปค๋„ฅํ„ฐ๋Š” SDK ๋‹ค์šด๋กœ๋“œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ํด๋ผ์šฐ๋“œ ๋ฐ์ดํ„ฐ ์›๋ณธ ์ด์ œ ์นด์šฐ์น˜๋ฒ ์ด์Šค ์• ๋„๋ฆฌํ‹ฑ์Šค ์„œ๋น„์Šค์—์„œ ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€์™€ ์• ์ € ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ์˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ ๋Œ€์ƒ์— ์ง์ ‘ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฒฐํ•จ์„ฑ ํ–ฅ์ƒ ๋ถ„์„ ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ์— ๊ณ ๊ฐ€์šฉ์„ฑ์ด ํ™œ์„ฑํ™”๋˜์–ด ๋…ธ๋“œ ์žฅ์•  ํ›„์—๋„ ์•ˆ์ •์ ์ด๊ณ  ๋‚ด๊ฒฐํ•จ์„ฑ ์žˆ๋Š” ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค์™€ ์‹ค์‹œ๊ฐ„ ๋ณต๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ARM v8 ํ”„๋กœ์„ธ์„œ ์ง€์›

Apple์˜ M1 ๋ฐ AWS Graviton๊ณผ ๊ฐ™์€ ARM ํ”„๋กœ์„ธ์„œ๋Š” ๊ณ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์ „๋ ฅ ์†Œ๋น„๊ฐ€ ์ ์–ด ์šด์˜ ๋น„์šฉ์„ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ ๋งŒ์œผ๋กœ๋„ Couchbase Server์˜ ARM ์ง€์›์€ ํญ๋„“๊ฒŒ ๋งค๋ ฅ์ ์ž…๋‹ˆ๋‹ค.

์ด์ œ ๊ฐœ๋ฐœ์ž๋Š” ์ƒˆ๋กœ์šด Apple ํ•˜๋“œ์›จ์–ด์—์„œ Linux ์ปจํ…Œ์ด๋„ˆ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•˜๊ณ  ์ด๋Ÿฌํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ARM ๊ธฐ๋ฐ˜ ํด๋ผ์šฐ๋“œ ์ธ์Šคํ„ด์Šค์— ์ž์‹  ์žˆ๊ฒŒ ๋ฐฐํฌํ•˜์—ฌ ์ตœ์ € ๋น„์šฉ์œผ๋กœ ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ๊ฐ€ ๋งŽ์€ ์›Œํฌ๋กœ๋“œ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•œ ๋‚ด๋ถ€ ํ…Œ์ŠคํŠธ์—์„œ Couchbase Server 7.1์€ ARM ๊ธฐ๋ฐ˜ ์ธ์Šคํ„ด์Šค์—์„œ ์‹คํ–‰ํ•  ๋•Œ ์ฒ˜๋ฆฌ๋Ÿ‰์€ ์•ฝ 10%, ์ง€์—ฐ ์‹œ๊ฐ„์€ 65%, ๋น„์šฉ์€ 25% ๋” ๋‚ฎ์€ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

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

๋˜ํ•œ ๊ธ€๋กœ๋ฒŒ ๋ณด์กฐ ์ธ๋ฑ์Šค(GSI)๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋œ ์‚ฌ์šฉํ•˜๊ณ  ๊ฐ ์ธ๋ฑ์Šค์— ๋” ์ ์€ ์ˆ˜์˜ ๋…ธ๋“œ๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ ์ธํ”„๋ผ ๊ตฌ์„ฑ ์š”๊ตฌ ์‚ฌํ•ญ๊ณผ ๋น„์šฉ์„ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ย 

์ต์ˆ™ํ•œ DBMS ๊ธฐ๋Šฅ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜ ๊ฐœ๋ฐœ์ž๋Š” JavaScript ๊ธฐ๋ฐ˜ ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜(UDF)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ์ฟผ๋ฆฌ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Ÿฌํ•œ UDF๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํŠน์ • ๊ธฐ๋Šฅ์„ ๋ถ„๋ฆฌํ•˜๊ณ  ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๋ณด๋‹ค ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ์ ‘๊ทผ์„ฑ๊ณผ ์„ฑ๋Šฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Couchbase UDF๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” JavaScript ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ง€์ • ์ž‘์—…์„ ๊ตฌ์„ฑํ•˜๊ณ  ํ˜„์žฌ ์ฟผ๋ฆฌ ํ•จ์ˆ˜๋กœ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ RDBMS์— ์ €์žฅ๋œ ํ”„๋กœ์‹œ์ €์™€ ํ•จ์ˆ˜๋ฅผ Couchbase๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๋Š” ํŠธ๋žœ์žญ์…˜ ์ œ์–ด๋ฅผ ์ œ๊ณตํ•˜๊ณ  SQL++ ํ•จ์ˆ˜ ๋ฐ ๊ธฐํƒ€ UDF์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์กด์˜ ๋ชจ๋“  SQL++ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ Couchbase ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Couchbase ์„œ๋ฒ„ ์ธก ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

UDF๋Š” ์„œ๋กœ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์žฌ๊ท€์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ„์„ ์„œ๋น„์Šค์˜ ๊ฐœ๋ฐœ์ž ๋ฏธ๋ฆฌ ๋ณด๊ธฐ์—์„œ๋Š” Python๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ ์ด๋ฒคํŠธ ๋กœ๊ทธ๋ฅผ JSON ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ ์ด์ œ JSON ๋ฐ์ดํ„ฐ๋กœ ์ œ๊ณต๋˜๋Š” ์‹œ์Šคํ…œ ์ด๋ฒคํŠธ ๋กœ๊ทธ์—๋Š” ์ด๋ฒคํŠธ ID์™€ ํƒ€์ž„์Šคํƒฌํ”„๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ๋กœ๊ทธ๋Š” ๋…ธ๋“œ ๊ฐ„์— ์ž๋™์œผ๋กœ ๋ณต์ œ๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ REST ๋˜๋Š” ์ŠคํŠธ๋ฆฌ๋ฐ API์—์„œ 10,000๊ฐœ์˜ ์ด๋ฒคํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—… ์„œ๋น„์Šค ๊ฐœ์„  ์‚ฌํ•ญ

  • ๋ฐฑ์—… ์„œ๋น„์Šค๋Š” GCP์— ๋Œ€ํ•œ ๋ฐฑ์—…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค(Azure ๋ฐฑ์—…์€ '๊ฐœ๋ฐœ์ž ๋ฏธ๋ฆฌ ๋ณด๊ธฐ' ๊ธฐ๋Šฅ์œผ๋กœ๋„ ๋„์ž…๋จ).
  • ๋ฐฑ์—… ์„œ๋น„์Šค๋Š” ๋ณต์› ๋ช…๋ น์— '๋‹ค์‹œ ์‹œ์ž‘' ์˜ต์…˜์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐฑ์—… ๊ด€๋ฆฌ์ž๋Š” "๊ฐœ๋ฐœ์ž ๋ฏธ๋ฆฌ ๋ณด๊ธฐ"์—์„œ ๋ฐฑ์—…์˜ AES256 ์•”ํ˜ธํ™”๋ฅผ ๋„์ž…ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์„ผํ„ฐ ๊ฐ„ ๋ณต์ œ(XDCR)์˜ ์ฒดํฌํฌ์ธํŠธ XDCR์˜ ์ฆ๋ถ„ ์ฒดํฌํฌ์ธํŠธ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ํ† ํด๋กœ์ง€ ๋ฐ ๋ฐ์ดํ„ฐ ์œ„์น˜๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ๋ณต์ œ๋ฅผ ๋”์šฑ ์•ˆ์ •์ ์ด๊ณ , ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฝ๊ณ , ๋ณต์›๋ ฅ์„ ๋†’์—ฌ์ค๋‹ˆ๋‹ค.

  • ๊ณ ๊ฐ€์šฉ์„ฑ ๋™์‹œ ์žฅ์•  ์‹œ ์—ฌ๋Ÿฌ ๋…ธ๋“œ์˜ ์ž๋™ ํŽ˜์ผ์˜ค๋ฒ„๋กœ ํด๋ผ์šฐ๋“œ ์˜์—ญ์ด ์ •์ „์˜ ์˜ํ–ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์—์„œ ์•ˆ์ •์„ฑ ํ–ฅ์ƒย 

  • ์ธ๋ฑ์Šค ์„œ๋น„์Šค ๋ฐ ๋ถ„์„ ์„œ๋น„์Šค๋Š” ๋ชจ๋‘ ์ž๋™ ์žฅ์•  ์กฐ์น˜๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค ์žฅ์• ๋กœ ์ธํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋‹ค์šดํƒ€์ž„์€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์„œ๋ฒ„ ๊ทธ๋ฃน ํด๋Ÿฌ์Šคํ„ฐ์— ๋™์ผํ•œ ์ˆ˜์˜ ๋…ธ๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์•„ ์žฅ์•  ์กฐ์น˜ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํŠน๋ณ„ํ•œ ๊ณ ๋ ค๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ "๋ถˆ๊ท ๋“ฑ ์„œ๋ฒ„ ๊ทธ๋ฃน"์— ๋Œ€ํ•ด HA๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

ํด๋ผ์šฐ๋“œ ์ง€์› ๋ณด์•ˆ

์—ฌ๋Ÿฌ ์ธ์ฆ ๊ธฐ๊ด€ ๊ณต๊ฐœ ํ‚ค ์ธํ”„๋ผ(PKI) ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ์ธ์ฆ ๊ธฐ๊ด€ ์ฒด์ธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํด๋Ÿฌ์Šคํ„ฐ ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ†ต์‹ ๊ณผ ์ธ์ฆ๋œ ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ ์ธ์ฆ์„œ ๊ฐ„์˜ ์ธ์ฆ์„œ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‹ค์šดํƒ€์ž„ ์—†์ด ์ธ์ฆ ๊ธฐ๊ด€์„ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•”ํ˜ธํ™”๋œ TLS ๊ฐœ์ธ ํ‚ค ๋ฐ ํ‚ค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ํ†ตํ•ฉ TLS ๊ฐœ์ธ ํ‚ค ์ž์ฒด๋Š” ์ €์žฅํ•  ๋•Œ ์•”ํ˜ธํ™”๋˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ์— ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋น„๋ฐ€ ๊ด€๋ฆฌ, REST ํ˜ธ์ถœ ๋˜๋Š” ๊ณ ๊ฐ ์Šคํฌ๋ฆฝํŠธ์—์„œ ์ œ๊ณตํ•œ ์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋…๋ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ๋˜ํ•œ ์ƒˆ๋กœ์šด TLS ๊ฐœ์ธ ํ‚ค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ๋„์ž…ํ•ฉ๋‹ˆ๋‹ค. ์ด ์‹œ์Šคํ…œ์€ ์•”ํ˜ธ ๊ตฌ๋ฌธ ๊ธฐ๋ฐ˜์ด์ง€๋งŒ ํ‚ค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ์•”ํ˜ธ ๊ตฌ๋ฌธ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ธํ„ฐํŽ˜์ด์Šค์—๋Š” CyberArk ๋ฐ ํ•ด์‹œ์ฝ”ํ”„ ๋ณผํŠธ, ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž ๋ณผํŠธ, ์ธํ”„๋ผ ํ‚ค ์ €์žฅ์†Œ์™€ ๊ฐ™์€ ๋น„๋ฐ€ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ๊ณผ TPM(์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ ๋ชจ๋“ˆ) ๋ฐ HSM(ํ•˜๋“œ์›จ์–ด ๋ณด์•ˆ ๋ชจ๋“ˆ)๊ณผ ๊ฐ™์€ ํ•˜๋“œ์›จ์–ด ๊ด€๋ฆฌ ์†”๋ฃจ์…˜์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ย 

ํ™•์žฅ๋œ ์ธ์ฆ์„œ ํ˜•์‹ ์นด์šฐ์น˜๋ฒ ์ด์Šค๋Š” ๊ณต๊ฐœ ํ‚ค ์•”ํ˜ธํ™” ํ‘œ์ค€ #1(PKCS#1)์„ ๋„˜์–ด ์•”ํ˜ธํ™” ๋ฐ ๋น„์•”ํ˜ธํ™” ๊ฐœ์ธ ํ‚ค๋ฅผ ์ง€์›ํ•˜๋Š” PKCS#8๊นŒ์ง€ ์ง€์›์„ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์—ฌ๋Ÿฌ ์ธ์ฆ์„œ๋ฅผ ์œ„ํ•œ ์ปจํ…Œ์ด๋„ˆ์ธ ๊ฐœ์ธ ์ •๋ณด ๊ตํ™˜ ๊ตฌ๋ฌธ ํ‘œ์ค€์„ ์ง€์›ํ•˜๋Š” PKCS#12์— ๋Œ€ํ•œ ๋ฒ ํƒ€ ์ง€์›๋„ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ ์ „์ฒด์— ๋Œ€ํ•œ TLS v1.3 ์ง€์› ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ์— TLS v1.3์ด ์ง€์›๋˜์–ด ๋” ์•ˆ์ „ํ•œ ์•”ํ˜ธ์™€ ๋” ๋น ๋ฅธ ์•”ํ˜ธํ™” ๋ฐ ์•”ํ˜ธ ํ•ด๋… ์†๋„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์—ญํ•  ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ์ œ์–ด

์„œ๋ฒ„-๋™๊ธฐํ™” ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์œ„ํ•œ 5๊ฐ€์ง€ RBAC ์—ญํ• 

์นด์šฐ์น˜๋ฒ ์ด์Šค ์„œ๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์™€ ๋™๊ธฐํ™” ๊ฒŒ์ดํŠธ์›จ์ด ๊ฐ„์˜ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ 5๊ฐ€์ง€ ์ƒˆ๋กœ์šด ์—ญํ•  ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ์ œ์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์—ญํ• ์—๋Š” ์•„ํ‚คํ…ํŠธ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ๊ธฐ ์ „์šฉ, ๋ณต์ œ๊ธฐ ๋ฐ DevOps๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์—ญํ• ์„ ํ†ตํ•ด ๊ณ ๊ฐ์€ Couchbase Lite ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๋ฐ ๋™๊ธฐํ™”๋ฅผ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ย 

์ด๋ฒคํŠธ ์„œ๋น„์Šค์šฉ RBAC

์ด๋ฒคํŠธ ์„œ๋น„์Šค์šฉ์œผ๋กœ ์ƒ์„ฑ๋œ ์—ญํ•  ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ์ œ์–ด๋Š” ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๋ฐ ์กฐ์ž‘์„ ๋ณด๋‹ค ํšจ๊ณผ์ ์œผ๋กœ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ จ ๋ฆฌ์†Œ์Šค

๋†€๋ผ์šด ๊ณ ๊ฐ ๊ฒฝํ—˜์„ ๋งŒ๋“ค ์ค€๋น„๊ฐ€ ๋˜์…จ๋‚˜์š”?

Couchbase๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฐ€์žฅ ์‰ฝ๊ณ  ๋น ๋ฅธ ๋ฐฉ๋ฒ•