์•ˆ๋…•ํ•˜์„ธ์š”.
|
PM ์ตœ์ง€ํ˜์ž…๋‹ˆ๋‹ค.

thumbnail
Terraform์œผ๋กœ AKS์— airflow ๋„์šฐ๊ณ  git์œผ๋กœ DAG ๊ด€๋ฆฌํ•˜๊ธฐ

๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ ์ด๋ฒˆ์— RAG๋ฅผ ์ด์šฉํ•œ ์ฑ„์šฉ์ •๋ณด ์ฑ—๋ด‡ ๊ตฌ์ถ•์„ ์œ„ํ•ด Azure ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ™˜๊ฒฝ(ํ†ต์นญ AKS)์—์„œ ETL ํ”„๋กœ์ ํŠธ๋ฅผ ํ•ด๋ณด๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ณ„ํš์„ ์งฐ๋‹ค. ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ์— airflow๋ฅผ ๋„์šฐ๊ณ  ์ฃผ๊ธฐ์ ์ธ ํฌ๋กค๋ง SPARK๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ๋งˆํŠธ ๊ตฌ์ถ• GPT-3 ํ† ํฌ๋‚˜์ด์ €๋ฅผ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ ์ž„๋ฒ ๋”ฉ ํฌ๋กœ๋งˆ DB์— ๋ฐ์ดํ„ฐ ์ ์ œ ์ด๊ฑฐ ํ•  ์ƒ๊ฐ์— ์ž”๋œฉ ๊ธฐ๋Œ€ํ•˜๊ณ  ํ—ˆ๊ฒ์ง€๊ฒ ์ผ๋‹จ AKS ์œ„์— ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์˜ฌ๋ฆฐ ํ›„ pod์— airflow๋ฅผ ์˜ฌ๋ฆฌ๊ณ  DAG๋ฅผ GIT์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ๊ตฌ์„ฑํ–ˆ๋‹ค. ACR(Azure Container Registry)๋„ ๋งŒ๋“ค์–ด ๋„์ปค๋กœ ํ™˜๊ฒฝ ๋ฐฐํฌ๊นŒ์ง€ ์ž๋™ํ™”๋ฅผ ํ•ด๋†จ์œผ๋‚˜ ๊ฒฐ๊ตญ ๋ฌด์‚ฐ ๋˜์—ˆ๋‹คโ€ฆ ๊ทธ ์ด์œ ๋Š” ๋ฐ”๋กœ ๋น„์šฉ๋ฌธ์ œ์ด๋‹ค. ์ผ๋‹จ ๋‚ด๊ฐ€ ๊ฐœ๋ฐœํ•œ ํฌ๋กค๋Ÿฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋ฉด ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐ”๋กœ โ€˜detail_dataโ€™๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋ฅผ , , ๊ทธ๋ฆฌ๊ณ  ํ”„๋กฌํ”„ํŠธ๋งŒํ•ด๋„ ์ด ์—„์ฒญ๋‚˜๋‹ค. ๊ทผ๋ฐ ํ•ด๋‹น ๊ธฐ๋Šฅ์€ ํ•„์ˆ˜์ ์ธ ๊ธฐ๋Šฅ์ด๋ผ ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด๋ง ํŒŒํŠธ์—์„œ ๋น„์šฉ ์ ˆ๊ฐโ€ฆ

๊ธ€๋˜ 10๊ธฐ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉฐ

๋“œ๋””์–ด ๊ธ€๋˜ 10๊ธฐ๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋“œ์ด์–ด ๊ธ€๋˜ 10๊ธฐ๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!!! ์ด๋ฒˆ์— ๊ธ€๋˜ 10๊ธฐ๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์–ด์„œ ๋„ˆ๋ฌด ๊ฐ์‚ฌํ•˜๋‹ค. ์ด๋ ‡๊ฒŒ ์ข‹์€ ์Šต๊ด€๊ณผ ๋„คํŠธ์›Œํ‚น์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ์‹  ๋ณ€์„ฑ์œค๋‹˜๊ป˜๋„ ๊ฐ์‚ฌํ•˜๊ณ  ์•Œ๋งž์€ ์‹œ๊ธฐ์— ๋˜ ๊ธ€๋˜ 10๊ธฐ ๋ชจ์ง‘ ๊ธ€์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ํ™•์ธํ•œ ์Šค์Šค๋กœ์—๊ฒŒ๋„ ๊ฐ์‚ฌํ•˜๋‹ค. ์ „์ฒด์ ์œผ๋กœ ๊ธ€๋˜ 10๊ธฐ๋ฅผ ์œ„ํ•ด์„œ ๋‹ค์งํ•œ ์‚ฌํ•ญ์ด ๋ช‡๊ฐ€์ง€ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‚˜์˜ 9๊ธฐ ํ™œ๋™์œผ๋กœ ๊ฐ€๋ด์•ผ ํ•œ๋‹ค. ์ž ๊น ๊ทธ์ „์—!! ์•„์ง ๊ธ€๋˜๊ฐ€ ๋ญ”์ง€ ๋ชจ๋ฅด์‹ ๋‹ค๊ตฌ์š”? ์•„๋ž˜ ์ด๋ฏธ์ง€๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š” ์ด์ด.. ๊ธ€๋˜ docs A few months agoโ€ฆ ๋‚ด๊ฐ€ ๋‹ค์งํ–ˆ๋‹ค๋Š” ๊ฒƒ์€ 9๊ธฐ์—์„œ ๋Š๋‚€ ์•„์‰ฌ์šด ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. 9๊ธฐ๋ณด๋‹ค ์ด๋Ÿฐ ๋ถ€๋ถ„์—์„œ๋Š” ๋” ๋‚˜์•„์ ธ์•ผ๊ฒ ๋‹ค ๋ผ๋Š” ์ƒ๊ฐ์„ ๊ธ€๋กœ ํ’€์–ด๋ณด๊ณ ์ž ํ•œ๋‹ค. 1. ๊ฒฝํ—˜ํ•œ ์‚ฌ์‹ค ๋ณด๋‹ค๋Š” ์ƒ๊ฐ๊ณผ ๋Š๋‚€์ ์— ๋Œ€ํ•œ ๊ธ€์„ ์“ฐ๊ธฐ โ€œ์ด๊ฒŒ ๋ฌด์Šจ ์†Œ๋ฆฌ์ธ๊ต..?โ€ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‚ด๊ฐ€ ์“ด ๊ธ€์„ ๋Œ์•„๋ณด๋ฉด ํ•ญ์ƒ ๋‚ด๊ฐ€ ๊ฒฝํ—˜ํ•œ ์‚ฌ์‹ค์— ๋Œ€ํ•ด์„œ ์ผ์„ ๋ฟ, ๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ์ด๊ฑธ ๊ฒฝํ—˜ํ•˜๋ฉด์„œ ๋Š๋‚€ ์–ด๋ ค์›€๊ณผ ๊นจ๋‹ฌโ€ฆ

Load Balancer๋ž€? Feat. AWS

๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ ์ตœ๊ทผ์— BOAZ ๋™์•„๋ฆฌ์—์„œ Oauto2์™€ goole calender๋ฅผ ์ด์šฉํ•ด์„œ ์›น ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“œ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š”๋ฐ(๊ณ„ํš์— ์ „ํ˜€์—†๋˜ ๋ฆฌ์•กํŠธ๊นŒ์ง€ ์จ๋ณด๋Š”์ค‘๐Ÿฅฒ) ์ „๋ฐ˜์ ์ธ ์ธํ”„๋ผ ๊ตฌ์„ฑ์„ ๋‚ด๊ฐ€ ๋งก์•˜๋‹ค. ์ด๋•Œ, ๋„๋ฉ”์ธ์„ AWS EC2์— ๋“ฑ๋กํ•˜๋Š” ๊ณผ์ •์—์„œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ALB ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์— SSL ์ธ์ฆ์„ ์ ์šฉํ•˜๋ฉด ๊ฐ Ec2 ์ธ์Šคํ„ด์Šค ๋งˆ๋‹ค SSL์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์•„๋„ HTTPS ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ์— ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด์—ˆ๋‹ค. ๊ทธ ๊ณผ์ •์—์„œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ฅผ ๋‹จ์ˆœํžˆ โ€œ๊ทธ๋ƒฅ ๋ถ€ํ•˜๋ถ„์‚ฐ ์•„๋‹˜?โ€์œผ๋กœ ์•Œ๊ณ  ์žˆ๋˜ ๋‚˜์—๊ฒŒ ๊ฐœ๋…์ •๋ฆฌ๊ฐ€ ๊ผญ ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด๋ผ ์ด๋ฒˆ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ด๋ณด์ž ์‹œ์ž‘ํ•ด๋ณด์ž Core ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” Scale out์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. ์„œ๋น„์Šค๋Š” ์„ฑ์žฅํ•˜๋Š”๋ฐ ๋Š˜์–ด๋‚˜๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์„œ๋ฒ„๊ฐ€ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†์„๋•Œ ์„œ๋ฒ„๋ฅผ ์ฆ์„คํ•˜๋Š”๋ฐ ์ด ๊ณผ์ •์—์„œ ๊ฐ ์„œ๋ฒ„์— ๊ฑธ๋ฆฌ๋Š” ๋ถ€ํ•˜๋ฅผ ๊ณ ๋ฅด๊ฒŒ ๋‚˜๋ˆ„๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์ด ํ•„์ˆ˜์ ์œผ๋กœ ๋™๋ฐ˜๋˜์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰ ๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ๋“ค์–ด์˜ค๋Š” โ€ฆ

nginx๋กœ Spark, Yarn, kafka ๋“ฑ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ Web ui ๊ตฌ์„ฑํ•˜๊ธฐ

๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ kafka ํ† ํ”ฝ๊ด€๋ฆฌ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ทธ๋ฆฌ๊ณ  SPARK ๋ฉ”๋ชจ๋ฆฌ๋‚˜ yarn ๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ์ผ€ํ…Œ์šฐ์Šค์™€ ๊ทธ๋ผํŒŒ๋‚˜ ๋“ฑ์ด ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ๋ชจ๋‘ cli๋กœ ๊ด€๋ฆฌํ•˜๋Š”๊ฒƒ์€ ๋ช…๋ฐฑํ•œ ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๋„ˆ๋ฌด ๋ถˆํŽธํ•˜๊ณ  ๊ทธ๊ฒŒ ๋‹ค ์‹œ๊ฐ„ ์ž์› ๋นผ๋จน๋Š”๊ฑฐ๋‹ค. ๋•Œ๋ฌธ์— Web ui๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋ณดํ†ต ๊ต‰์žฅํžˆ ํŽธํ•œ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋ฆฌ์†Œ์Šค์™€ ํˆด์ด ๋Š˜์–ด๋‚˜๋Š” ๋งŒํผ ๋งŽ์€ Web ui๋ฅผ ๋„์›Œ์•ผ ํ•œ๋‹ค. ๊ทธ๋™์•ˆ ๋‚˜๋Š” ํฌํŠธ ํฌ์›Œ๋”ฉ์œผ๋กœ ๋ชจ๋“  ui๋ฅผ ๋„์› ๋‹ค. ์ด๋ ‡๊ฒŒ ๋์„ ๊ฒฝ์šฐ ๋‹จ์ ์€ ์ธ์Šคํ„ด์Šค๋ฅผ ๋„๊ณ  ํ‚ฌ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ ํฌํŠธํฌ์›Œ๋”ฉ์„ ์ˆ˜๋™์œผ๋กœ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.๊ทธ๋™์•ˆ์€ ํ•œ๋ฒˆ์— ํฌํŠธ ํฌ์›Œ๋”ฉ์„ ํ•ด์ฃผ๋Š” .shํŒŒ์ผ์„ ๊ธธ๊ฒŒ ๋งŒ๋“ค์–ด์„œ ํ•ด๊ฒฐํ•ด์™”์œผ๋‚˜ ์ ์  ๊ฐ๋‹นํ•˜๊ธฐ ์–ด๋ ค์šด ์ˆ˜์ค€๊นŒ์ง€ ๊ฐ”๋‹ค. ๋•Œ๋ฌธ์— ๋„์ž…ํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ ์šฐ๋ฆฌ ํŒ€์› ๋กœ์ปฌ ๋‚ด๋ถ€์˜ hosts์— ip์ฃผ์†Œ์™€ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์ง€์ •ํ•ด๋‘๊ณ  nginx๋กœ ui๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•ด๋‘๋Š” ๋ฐฉํ–ฅ์ด์—ˆ๋‹ค. nginx ์„ค์ • public-nat์— nginx ์„ค์น˜ํ•˜์—ฌ http rewriteํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ • ๋จผ์ € nginโ€ฆ