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

 

์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” ์ž‘์—…์„ ์ˆ˜๋™์œผ๋กœ ์‹คํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด๋ง ์ž‘์—…์„ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

 

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

  • ํŒŒ์ดํ”„๋ผ์ธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์˜ ํ•ต์‹ฌ ๊ฐœ๋… ์ดํ•ด
  • AWS์—์„œ ํŒŒ์ดํ”„๋ผ์ธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ์˜ต์…˜ ๊ฒ€ํ† 

 


1. ํŒŒ์ดํ”„๋ผ์ธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์˜ ํ•ต์‹ฌ ๊ฐœ๋… ์ดํ•ด

 

๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ์–ด๋–ป๊ฒŒ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ•˜๋‚˜์š”?

๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์€ ํŠน์ • ์ˆœ์„œ๋กœ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ž‘์—…์˜ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค. 

์ผ๋ถ€ ์ž‘์—…์€ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ๋ฐ˜๋ฉด ๋‹ค๋ฅธ ์ž‘์—…์€ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

์ด๋Ÿฌํ•œ ์ž‘์—…์˜ ์ˆœ์„œ๋ฅผ ์›Œํฌํ”Œ๋กœ์šฐ๋กœ ์ฐธ์กฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

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

 

 

์œ ๋ฐฉํ–ฅ ์•„ํฌ๋ฆด ๊ทธ๋ž˜ํ”„๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ DAG ๋ผ๊ณ  ํ•˜๋Š” ๋ฐฉํ–ฅ์„ฑ ๋น„์ˆœํ™˜ ๊ทธ๋ž˜ํ”„ ๋ผ๋Š” ์šฉ์–ด๋ฅผ ๋“ค์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .

DAG๋Š” ๋…ธ๋“œ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ ๋…ธ๋“œ ๊ฐ„์˜ ํ๋ฆ„์€ ํ•ญ์ƒ ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ๋ฐœ์ƒํ•˜๊ณ  ์ด์ „ ๋…ธ๋“œ๋กœ ๋Œ์•„๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๋น„์ˆœํ™˜์€ ์ฃผ๊ธฐ๊ฐ€ ์•„๋‹˜). ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ DAG๋กœ ์ •์˜ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ทœ์น™์€ ์—†์ง€๋งŒ ํŠน์ • ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„๊ตฌ์—์„œ๋Š” ์ด๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

 

์œ ๋„ ๋น„์ˆœํ™˜ ๊ทธ๋ž˜ํ”„์˜ ๊ฐ„๋‹จํ•œ ์˜ˆ

๋”๋ณด๊ธฐ

์ด DAG๊ฐ€ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

  • ์ด๋ฒคํŠธ A๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ด๋ฒคํŠธ B์™€ ์ด๋ฒคํŠธ C๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฒคํŠธ B๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ด๋ฒคํŠธ F๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฒคํŠธ B์™€ C๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ด๋ฒคํŠธ D๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฒคํŠธ D๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ด๋ฒคํŠธ E๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

์•ž์—์„œ ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด๋ฒคํŠธ F๋Š” DAG ์ •์˜์˜ ๋น„์ˆœํ™˜ ๋ถ€๋ถ„์„ ์ค‘๋‹จํ•˜๋ฏ€๋กœ ์ด๋ฒคํŠธ A, B ๋˜๋Š” C๋กœ ๋ฃจํ”„๋ฐฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

 

 

๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

ํŒŒ์ดํ”„๋ผ์ธ์—๋Š” ์ผ์ • ๊ธฐ๋ฐ˜ ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ํŠธ๋ฆฌ๊ฑฐ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ „ํ†ต์ ์œผ๋กœ ํŒŒ์ดํ”„๋ผ์ธ์€๋ชจ๋‘ ์ผ์ •์— ๋”ฐ๋ผ ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ํ•˜๋ฃจ์— ํ•œ ๋ฒˆ ๋˜๋Š” 1์‹œ๊ฐ„๋งˆ๋‹ค ๋˜๋Š” 15๋ถ„์— ํ•œ ๋ฒˆ์”ฉ ์‹ค์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŠนํžˆ ๋ฐฐ์น˜ ์ง€ํ–ฅ ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊ฒฝ์šฐ ์—ฌ์ „ํžˆ ์ผ๋ฐ˜์ ์ธ ์ ‘๊ทผ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด ์˜ˆ์ œ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๋‘ ๋ฒˆ์งธ ํŒŒ์ดํ”„๋ผ์ธ์€ ํ•˜๋ฃจ ํ•œ ๋ฒˆ ์‹คํ–‰๋˜์–ด ํ•˜๋ฃจ ์ข…์ผ ์ˆ˜์‹ ๋˜๋Š” ํŒŒํŠธ๋„ˆ ํŒŒ์ผ์— ๊ฐ€์ž…ํ•˜๊ณ  ํ’๋ถ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์˜ˆ์•ฝ๋œ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์˜ˆ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

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

 

์•ž์„œ ์„ค๋ช…ํ•œ ํŒŒ์ดํ”„๋ผ์ธ ์˜ˆ์—์„œ ์ฒซ ๋ฒˆ์งธ ํŒŒ์ดํ”„๋ผ์ธ์€ ํŒŒํŠธ๋„ˆ๊ฐ€ ์ƒˆ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ–ˆ์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํŒŒ์ดํ”„๋ผ์ธ์ž…๋‹ˆ๋‹ค.AWS ๋‚ด์—์„œ๋Š” ํŠน์ • Amazon S3 ๋ฒ„ํ‚ท์— ๊ธฐ๋ก๋˜๋Š” ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๋ฒคํŠธ(ํŒŒ์ดํ”„๋ผ์ธ์ด ๋  ์ˆ˜ ์žˆ์Œ)๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์ž‘์—… ์ƒ์„ฑ์„ ๊ฐ•๋ ฅํ•˜๊ฒŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

 

๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์„ ํŒŒ์ดํ”„๋ผ์ธ ํŠธ๋ฆฌ๊ฑฐ๋กœ ์‚ฌ์šฉ

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

 

ex) ํŒŒํŠธ๋„ˆ๋กœ๋ถ€ํ„ฐ ํŒŒ์ผ์„ ์ˆ˜์‹ ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ

โ‘  ํŒŒํŠธ๋„ˆ๊ฐ€ ๋งค์‹œ๊ฐ„ ์ˆ˜๋ฐฑ ๊ฐœ์˜ ์ž‘์€ CSV ์ผ๊ด„ ์ „์†ก 

โ‘ก ์ผ๊ด„์ ์œผ๋กœ ๋ชจ๋“  CSV ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋‹จ์ผ Parquet ํŒŒ์ผ๋กœ ๋ณ€ํ™˜

โ‘ข ๊ฐ ํŒŒ์ผ์˜ ๋งˆ์ง€๋ง‰์— ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ ๋ณด๋‚ด๋„๋ก ์ง€์‹œ

    (๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์—๋Š” ์ „์†ก๋œ ํŒŒ์ผ์˜ ์ด๋ฆ„, ํฌ๊ธฐ, ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ ๋‚˜์—ด) 

โ‘ฃ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŒŒ์ผ์ด ๋ฒ„ํ‚ท์— ๊ธฐ๋ก๋  ๋•Œ๋งŒ ํŠธ๋ฆฌ๊ฑฐ๋˜๋„๋ก S3 ์ด๋ฒคํŠธ ์•Œ๋ฆผ ๊ตฌ์„ฑ

โ‘ค ํŒŒ์ผ์ด ํ™•์ธ๋˜๋ฉด ETL(์ถ”์ถœ,๋ณ€ํ™˜,๋กœ๋“œ) ์ž‘์—…์„ ์‹คํ–‰ํ•˜์—ฌ ๋ชจ๋“  ํŒŒ์ผ์„ ์ฝ๊ณ  Parquet ํ˜•์‹์œผ๋กœ ํŒŒ์ผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

 

ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๋ฐœ์ƒํ•œ ๋‹จ๊ณ„์˜ ์žฅ์• ์— ์–ด๋–ป๊ฒŒ ๋Œ€์ฒ˜ํ•˜๊ณ  ์žˆ๋‚˜์š”?

์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์˜ ์ผํ™˜์œผ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜๋ ค๋ฉด ์‹คํŒจ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 

๊ทธ ์ผํ™˜์œผ๋กœ ํŒŒ์ดํ”„๋ผ์ธ์˜ ๊ฐ ๋‹จ๊ณ„์™€ ๊ด€๋ จ๋œ ๋กœ๊ทธ ํŒŒ์ผ์— ์‰ฝ๊ฒŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. 

 

๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ์‹คํŒจ์˜ ์ผ๋ฐ˜์ ์ธ ์ด์œ 

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

 

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

 

๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ์‹คํŒจ์˜ ์ผ๋ฐ˜์ ์ธ ์ด์œ 

ํŒŒ์ดํ”„๋ผ์ธ์„ ์„ค๊ณ„ํ•  ๋•Œ๋Š” ์‹คํŒจํ•œ ๋‹จ๊ณ„์— ๋Œ€ํ•œ ์žฌ์‹œ๋„ ์ „๋žต์˜ ๊ตฌํ˜„์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์žฌ์‹œ๋„ ๋ฐฑ์˜คํ”„ ๋ ˆ์ดํŠธ(์ง€์ˆ˜ ๋ฐฑ์˜คํ”„๋ผ๊ณ ๋„ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค)์— ์˜ํ•ด ์žฌ์‹œ๋„ ๊ฐ„๊ฒฉ์€ ์žฌ์‹œ๋„๋งˆ๋‹ค ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด AWS Step Function์„ ์‚ฌ์šฉํ•˜๋ฉด ์žฌ์‹œ๋„ ๊ฐ„์˜ ์ง€์—ฐ์— ํ•ด๋‹น ๊ฐ’์„ ๊ณฑํ•˜๋Š” BackOffRate ๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌ์‹œ๋„ ๊ฐ„๊ฒฉ์„ 10์ดˆ, ๋ฐฑ์˜คํ”„ ๋ ˆ์ดํŠธ๋ฅผ 1.5๋กœ ์ง€์ •ํ•˜๋ฉด ์Šคํ… ๊ธฐ๋Šฅ์€ 15์ดˆ(10์ดˆx1.5), 22.5์ดˆ(15์ดˆx1.5)์˜ ์žฌ์‹œ๋„๋ฅผ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

 

 

๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์˜ ํ•ต์‹ฌ ๊ฐœ๋… ์ค‘ ์ผ๋ถ€๋ฅผ ๊ฒ€ํ† ํ–ˆ์œผ๋ฏ€๋กœ,

์ด์ œ AWS์—์„œ ํŒŒ์ดํ”„๋ผ์ธ์„ ๋งŒ๋“ค๊ณ  ์กฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํˆด์„ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 


2. AWS์—์„œ ํŒŒ์ดํ”„๋ผ์ธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ์˜ต์…˜ ๊ฒ€ํ† 

AWS๋Š” ์†”๋ฃจ์…˜์„ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ดํ”„๋ผ์ธ ์กฐ์ •๊ณผ ๊ด€๋ จํ•˜์—ฌ AWS๋Š” AWS Data Pipeline ๋ฐ AWS Step Function์„ ์‚ฌ์šฉํ•˜๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ์„œ๋ฒ„๋ฆฌ์Šค ์กฐ์ • ์—”์ง„, Apache Airflow๋ฅผ ์œ„ํ•œ Amazon Managed Workflow(MWAA)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ด€๋ฆฌ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ, AWS Glue Workflow๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค๋ณ„ ์กฐ์ • ์—”์ง„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋”ฐ๋ผ ์ด๋Ÿฌํ•œ ๊ฐ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์žฅ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์˜์‚ฌ๊ฒฐ์ •์„ ๋‚ด๋ฆด ๋•Œ๋Š” ๊ด€๋ฆฌ ์ž‘์—…์˜ ์ˆ˜์ค€, ๋Œ€์ƒ ETL ์—”์ง„๊ณผ์˜ ์šฉ์ดํ•œ ํ†ตํ•ฉ, ๋กœ๊น…, ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜, ๋น„์šฉ ๋ฐ ํ”Œ๋žซํผ์˜ ๋…๋ฆฝ์„ฑ ๋“ฑ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์š”์†Œ๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๋ฐ์ดํ„ฐ ์†Œ์Šค ๊ฐ„ ETL ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ AWS Data Pipeline

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

 

Data Pipeline์—์„œ๋Š” ๋‹ค์Œ AWS ๋ฐ์ดํ„ฐ ์„œ๋น„์Šค๋ฅผ ์†Œ์Šค ๋ฐ ๋Œ€์ƒ์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. 

์ด ์™ธ์—๋„ Data Pipeline์€ ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ฐ™์€ ๋‹ค๋ฅธ JDBC ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ์ฝ๊ณ  ์“ธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์•„๋งˆ์กด ๋‹ค์ด๋„ˆ๋ชจDB
  • Amazon ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ
  • ์•„๋งˆ์กด ๋ ˆ๋“œ์‹œํ”„ํŠธ
  • ์•„๋งˆ์กด S3

 

๋‹ค์Œ ์ปดํ“จํŒ… ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์•„๋งˆ์กด EC2
  • ์•„๋งˆ์กด EMR
  • ์˜จํ”„๋ ˆ๋ฏธ์Šค ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค(Java ๊ธฐ๋ฐ˜ Data Pipeline ํƒœ์Šคํฌ ๋Ÿฌ๋„ˆ ์†Œํ”„ํŠธ์›จ์–ด ์„ค์น˜)

์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ• ๋ฐ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์— ์ตœ์‹  AWS ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

 

AWS Glue ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ํ†ตํ•ด ๋ฆฌ์†Œ์Šค Glue ์†Œ์Šค ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜

AWS Glue ๊ตฌ์„ฑ ์š”์†Œ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ƒ์„ฑํ•˜๋Š” ์‚ฌ์šฉ ์‚ฌ๋ก€์˜ ๊ฒฝ์šฐ Glue ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Glue ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ๋‹นํžˆ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋งŽ์€ ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ๋Š” Hive ์ž‘์—…์„ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ SQS ๋Œ€๊ธฐ์—ด์— ํŒŒ์ผ์„ ์“ฐ๊ธฐ ์œ„ํ•ด EMR๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ AWS ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Glue ์›Œํฌํ”Œ๋กœ์šฐ๋Š” Glue ์ด์™ธ์˜ ์„œ๋น„์Šค์™€์˜ ํ†ตํ•ฉ์„ ์ง์ ‘ ์ง€์›ํ•˜์ง€ ์•Š์ง€๋งŒ, Boto3 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ AWS ์„œ๋น„์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” Glue Python Shell ์ž‘์—…์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค์™€ ์ง์ ‘ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ฒƒ๋งŒํผ ๊ธฐ๋Šฅ์ด ํ’๋ถ€ํ•˜๊ฑฐ๋‚˜ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ์— ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

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

 

Glue ์ž‘์—… ํ๋ฆ„ ํŠธ๋ฆฌ๊ฑฐ

Glue๋ฅผ ๋งŒ๋“ค ๋•Œ์›Œํฌํ”Œ๋กœ์—์„œ ์›Œํฌํ”Œ๋กœ๋ฅผ ์‹คํ–‰ํ•  ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

Glue ์ž‘์—… ํ๋ฆ„ ์‹คํ–‰์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. on-demand ๋กœ ์„ค์ •ํ•˜๋ฉด ์›Œํฌํ”Œ๋กœ๋Š” ์ฝ˜์†”์—์„œ ์ˆ˜๋™์œผ๋กœ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ Glue API ๋˜๋Š” CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘ํ•  ๋•Œ๋งŒ ์‹คํ–‰
  2. scheduled ์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์ž‘์—… ์‹คํ–‰ ๋นˆ๋„(์˜ˆ: ๋งค์‹œ๊ฐ„, ๋งค์ผ, ๋งค์›” ๋˜๋Š” ํŠน์ • ์š”์ผ(์˜ˆ: ์›”์š”์ผ~๊ธˆ์š”์ผ))๋ฅผ ์ง€์ •
  3. ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ํ•  ๋นˆ๋„๋ฅผ ์„ค์ •ํ•˜๋Š” cron ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ง€์ • ์ผ์ •์„ ์„ค์ • (cron ํ‘œํ˜„์‹์„ */30 8-16 * * 2-6 ์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์›”์š”์ผ๋ถ€ํ„ฐ ๊ธˆ์š”์ผ๊นŒ์ง€ ์˜ค์ „ 8์‹œ๋ถ€ํ„ฐ ์˜คํ›„ 4์‹œ 59๋ถ„๊นŒ์ง€ 30๋ถ„๋งˆ๋‹ค ์›Œํฌํ”Œ๋กœ๊ฐ€ ์‹คํ–‰)

 

Glue Workflows๋Š” ๋˜ํ•œ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Workflow๋Š” EventBridge ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ • S3 ๋ฒ„ํ‚ท ๋ฐ ์ ‘๋‘์‚ฌ์— ๋Œ€ํ•œ S3 PutObject ์ด๋ฒคํŠธ์™€ ๊ฐ™์€ ์ด๋ฒคํŠธ๋ฅผ Glue ์›Œํฌํ”Œ๋กœ๋กœ ๋ณด๋‚ด๋„๋ก Amazon EventBridge ๊ทœ์น™์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์›Œํฌํ”Œ๋กœ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ํŠน์ • ์ˆ˜์˜ ์ด๋ฒคํŠธ๊ฐ€ ์ˆ˜์‹ ๋œ ํ›„์—๋งŒ ์›Œํฌํ”Œ๋กœ๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ์ง€์ •ํ•˜๊ณ  ์„ ํƒ์ ์œผ๋กœ ํ•ด๋‹น ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ตœ๋Œ€ ์‹œ๊ฐ„์„ ์ง€์ •ํ•˜๋Š” ํŠธ๋ฆฌ๊ฑฐ ๊ธฐ์ค€์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์˜คํ”ˆ ์†Œ์Šค ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ์†”๋ฃจ์…˜์œผ๋กœ์„œ์˜ Apache Airflow

Apache Airflow ๋Š”์›๋ž˜ Airbnb์—์„œ ๊ฐœ๋ฐœ๋œ ์˜คํ”ˆ ์†Œ์Šค ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์›Œํฌํ”Œ๋กœ ์ž‘์„ฑ, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์˜ˆ์•ฝ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Airflow์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ผ๋ถ€ ๊ธฐ๋Šฅ์—๋Š” ์ƒํƒœ ์ €์žฅ ์ผ์ •, ํ’๋ถ€ํ•œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค, ๋กœ๊น…, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ฒฝ๊ณ ๋ฅผ ์œ„ํ•œ ํ•ต์‹ฌ ๊ธฐ๋Šฅ, ํŒŒ์ดํ”„๋ผ์ธ ์ž‘์„ฑ์— ๋Œ€ํ•œ ์ฝ”๋“œ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. Apache Airflow๋Š” ํŒŒ์ดํ”„๋ผ์ธ์„ ์ œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ ๊ธฐ๋ฐ˜(Python) ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

AWS ๋‚ด์—์„œ๋Š” MWAA(Amazon Managed Workflow for Apache Airflow)๋ผ๋Š” ๊ด€๋ฆฌ ๋ฒ„์ „์„ ์„œ๋น„์Šค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค๋Š” AWS์— ์˜ํ•ด ๊ธฐ๋ฐ˜ ์ธํ”„๋ผ๊ฐ€ ๊ด€๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์—์–ดํ”Œ๋กœ์šฐ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์™€ ์—์–ดํ”Œ๋กœ์šฐ ์ธํ”„๋ผ์˜ ์ง€์†์ ์ธ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค.

 

> Airflow ํŒŒ์ดํ”„๋ผ์ธ์„ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ช‡ ๊ฐ€์ง€ ํ•ต์‹ฌ ๊ฐœ๋…

  • ๋ฐฉํ–ฅ์„ฑ ๋น„์ˆœํ™˜ ๊ทธ๋ž˜ํ”„(DAG): ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ DAG๋กœ ์ƒ์„ฑ, ํŒŒ์ดํ”„๋ผ์ธ ๋‚ด์˜ ์ž‘์—…๊ณผ ์ž‘์—… ๊ฐ„์˜ ์ข…์†์„ฑ ์ œ๊ณต
  • Airflow ํ›„ํฌ:  ๋ฆฌ๋ชจํŠธ์†Œ์Šค ๋ฐ ํƒ€๊นƒ ์‹œ์Šคํ…œ ๋˜๋Š” Zendesk ๋“ฑ์˜ ์‹œ์Šคํ…œ์— ์ ‘์†ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜
  • Airflow ์ปค๋„ฅ์…˜: ๋ฆฌ๋ชจํŠธ์‹œ์Šคํ…œ ์ ‘์†์— ์‚ฌ์šฉํ•˜๋Š” URL/ํ˜ธ์ŠคํŠธ๋ช…, ์‚ฌ์šฉ์ž๋ช… ๋ฐ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ •์˜
  • Airflow ํ…Œ์Šคํฌ :  DAG๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์˜ ๊ธฐ๋ณธ ๋‹จ์œ„๋ฅผ ์ •์˜
  • Airflow ์˜คํผ๋ ˆ์ดํ„ฐ: ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌ์ „ ๊ตฌ์ถ•๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์‚ฌ์ „ ์ •์˜๋œ ์ž‘์—… ํ…œํ”Œ๋ฆฟ์„ ์ œ๊ณต
  • Airflow ์„ผ์„œ: ํŠน์ • ์•ก์…˜์ด ์‹คํ–‰๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•˜๋„๋ก ์„ค๊ณ„๋œ ํŠน๋ณ„ํ•œ ์œ ํ˜•์˜ ์—์–ดํ”Œ๋กœ์šฐ ์˜คํผ๋ ˆ์ดํ„ฐ๋ฅผ ์ œ๊ณต

 

> MWAA ์‚ฌ์šฉ์˜ ์žฅ์ 

  1. Airflow์˜ ์ฃผ์š” ์ฐจ๋ณ„ํ™” ์š”์†Œ ์ค‘ ํ•˜๋‚˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์ ๊ทน์ ์ธ ๊ฐœ๋ฐœ ์ง€์›์ด๋ฉฐ 1,500๋ช… ์ด์ƒ์˜ ๊ธฐ์—ฌ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ™œ๋ฐœํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ํ†ตํ•ด AWS, Google ๋ฐ Microsoft Azure ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ๋น„๋กฏํ•œ ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค์™€์˜ ๊ด‘๋ฒ”์œ„ํ•œ ํ†ตํ•ฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  2. Airflow๋Š” ์ž‘์—… ์žฌ์‹œ๋„, ์žฅ์•  ๊ฒฝ๊ณ  ๋ฐ ํฌ๊ณ  ๋ณต์žกํ•œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ™•์žฅ ๊ธฐ๋Šฅ์„ ๋‚ด์žฅํ•œ ์„ฑ์ˆ™ํ•œ ์„œ๋น„์Šค์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ฐ์‹œํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ UI๊ฐ€ ์ž˜ ๊ฐœ๋ฐœ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.์—์–ดํ”Œ๋กœ์šฐ๋Š” Airbnb์™€ ๊ฐ™์€ ๋งŽ์€ ๋Œ€๊ธฐ์—…์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์ฆ๋ช…๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  3. AWS์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์—์–ดํ”Œ๋กœ์šฐ ๊ด€๋ฆฌ ๋ฒ„์ „์€ ์—์–ดํ”Œ๋กœ์šฐ ํ™˜๊ฒฝ์„ ๋„์ž…ํ•˜๋Š” ๋ฐ ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์„ ๋Œ€ํญ ๊ฐ„์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค. AWS๋Š” ๋˜ํ•œ ์—์–ดํ”Œ๋กœ์šฐ ์›Œ์ปค๋ฅผ ํ™•์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋นŒํŠธ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ์ˆ˜์š”์— ๋”ฐ๋ผ ์›Œ์ปค๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ ๋˜๋Š” ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

 

> MWAA ์‚ฌ์šฉ์˜ ๋‹จ์ 

  1.  Airflow๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Python ๊ธฐ์ˆ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Airflow๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํ•™์Šต ๊ณก์„ ์€ ํŒŒ์ดํ”„๋ผ์ธ ์ƒ์„ฑ์„ ์œ„ํ•œ ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋ณด๋‹ค ๋” ๋†’์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. Airflow์—๋Š” ์„œ๋น„์Šค ์ œ๊ณต์— ์‚ฌ์šฉ๋˜๋Š” ์ผ์ •๋Ÿ‰์˜ ๊ณ ์ • ์ธํ”„๋ผ๊ฐ€ ์žˆ์œผ๋ฉฐ ์—ฌ๊ธฐ์—๋Š” ๊ด€๋ จ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์ง€์†์ ์ธ ๋น„์šฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

 

์„œ๋ฒ„๋ฆฌ์Šค ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ์†”๋ฃจ์…˜์„ ์œ„ํ•œ AWS Step Function

AWS Step Function์€ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ์ €์ฝ”๋“œ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ์ข…ํ•ฉ ์„œ๋ฒ„๋ฆฌ์Šค ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. Step Function์€ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ ์ ‘๊ทผ์œผ๋กœ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ์‹œ๊ฐ์  ์„ค๊ณ„ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ํ•„์š”์— ๋”ฐ๋ผ JSON์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง์ ‘ Amazon States Language(ASL)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ •์˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

AWS๋Š” ๋‹ค์–‘ํ•œ AWS ์„œ๋น„์Šค์™€ Step Function ๊ฐ„์˜ ์ตœ์ ํ™”๋œ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ํ†ตํ•ฉ์„ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ปค์Šคํ…€ ์žฌ์‹œ๋„ ์ •์ฑ…์— ์˜ํ•œ ์Šคํ…Œ์ดํŠธ์˜ ์žฅํ•ด ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ง€์ •
  • ํŠน์ •์˜ ์—๋Ÿฌ๋ฅผ ๊ฒ€์ถœํ•˜๊ธฐ ์œ„ํ•œ ์บ์น˜ ๋ธ”๋ก์„ ์ง€์ •
  • ์—๋Ÿฌ์— ๊ทผ๊ฑฐํ•ด ์ปค์Šคํ…€ ์•ก์…˜์„ ์‹คํ–‰

AWS๊ฐ€ ์ตœ์ ํ™”๋œ ํ†ตํ•ฉ์„ ๊ตฌ์ถ•ํ•˜์ง€ ์•Š์€ ์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ Step Function์— ๋‚ด์žฅ๋œ AWS SDK ํ†ตํ•ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Step Function์€ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ•๋ ฅํ•˜๊ฒŒ ์ง€์›ํ•˜๋ฉฐ Step Function ์ƒํƒœ ๋จธ์‹ ์˜ ์‹คํ–‰ ์ƒํƒœ๋ฅผ ๊ฐ์‹œํ•˜๊ธฐ ์œ„ํ•œ ์‹œ๊ฐ์  ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ƒ˜ํ”Œ Step Function ์ƒํƒœ ๋จธ์‹ 

Step Function์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ •์˜ํ•˜๋Š” ์ƒํƒœ ๋จธ์‹ ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ž‘์—…์€ ์ƒํƒœ ์‹œ์Šคํ…œ ๋‚ด์—์„œ ์ƒํƒœ๋กœ ๊ฐ„์ฃผ๋˜๋ฉฐ ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋ถ„๊ธฐ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์„ ํƒ ์ƒํƒœ ๋˜๋Š” ํŠน์ • ๊ธฐ๊ฐ„ ๋™์•ˆ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ผ์‹œ ์ค‘์ง€ํ•˜๋Š” ๋Œ€๊ธฐ ์ƒํƒœ ์™€ ๊ฐ™์ด ํŒŒ์ดํ”„๋ผ์ธ์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹์ƒํƒœ๋ฅผ ๊ฐ€์งˆ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค .

 

์ƒ˜ํ”Œ ์Šคํ… ๊ธฐ๋Šฅ ์ƒํƒœ ๋จธ์‹ 

๋”๋ณด๊ธฐ

์ด ์ƒํƒœ ๋จธ์‹ ์—์„œ์ •์˜์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํƒœ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋จผ์ € ์ˆ˜์‹ ๋œ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์„ ๊ฒ€์ฆํ•˜๋Š” Lambda ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํƒœ์Šคํฌ ์ƒํƒœ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด ๋งค๋‹ˆํŽ˜์ŠคํŠธ์— ๋‚˜์—ด๋œ ๋ชจ๋“  ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ).
  2. ๋‹ค์Œ์œผ๋กœ CSV ํ˜•์‹์—์„œ ๋ฐ›์€ ํŒŒ์ผ์„ Parquet ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธ€๋ฃจ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ํƒœ์Šคํฌ ์ƒํƒœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ๋‹ค๋ฅธ ์ž‘์—… ์ƒํƒœ์ž…๋‹ˆ๋‹ค.์ด๋ฒˆ์—๋Š” ๊ธ€๋ฃจ ํฌ๋กค๋Ÿฌ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ƒ์„ฑํ•œ ์ƒˆ Parquet ๋ฐ์ดํ„ฐ ์„ธํŠธ๋กœ ๋ฐ์ดํ„ฐ ์นดํƒˆ๋กœ๊ทธ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
  4. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ณ‘๋ ฌ ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ๋ณ‘๋ ฌ ์ƒํƒœ๋Š” ์ƒํƒœ ๊ธฐ๊ณ„์— ๋ณ‘๋ ฌ ์‹คํ–‰ ๋ถ„๊ธฐ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.์ด ๊ฒฝ์šฐ Lambda ํ•จ์ˆ˜(Parquet ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์•ฝํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ DynamoDB ํ…Œ์ด๋ธ”์— ์ €์žฅ)๋ฅผ ์‹คํ–‰ํ•œ ๋‹ค์Œ ๊ธ€๋ฃจ ์ž‘์—…์„ ์‹คํ–‰ํ•˜์—ฌ ์ƒˆ๋กœ์šด Parquet ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๋กœ ํ’๋ถ€ํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  5. ๊ทธ๋Ÿฐ ๋‹ค์Œ Choice ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.์„ ํƒ ์ƒํƒœ๋Š” ๋‹ค์Œ์— ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ํ‰๊ฐ€๋˜๋Š” ๊ทœ์น™์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.์ด ๊ฒฝ์šฐ Lambda ๋ฐ Glue ์ž‘์—…์ด ์„ฑ๊ณตํ•˜๋ฉด ์ƒํƒœ ์‹œ์Šคํ…œ์ด Success ์ƒํƒœ๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.๋‘˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์‹คํŒจํ•˜๋ฉด Lambda ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์‹คํŒจ ์•Œ๋ฆผ์„ ์ „์†กํ•˜๊ณ  ์ƒํƒœ ๋จธ์‹ ์„ Fail ์ƒํƒœ๋กœ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

 

 

AWS Step Function ์‚ฌ์šฉ์˜ ์žฅ๋‹จ์ 

AWS Step Function์€ ๊ฐ•๋ ฅํ•œ ๋น„์ฃผ์–ผ ๋””์ž์ธ ํˆด๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ํŒŒ์ดํ”„๋ผ์ธ์„ ์ •์˜ํ•˜๊ณ  ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•œ ๋„ค์ดํ‹ฐ๋ธŒ AWS ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์Šคํ… ๊ธฐ๋Šฅ์€ ์„œ๋ฒ„๋ฆฌ์Šค ์„œ๋น„์Šค๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์„œ๋น„์Šค ์ด์šฉ ์‹œ์—๋งŒ ์š”๊ธˆ์„ ์ง€๋ถˆํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ธํ”„๋ผ์ŠคํŠธ๋Ÿญ์ฒ˜๋‚˜ ์ธํ”„๋ผ์ŠคํŠธ๋Ÿญ์ฒ˜์˜ ์˜์‚ฌ๊ฒฐ์ •์„ ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

 

Apache Airflow ๋“ฑ์˜ ํˆด์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์žฅ์•  ๋ฐœ์ƒ ์‹œ๋ถ€ํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ์žฌ๊ฐœํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Step Function์€ AWS ์„œ๋น„์Šค์™€ ๋งค์šฐ ์ž˜ ํ†ตํ•ฉ๋˜์–ด ์‚ฌ๋‚ด ์›Œํฌ๋กœ๋“œ๋„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, AWS๊ฐ€ ์•„๋‹Œ ํƒ€์‚ฌ ์„œ๋น„์Šค์™€ ๊ฐ•๋ ฅํ•˜๊ฒŒ ํ†ตํ•ฉ๋œ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํˆด์„ ์ฐพ๊ณ  ์žˆ๋‹ค๋ฉด Apache Airflow๊ฐ€ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

 

์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ์กฐ์ • ๋„๊ตฌ ๊ฒฐ์ •

์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ฃผ์š” ์†์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ Step Function๊ณผ Amazon MWAA๋ฅผ ๋น„๊ต

 

AWS Step Function๊ณผ Amazon MWAA์˜ ๋น„๊ต

 

 

 

 

 

 

 

 


ใ€ŒData Engineering with AWSใ€ ๋„์„œ๋ฅผ ๋ฒˆ์—ญ ๋ฐ ์š”์•ฝํ•˜์—ฌ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค

 

Data Engineering with AWS: Learn how to design and build cloud-based data transformation pipelines using AWS: 9781800560413: Com

Gareth has worked in the IT industry for over 25 years, starting in South Africa, working in the United Kingdom for a few years, and is now based in the United States. In 2017, Gareth started working at Amazon Web Services (AWS) as a Solution Architect, wo

www.amazon.com

 

๋ฐ˜์‘ํ˜•

BELATED ARTICLES

more