์ฑ ์ ๋ฐ์ ๊ฑธ์ณ ๋ฐ์ดํฐ ์์ง๋์ด๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ง ๋ฐ ๋ณํํ๊ณ ์๋น์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ ์ ์๋๋ก ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ค์ํ ์๋น์ค์ ๋ํด ๋ ผ์ํด ์์ต๋๋ค. ๋ํ ์๋ก์ด ๋ฐ์ดํฐ ์ธํธ๊ฐ ๋ฐ์ดํฐ ๋ ์ดํฌ์ ์ถ๊ฐ๋ ๋ ๋ฐ์ดํฐ ์นดํ๋ก๊ทธ๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ ์ค์์ฑ๊ณผ ํน์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ํด ๋ฐ์ดํฐ ํ์ ์งํฉ์ ๋ฐ์ดํฐ ๋งํธ์ ๋ก๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์๋ ๋ ผ์ํ์ต๋๋ค.
์ค์ ์ด์ ํ๊ฒฝ์์๋ ์์ ์ ์๋์ผ๋ก ์คํํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ค์ํ ๋ฐ์ดํฐ ์์ง๋์ด๋ง ์์ ์ ์๋ํํ ์ ์๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ๊ฐ ํ์ํฉ๋๋ค.
์ด ์ฅ์์๋ ๋ค์ํ ์ค์ผ์คํธ๋ ์ด์ ์์ง์ผ๋ก ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- ํ์ดํ๋ผ์ธ ์ค์ผ์คํธ๋ ์ด์ ์ ํต์ฌ ๊ฐ๋ ์ดํด
- 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 ์์ ํ๋ฆ ์คํ์ ์์ํ ์ ์๋ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
- on-demand ๋ก ์ค์ ํ๋ฉด ์ํฌํ๋ก๋ ์ฝ์์์ ์๋์ผ๋ก ์์ํ๊ฑฐ๋ Glue API ๋๋ CLI๋ฅผ ์ฌ์ฉํ์ฌ ์์ํ ๋๋ง ์คํ
- scheduled ์ผ๋ก ์ค์ ํ๋ฉด ์์ ์คํ ๋น๋(์: ๋งค์๊ฐ, ๋งค์ผ, ๋งค์ ๋๋ ํน์ ์์ผ(์: ์์์ผ~๊ธ์์ผ))๋ฅผ ์ง์
- ๋ฌธ์์ด์ ์ฌ์ฉํ์ฌ ์คํํ ๋น๋๋ฅผ ์ค์ ํ๋ 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 ์ฌ์ฉ์ ์ฅ์
- Airflow์ ์ฃผ์ ์ฐจ๋ณํ ์์ ์ค ํ๋๋ ์คํ ์์ค ์ปค๋ฎค๋ํฐ์ ์ ๊ทน์ ์ธ ๊ฐ๋ฐ ์ง์์ด๋ฉฐ 1,500๋ช ์ด์์ ๊ธฐ์ฌ์๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ํ๋ฐํ ์ปค๋ฎค๋ํฐ๋ฅผ ํตํด AWS, Google ๋ฐ Microsoft Azure ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ๋น๋กฏํ ๋ค์ํ ์๋น์ค์์ ๊ด๋ฒ์ํ ํตํฉ์ ์ง์ํฉ๋๋ค.
- Airflow๋ ์์ ์ฌ์๋, ์ฅ์ ๊ฒฝ๊ณ ๋ฐ ํฌ๊ณ ๋ณต์กํ ์ํฌํ๋ก์ฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ํ์ฅ ๊ธฐ๋ฅ์ ๋ด์ฅํ ์ฑ์ํ ์๋น์ค์ด๊ธฐ๋ ํฉ๋๋ค. ํ์ดํ๋ผ์ธ์ ๊ฐ์ํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ UI๊ฐ ์ ๊ฐ๋ฐ๋์ด ์์ต๋๋ค.์์ดํ๋ก์ฐ๋ Airbnb์ ๊ฐ์ ๋ง์ ๋๊ธฐ์ ์์ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์ฆ๋ช ๋๊ณ ์์ต๋๋ค.
- AWS์์ ์ฌ์ฉํ ์ ์๋ ์์ดํ๋ก์ฐ ๊ด๋ฆฌ ๋ฒ์ ์ ์์ดํ๋ก์ฐ ํ๊ฒฝ์ ๋์ ํ๋ ๋ฐ ์์๋๋ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ๋ํญ ๊ฐ์ํํฉ๋๋ค. AWS๋ ๋ํ ์์ดํ๋ก์ฐ ์์ปค๋ฅผ ํ์ฅํ๊ธฐ ์ํ ๋นํธ์ธ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์์์ ๋ฐ๋ผ ์์ปค๋ฅผ ์๋์ผ๋ก ์ถ๊ฐ ๋๋ ์ญ์ ํฉ๋๋ค.
> MWAA ์ฌ์ฉ์ ๋จ์
- Airflow๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด Python ๊ธฐ์ ์ด ํ์ํฉ๋๋ค. ๋ฐ๋ผ์ Airflow๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ํ์ต ๊ณก์ ์ ํ์ดํ๋ผ์ธ ์์ฑ์ ์ํ ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ๋๋ณด๋ค ๋ ๋์ ์ ์์ต๋๋ค.
- 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์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํ๋ ๋ค์ํ ์์ ์ ์ ์ํ๋ ์ํ ๋จธ์ ์ ์์ฑํฉ๋๋ค. ๊ฐ์์ ์ ์ํ ์์คํ ๋ด์์ ์ํ๋ก ๊ฐ์ฃผ๋๋ฉฐ ํ์ดํ๋ผ์ธ์ ๋ถ๊ธฐ๋ฅผ ์คํํ๋ ์ ํ ์ํ ๋๋ ํน์ ๊ธฐ๊ฐ ๋์ ํ์ดํ๋ผ์ธ์ ์ผ์ ์ค์งํ๋ ๋๊ธฐ ์ํ ์ ๊ฐ์ด ํ์ดํ๋ผ์ธ์ ํ๋ฆ์ ์ ์ดํ๋ โโ์ํ๋ฅผ ๊ฐ์ง ์๋ ์์ต๋๋ค .
์ด ์ํ ๋จธ์ ์์์ ์์์ ๋ค์๊ณผ ๊ฐ์ ์ํ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
- ๋จผ์ ์์ ๋ ๋งค๋ํ์คํธ ํ์ผ์ ๊ฒ์ฆํ๋ Lambda ํจ์๋ฅผ ์คํํ๋ ํ์คํฌ ์ํ๋ก ์์ํฉ๋๋ค(์๋ฅผ ๋ค์ด ๋งค๋ํ์คํธ์ ๋์ด๋ ๋ชจ๋ ํ์ผ์ด ์กด์ฌํ๋์ง ํ์ธ).
- ๋ค์์ผ๋ก CSV ํ์์์ ๋ฐ์ ํ์ผ์ Parquet ํ์์ผ๋ก ๋ณํํ๋ ๊ธ๋ฃจ ์์ ์ ์คํํ๊ธฐ ์ํ ๋ ๋ค๋ฅธ ํ์คํฌ ์ํ๊ฐ ์์ต๋๋ค.
- ๋ค์ ๋จ๊ณ๋ ๋ค๋ฅธ ์์ ์ํ์ ๋๋ค.์ด๋ฒ์๋ ๊ธ๋ฃจ ํฌ๋กค๋ฌ๋ฅผ ์คํํ์ฌ ์์ฑํ ์ Parquet ๋ฐ์ดํฐ ์ธํธ๋ก ๋ฐ์ดํฐ ์นดํ๋ก๊ทธ๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
- ๊ทธ๋ฐ ๋ค์ ๋ณ๋ ฌ ์ํ๋ก ๋ค์ด๊ฐ๋๋ค. ๋ณ๋ ฌ ์ํ๋ ์ํ ๊ธฐ๊ณ์ ๋ณ๋ ฌ ์คํ ๋ถ๊ธฐ๋ฅผ ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.์ด ๊ฒฝ์ฐ Lambda ํจ์(Parquet ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์์ฝํ๊ณ ๊ฒฐ๊ณผ๋ฅผ DynamoDB ํ ์ด๋ธ์ ์ ์ฅ)๋ฅผ ์คํํ ๋ค์ ๊ธ๋ฃจ ์์ ์ ์คํํ์ฌ ์๋ก์ด Parquet ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ถ๊ฐ ๋ฐ์ดํฐ๋ก ํ๋ถํ๊ฒ ๋ง๋ญ๋๋ค.
- ๊ทธ๋ฐ ๋ค์ 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๋ฅผ ๋น๊ต
ใData Engineering with AWSใ ๋์๋ฅผ ๋ฒ์ญ ๋ฐ ์์ฝํ์ฌ ์์ฑํ์ต๋๋ค
'Ability ๐ฑ > AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS Data Engineering] 8์ฅ. ๋ฐ์ดํฐ ์๋น์ ์๋ณ ๋ฐ ํ์ฑํ (0) | 2023.03.01 |
---|---|
[AWS Data Engineering] 5์ฅ. ๋ฐ์ดํฐ ์์ง๋์ด๋ง ํ์ดํ๋ผ์ธ ์ค๊ณ (0) | 2023.02.08 |