Cassandra ๋ฐฑ์—… ๊ฐœ์š”

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

Apigee Hybrid์˜ ์ผ๋ฐ˜์ ์ธ ์„ค์น˜๋Š” ๋‹ค์Œ ๊ตฌ์„ฑ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  • MART(๊ด€๋ฆฌ์ž ์„œ๋น„์Šค)
  • ์ปจํŠธ๋กค๋Ÿฌ ๋ฐ ๊ฐ์‹œ์ž(Kubernetes ๊ฐ์ฒด ๊ด€๋ฆฌ)
  • Istio(์ธ๊ทธ๋ ˆ์Šค ๊ด€๋ฆฌ)
  • ๋Ÿฐํƒ€์ž„, ๋™๊ธฐํ™”, UDCA(ํ™˜๊ฒฝ๋‹น ํ•˜๋‚˜)
  • ์›๊ฒฉ ๋ถ„์„(๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋กœ๊น…)
  • ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž(์ธ์ฆ์„œ ๊ด€๋ฆฌ)
  • Datastore(Cassandra ๋ฐ Redis ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)

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

Cassandra๋ฅผ ๋ฐฑ์—…ํ•˜๋Š” ์ด์œ 

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

Cassandra ๋ฐฑ์—…์— ๋Œ€ํ•ด ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ

Cassandra๋Š” ๊ฐ ๋ฆฌ์ „ ๋˜๋Š” ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ๋ฐ์ดํ„ฐ ๋ณต์‚ฌ๋ณธ์ด ์ตœ์†Œ 3๊ฐœ ์ด์ƒ ์žˆ๋„๋ก ๊ตฌ์„ฑ๋œ ๋ณต์ œ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. Cassandra๋Š” ์ŠคํŠธ๋ฆฌ๋ฐ ๋ณต์ œ ๋ฐ ์ฝ๊ธฐ ๋ณต๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ์‹œ์ ์— ๊ฐ ๋ฆฌ์ „ ๋˜๋Š” ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ๋ฐ์ดํ„ฐ ๋ณต์ œ๋ณธ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ์—์„œ Cassandra ๋ฐฑ์—…์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ ์„ค์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์น˜๋ช…์ ์ธ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋œ ๊ฒฝ์šฐ์— ๋Œ€๋น„ํ•˜์—ฌ Cassandra ๋ฐฑ์—…์„ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. Cassandra ๋ฐฑ์—…์€ ์žฌํ•ด ๋ณต๊ตฌ ์‹œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ์‹ค์ˆ˜๋กœ ์‚ญ์ œํ•˜์—ฌ ์†์‹ค๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์›ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋ฐฑ์—…์€ overrides.yaml ํŒŒ์ผ์— ์„ค์ •๋œ ์ผ์ •์— ๋”ฐ๋ผ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ฐฑ์—… ์ผ์ •์ด ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํด๋Ÿฌ์Šคํ„ฐ์— ์ ์šฉ๋˜๋ฉด ์ผ์ •์— ๋”ฐ๋ผ Kubernetes ๋ฐฑ์—… ์ž‘์—…์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐ Cassandra ๋…ธ๋“œ์—์„œ ๋…ธ๋“œ์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ , ๋ฐ์ดํ„ฐ์˜ ๋ณด๊ด€ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ , Cloud Storage ๋˜๋Š” ์›๊ฒฉ ์„œ๋ฒ„์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๋ณด๊ด€ ํŒŒ์ผ์„ ๋ณด๋‚ด๋Š” ๋ฐฑ์—… ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—…๋˜๋Š” ํ•ญ๋ชฉ

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์˜ˆ์•ฝ ๋ฐฑ์—…์€ ๋ฐฑ์—… ์‹œ Apigee์˜ Cassandra์— ์ €์žฅ๋œ ์ง€์† ๋Ÿฐํƒ€์ž„ ๋ฐ์ดํ„ฐ์˜ ์ „์ฒด ๋ฐฑ์—…์ž…๋‹ˆ๋‹ค. ๋ฐฑ์—… ์‹œ๊ฐ„ ์ดํ›„์—๋Š” ๋ฐฑ์—…์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ์•ฝ ๋ฐฑ์—…์€ ๋‹ค์Œ ํ•ญ๋ชฉ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž ์Šคํ‚ค๋งˆ๋ฅผ ํฌํ•จํ•œ Cassandra ์Šคํ‚ค๋งˆ(Apigee ํ‚ค์ŠคํŽ˜์ด์Šค ์ •์˜)
  • ํด๋Ÿฌ์Šคํ„ฐ์˜ Cassandra ๋…ธ๋“œ๋‹น Cassandra ํŒŒํ‹ฐ์…˜ ํ† ํฐ ์ •๋ณด์ž…๋‹ˆ๋‹ค.
  • Cassandra ๋ฐ์ดํ„ฐ์˜ ์Šค๋ƒ…์ƒท

๋ฐฑ์—… ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ์œ„์น˜

๋ฐฑ์—… ๋ฐ์ดํ„ฐ ์œ„์น˜๋Š” ๋ฐฑ์—… ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. Apigee Hybrid์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฑ์—… ๋ฐฉ๋ฒ•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • Cloud Storage์—์„œ ๋ฐฑ์—…: ๋ฐฑ์—…์€ Google Cloud ํ”„๋กœ์ ํŠธ์— ๊ตฌ์„ฑ๋œ Cloud Storage ๋ฒ„ํ‚ท์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
  • ์›๊ฒฉ ์„œ๋ฒ„์—์„œ ๋ฐฑ์—…: ๋ฐฑ์—…์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง€์ •ํ•œ ์›๊ฒฉ ์„œ๋ฒ„์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋ณดํ˜ธ ๋ฐฉ๋ฒ•

๋ฐฑ์—…์— Cloud Storage๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐฑ์—… ๋ฐ์ดํ„ฐ๊ฐ€ ์•”ํ˜ธํ™”๋ฉ๋‹ˆ๋‹ค. ๋ฐฑ์—…์ด Cloud Storage์— ์—†์œผ๋ฉด ๋ฐฑ์—… ๋ฐ์ดํ„ฐ๋Š” ์›๊ฒฉ ์„œ๋ฒ„๋กœ ์ „์†ก๋˜๋Š” ์ค‘์— ์•”ํ˜ธํ™”๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ „์†ก ํ›„์—๋Š” ๋ฐฑ์—… ๋ฐ์ดํ„ฐ๊ฐ€ ์›๊ฒฉ ์„œ๋ฒ„์—์„œ ์•”ํ˜ธํ™”๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ฐฑ์—…์„ cron ์ž‘์—…์œผ๋กœ ์˜ˆ์•ฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. cronjob์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ตฌ์„ฑํ•œ overrides.yaml ํŒŒ์ผ์—์„œ ๊ตฌ์„ฑ์„ ์ฝ์Šต๋‹ˆ๋‹ค. ๋ณต๊ตฌ ํ”„๋กœ์„ธ์Šค ์ค‘์— ๋‹ค์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก overrides.yaml ํŒŒ์ผ์˜ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์„น์…˜์—์„œ๋Š” Cloud Storage ๋ฐ ์›๊ฒฉ ์„œ๋ฒ„์—์„œ ๋ฐฑ์—…์„ ์˜ˆ์•ฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.