[MLOps ํ”Œ๋žซํผ ๊ตฌ์ถ• : Airflow-MLflow-FastAPI (Helm)]

๐Ÿงฉ ์‹ค์ „ ์‹œ๋‚˜๋ฆฌ์˜ค ๊ธฐ๋ฐ˜ ๊ตฌ์„ฑ ๋ฐฐ๊ฒฝ ์ด ํ”„๋กœ์ ํŠธ๋Š” ๋‹จ์ˆœ ์‹ค์Šต์„ ๋„˜์–ด์„œ, ์‹ค์ œ ๋ฐœ์ƒํ•˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ MLOps ์ธํ”„๋ผ ๊ตฌ์ถ•์„ ๋ชฉํ‘œ๋กœ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ชจ๋ธ ์‹คํ—˜ ๊ฒฐ๊ณผ๊ฐ€ ๋’ค์„ž์—ฌ ์ถ”์ ์ด ์–ด๋ ค์šด ๋ฌธ์ œ โ†’ MLflow Tracking ์„œ๋ฒ„ + PostgreSQL ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ๊ตฌ์„ฑ ๋ชจ๋ธ ํŒŒ์ผ ๋ฐ ๋กœ๊ทธ๊ฐ€ ๋กœ์ปฌ์—๋งŒ ์ €์žฅ๋˜์–ด ํ˜‘์—… ๋ฐ ์žฌํ˜„์„ฑ์ด ๋–จ์–ด์ง€๋Š” ๋ฌธ์ œ โ†’ S3 ๊ธฐ๋ฐ˜ artifact store ๊ตฌ์„ฑ + pyfunc ๊ธฐ๋ฐ˜ ๋ชจ๋ธ ์„œ๋น™ ๊ตฌ์กฐ ์„ค๊ณ„ ์ˆ˜์ž‘์—… DAG ๋“ฑ๋ก, ๋ชจ๋ธ ๋ฐฐํฌ ๋“ฑ์˜ ๋น„ํšจ์œจ์  ์šด์˜ ๋ฌธ์ œ โ†’ Airflow + GitSync ์—ฐ๋™์œผ๋กœ ํŒŒ์ดํ”„๋ผ์ธ ์ž๋™ํ™” ๋ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ ...

July 15, 2025 ยท 3 min

[MLOps ํ”Œ๋žซํผ ๊ตฌ์ถ• - 6๋‹จ๊ณ„: ์‹ค์‹œ๊ฐ„ ๋ชจ๋ธ ํ•ซ์Šค์™‘ ๊ตฌ์กฐ ์‹คํ—˜]

์ด ๊ธ€์—์„œ ๋‹ค๋ฃจ๋Š” ๊ฒƒ Airflow DAG์—์„œ ์กฐ๊ฑด๋ถ€ ๋ชจ๋ธ ๋“ฑ๋ก ํ›„ FastAPI ํ•ซ์Šค์™‘๊นŒ์ง€ E2E ์ž๋™ํ™” ํ๋ฆ„์„ ์‹คํ—˜ํ•ฉ๋‹ˆ๋‹ค. ์„ ์ˆ˜์ง€์‹ MLOps ํ”Œ๋žซํผ ๊ตฌ์ถ• 5๋‹จ๊ณ„: FastAPI ์„œ๋น™ ๋ฐ ํ•ซ์Šค์™‘ ๊ตฌ์กฐ ๊ตฌ์ถ• โ€” FastAPI ๋ชจ๋ธ ๋กœ๋”ฉ๊ณผ /reload API ๊ตฌ์กฐ ์ด ๋‹จ๊ณ„์—์„œ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ๋ฌธ์ œ ๊ฐœ๋ณ„ ์ปดํฌ๋„ŒํŠธ(Airflow, MLflow, FastAPI)๋ฅผ ๊ฐ๊ฐ ๊ตฌ์„ฑํ–ˆ์ง€๋งŒ, ํ•™์Šต๋ถ€ํ„ฐ ์„œ๋น™๊นŒ์ง€์˜ ์ž๋™ํ™” ํ๋ฆ„์„ E2E๋กœ ๊ฒ€์ฆํ•ด์•ผ ์‹ค์ œ ์šด์˜ ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” Airflow DAG์—์„œ ๋ชจ๋ธ ํ•™์Šต โ†’ ์„ฑ๋Šฅ ๊ธฐ์ค€ ๋ถ„๊ธฐ โ†’ MLflow ๋“ฑ๋ก โ†’ FastAPI ํ•ซ์Šค์™‘๊นŒ์ง€ ์ „์ฒด ํŒŒ์ดํ”„๋ผ์ธ์„ ์‹คํ—˜ํ•ฉ๋‹ˆ๋‹ค. ...

July 10, 2025 ยท 2 min

[MLOps ํ”Œ๋žซํผ ๊ตฌ์ถ• - 4๋‹จ๊ณ„: Airflow : GitSync + ์™ธ๋ถ€ PostgreSQL + Secret ์—ฐ๋™]

์ด ๊ธ€์—์„œ ๋‹ค๋ฃจ๋Š” ๊ฒƒ Airflow๋ฅผ Helm์œผ๋กœ ๋ฐฐํฌํ•˜๋ฉด์„œ GitSync DAG ๋™๊ธฐํ™”, ์™ธ๋ถ€ PostgreSQL, AWS Secret ๋งˆ์šดํŠธ๋ฅผ ์—ฐ๋™ํ•ฉ๋‹ˆ๋‹ค. ์„ ์ˆ˜์ง€์‹ MLOps ํ”Œ๋žซํผ ๊ตฌ์ถ• 3๋‹จ๊ณ„: MLflow Helm ๊ตฌ์„ฑ โ€” Helm ๊ธฐ๋ฐ˜ ๋ฐฐํฌ์™€ Secret ์ฃผ์ž… ํŒจํ„ด ์ด ๋‹จ๊ณ„์—์„œ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ๋ฌธ์ œ DAG ์ฝ”๋“œ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์—…๋กœ๋“œํ•˜๋ฉด ๋ฒ„์ „ ๊ด€๋ฆฌ์™€ ํ˜‘์—…์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. Git ๊ธฐ๋ฐ˜ DAG ๊ด€๋ฆฌ(GitSync)๋ฅผ ๋„์ž…ํ•˜๊ณ , SSH Key/AWS ์ธ์ฆ์„ Secret์œผ๋กœ ์ฃผ์ž…ํ•˜๋ฉฐ, ์™ธ๋ถ€ PostgreSQL์„ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋กœ ์—ฐ๋™ํ•˜๋Š” GitOps ํŒจํ„ด์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ“ ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์„ฑ๋„ ๐Ÿณ ์ปค์Šคํ…€ Airflow ์ด๋ฏธ์ง€ ๊ตฌ์„ฑ GitSync DAG์—์„œ MLflow ์—ฐ๋™ ๋˜๋Š” AWS SDK ์‚ฌ์šฉ์„ ์œ„ํ•œ Python ํŒจํ‚ค์ง€ ์„ค์น˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ...

July 3, 2025 ยท 3 min

[MLOps ํ”Œ๋žซํผ ๊ตฌ์ถ• - 1๋‹จ๊ณ„: ์ธํ”„๋ผ ์„ค๊ณ„ ๋ฐ ํ™˜๊ฒฝ ์ค€๋น„]

์ด ๊ธ€์—์„œ ๋‹ค๋ฃจ๋Š” ๊ฒƒ Kubernetes ๊ธฐ๋ฐ˜ MLOps ์ธํ”„๋ผ์˜ ์ „์ฒด ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•˜๊ณ , NFS/PostgreSQL/S3 ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. ์„ ์ˆ˜์ง€์‹ Airflow 5๋‹จ๊ณ„: PythonOperator + MLflow Tracking ์—ฐ๋™ โ€” Level 1 ์™„๋ฃŒ ํ›„ ์‹œ์ž‘ ๊ถŒ์žฅ ์ด ๋‹จ๊ณ„์—์„œ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ๋ฌธ์ œ ML ๋ชจ๋ธ์„ ์‹คํ—˜ํ•˜๊ณ  ์ถ”์ ํ•˜๋ ค๋ฉด ๋‹จ์ˆœ Jupyter Notebook์œผ๋กœ๋Š” ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ํ•™์Šต ์ด๋ ฅ ์ถ”์ (MLflow), ํŒŒ์ดํ”„๋ผ์ธ ์ž๋™ํ™”(Airflow), ๋ชจ๋ธ ์„œ๋น™(FastAPI)์„ ํ•˜๋‚˜์˜ ํ”Œ๋žซํผ์—์„œ ์šด์˜ํ•˜๋ ค๋ฉด Kubernetes ๊ธฐ๋ฐ˜ ์ธํ”„๋ผ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” ๊ทธ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” NFS, PostgreSQL, S3, Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ํ™˜๊ฒฝ์„ ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. ...

June 23, 2025 ยท 3 min