Cloud & Infrastructure/Migration

[Cloud Migration Ep.5] πŸš€ 데이터 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μ „λž΅: RDBMS, NoSQL, Object Storage 이전

ygtoken 2025. 3. 20. 17:29
728x90

 

πŸ”₯ λ“€μ–΄κ°€λ©°

 

ν΄λΌμš°λ“œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ—μ„œ κ°€μž₯ μ€‘μš”ν•œ μš”μ†Œ 쀑 ν•˜λ‚˜λŠ” **데이터 이전(Data Migration)**μž…λ‹ˆλ‹€.

λ°μ΄ν„°λŠ” κΈ°μ—…μ˜ 핡심 μžμ‚°μ΄λ©°, λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ κ³Όμ •μ—μ„œ 데이터 손싀, μ„±λŠ₯ μ €ν•˜, λ‹€μš΄νƒ€μž„ 증가 λ“±μ˜ λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

이번 κΈ€μ—μ„œλŠ” RDBMS(κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€), NoSQL, Object Storage(파일/였브젝트 μ €μž₯μ†Œ) 이전 μ „λž΅μ„ 닀루고,

각 데이터 μœ ν˜•λ³„ 이전 방법과 κ³ λ €ν•΄μ•Ό ν•  핡심 μš”μ†Œλ₯Ό μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

 


πŸ— 데이터 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μ „λž΅ κ°œμš”

 

데이터 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μˆ˜ν–‰ν•  λ•Œ κ³ λ €ν•΄μ•Ό ν•  μš”μ†ŒλŠ” 크게 3κ°€μ§€μž…λ‹ˆλ‹€.

 

1️⃣ 데이터 μœ ν˜•(RDBMS, NoSQL, Object Storage) – κΈ°μ‘΄ λ°μ΄ν„°λ² μ΄μŠ€ 및 μ €μž₯μ†Œ 뢄석

2️⃣ 이전 방식(온라인 vs. μ˜€ν”„λΌμΈ) – λŒ€λŸ‰ 데이터 전솑 μ‹œ μ μ ˆν•œ 전솑 방식 선택

3️⃣ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ 쀑 μ„œλΉ„μŠ€ 쀑단 μ΅œμ†Œν™” – λ‹€μš΄νƒ€μž„μ„ 쀄이기 μœ„ν•œ μ „λž΅ 수립

 

βœ… 데이터 μœ ν˜•λ³„ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ κ³ λ € 사항

데이터 μœ ν˜•μ„€λͺ…
λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ 방식 μ£Όμš” κ³ λ € 사항
κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ (MySQL, PostgreSQL, MSSQL, Oracle λ“±) 데이터 볡제, μŠ€λƒ…μƒ·, ETL 데이터 μ •ν•©μ„± μœ μ§€, λ‹€μš΄νƒ€μž„ μ΅œμ†Œν™”
λΉ„κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ (MongoDB, Cassandra, DynamoDB λ“±) 슀트리밍 볡제, λ°±μ—… 및 볡원 데이터 λͺ¨λΈ λ³€κ²½ μ—¬λΆ€, 볡제 방식
파일 및 였브젝트 μ €μž₯μ†Œ (S3, Blob Storage, MinIO λ“±) 동기화, API 기반 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ 데이터 크기 및 μ„±λŠ₯ μ΅œμ ν™”

 

πŸ’‘ 핡심 포인트:

βœ” λŒ€λŸ‰ 데이터 이전 μ‹œ λ„€νŠΈμ›Œν¬ λŒ€μ—­ν­ 문제 κ³ λ €

βœ” 데이터 정합성을 μœ μ§€ν•˜λŠ” λ°©μ‹μœΌλ‘œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μˆ˜ν–‰

βœ” 이전 κ³Όμ •μ—μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 가동 쀑단(λ‹€μš΄νƒ€μž„) μ΅œμ†Œν™” μ „λž΅ ν•„μš”

 


1️⃣ RDBMS 데이터 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ (MySQL, PostgreSQL, MSSQL, Oracle λ“±)

 

βœ… RDBMS 데이터 이전 방식

 

방법 μ„€λͺ… μž₯점 단점
μŠ€λƒ…μƒ· 볡제 κΈ°μ‘΄ λ°μ΄ν„°λ² μ΄μŠ€μ˜ 백업을 ν΄λΌμš°λ“œλ‘œ 볡원 λΉ λ₯Έ 데이터 이전 κ°€λŠ₯ μ„œλΉ„μŠ€ 쀑단(λ‹€μš΄νƒ€μž„) λ°œμƒ κ°€λŠ₯
CDC(Change Data Capture) 방식 λ³€κ²½λœ λ°μ΄ν„°λ§Œ ν΄λΌμš°λ“œλ‘œ 동기화 λ‹€μš΄νƒ€μž„ μ΅œμ†Œν™” κ°€λŠ₯ κ΅¬ν˜„μ΄ λ³΅μž‘ν•  수 있음
ETL(Extract, Transform, Load) 데이터λ₯Ό μΆ”μΆœ ν›„ λ³€ν™˜ν•˜μ—¬ ν΄λΌμš°λ“œλ‘œ 적재 데이터 μ •μ œ 및 μ΅œμ ν™” κ°€λŠ₯ λŒ€λŸ‰ 데이터 처리 μ‹œ 속도 μ €ν•˜ κ°€λŠ₯

πŸ’‘ μΆ”μ²œ 방법:

βœ” μ„œλΉ„μŠ€ 쀑단이 κ°€λŠ₯ν•˜λ‹€λ©΄ → μŠ€λƒ…μƒ· 볡제

βœ” λ‹€μš΄νƒ€μž„μ„ μ΅œμ†Œν™”ν•΄μ•Ό ν•œλ‹€λ©΄ → CDC 방식(Change Data Capture)

βœ” 데이터 ꡬ쑰λ₯Ό λ³€κ²½ν•΄μ•Ό ν•œλ‹€λ©΄ → ETL 방식 ν™œμš©

 


2️⃣ NoSQL 데이터 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ (MongoDB, Cassandra, DynamoDB λ“±)

 

βœ… NoSQL λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μ‹œ κ³ λ €ν•΄μ•Ό ν•  μš”μ†Œ

RDBMS와 달리 NoSQL은 μŠ€ν‚€λ§ˆκ°€ μœ μ—°ν•˜λ―€λ‘œ 데이터 ꡬ쑰 변경이 ν•„μš”ν•  수 있음

λŒ€λŸ‰ 데이터λ₯Ό 이동할 경우, 슀트리밍 λ°©μ‹μœΌλ‘œ μ‹€μ‹œκ°„ 볡제 κ°€λŠ₯

ν΄λΌμš°λ“œ μ„œλΉ„μŠ€λ³„ ν˜Έν™˜μ„± 문제(예: MongoDB → DynamoDB둜 이전 μ‹œ 데이터 λ³€ν™˜ ν•„μš”)

 

βœ… NoSQL 데이터 이전 방식

방법 μ„€λͺ… μž₯점 단점
λ°±μ—… & 볡원 κΈ°μ‘΄ 데이터λ₯Ό λ°±μ—… ν›„ ν΄λΌμš°λ“œμ— 볡원 κ°„λ‹¨ν•œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ κ°€λŠ₯ λŒ€λŸ‰ 데이터 처리 μ‹œ 속도 μ €ν•˜ κ°€λŠ₯
슀트리밍 볡제 (Live Migration) λ³€κ²½λœ 데이터λ₯Ό μ‹€μ‹œκ°„μœΌλ‘œ 볡제 λ‹€μš΄νƒ€μž„ μ΅œμ†Œν™” κ°€λŠ₯ 볡제 ν™˜κ²½ ꡬ좕 ν•„μš”
데이터 λ³€ν™˜ 및 적재 데이터 λͺ¨λΈμ„ λ³€κ²½ ν›„ ν΄λΌμš°λ“œμ— 적재 μƒˆλ‘œμš΄ 데이터 ꡬ쑰 적용 κ°€λŠ₯ λ³€ν™˜ 과정이 ν•„μš”ν•˜μ—¬ μ‹œκ°„ μ†Œμš”

πŸ’‘ μΆ”μ²œ 방법:

βœ” λ™μΌν•œ NoSQL μ‹œμŠ€ν…œμœΌλ‘œ 이전 → λ°±μ—… & 볡원

βœ” μ‹€μ‹œκ°„ μ„œλΉ„μŠ€ 운영 쀑이라면 → 슀트리밍 볡제 방식

βœ” 데이터 λͺ¨λΈμ„ μ΅œμ ν™”ν•˜λ €λ©΄ → 데이터 λ³€ν™˜ ν›„ 적재

 


3️⃣ Object Storage 데이터 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ (파일/였브젝트 μŠ€ν† λ¦¬μ§€)

 

Object StorageλŠ” 일반적으둜 λŒ€λŸ‰μ˜ 정적 데이터(이미지, 둜그, λ°±μ—… 데이터 λ“±)λ₯Ό μ €μž₯ν•˜λŠ” μš©λ„λ‘œ μ‚¬μš©λ©λ‹ˆλ‹€.

파일 크기가 ν¬κ±°λ‚˜ κ°œμˆ˜κ°€ λ§Žμ„ 경우, λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ 쀑 λ„€νŠΈμ›Œν¬ 속도 및 데이터 μ •ν•©μ„± μœ μ§€κ°€ μ€‘μš”ν•©λ‹ˆλ‹€.

 

βœ… Object Storage λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ 방식

방법 μ„€λͺ… μž₯점 단점
동기화(Sync) κΈ°μ‘΄ 데이터λ₯Ό ν΄λΌμš°λ“œ μŠ€ν† λ¦¬μ§€λ‘œ μ‹€μ‹œκ°„ 동기화 데이터 μ •ν•©μ„± μœ μ§€ κ°€λŠ₯ 초기 동기화 속도가 느릴 수 있음
API 기반 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ APIλ₯Ό 톡해 κΈ°μ‘΄ 데이터 μ—…λ‘œλ“œ 및 λ‹€μš΄λ‘œλ“œ λŒ€λŸ‰ 데이터 이전 κ°€λŠ₯ 개발 및 μ„€μ • ν•„μš”
μ˜€ν”„λΌμΈ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ (λ””μŠ€ν¬ 배솑) 물리적 μ €μž₯μž₯치λ₯Ό ν΄λΌμš°λ“œ μ œκ³΅μ—…μ²΄λ‘œ λ°°μ†‘ν•˜μ—¬ 데이터 이전 λ„€νŠΈμ›Œν¬ 병λͺ© 없이 λŒ€λŸ‰ 데이터 이전 κ°€λŠ₯ μ‹€μ œ 데이터 이동 μ‹œκ°„μ΄ 였래 걸릴 수 있음

πŸ’‘ μΆ”μ²œ 방법:

βœ” 데이터 크기가 크지 μ•Šλ‹€λ©΄ → 동기화(Sync) 방식

βœ” APIλ₯Ό μ§€μ›ν•˜λŠ” 경우 → API 기반 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜

βœ” μˆ˜μ‹­ TB~PBκΈ‰ 데이터라면 → μ˜€ν”„λΌμΈ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜(λ””μŠ€ν¬ 배솑)

 


4️⃣ 데이터 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ 쀑 λ‹€μš΄νƒ€μž„ μ΅œμ†Œν™” μ „λž΅

 

데이터 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ 쀑 μ„œλΉ„μŠ€ 쀑단(λ‹€μš΄νƒ€μž„)을 μ΅œμ†Œν™”ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.

이λ₯Ό μœ„ν•΄ **점진적 이전(Phased Migration) λ˜λŠ” 병렬 운영(Hybrid Approach)**을 κ³ λ €ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

βœ… λ‹€μš΄νƒ€μž„ μ΅œμ†Œν™” μ „λž΅

 

βœ… Blue-Green Deployment – κΈ°μ‘΄ μ‹œμŠ€ν…œκ³Ό ν΄λΌμš°λ“œ μ‹œμŠ€ν…œμ„ 병렬 운영 ν›„ μ „ν™˜

βœ… Read Replica ν™œμš© – ν΄λΌμš°λ“œμ— λ³΅μ œλ³Έμ„ 생성 ν›„ μ μ§„μ μœΌλ‘œ 이전

βœ… λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ ν›„ 데이터 검증 – λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ΄ μ™„λ£Œλœ ν›„ 데이터 μ •ν•©μ„± κ²€ν†  ν•„μˆ˜

 

πŸ’‘ 예제:

κΈ°μ‘΄ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό ν΄λΌμš°λ“œλ‘œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•œ ν›„, Read Replicaλ₯Ό μ‚¬μš©ν•˜μ—¬ 점진적 μ „ν™˜

파일 및 였브젝트 데이터λ₯Ό 동기화(Sync) λ°©μ‹μœΌλ‘œ ν΄λΌμš°λ“œμ™€ μ§€μ†μ μœΌλ‘œ 동기화

 


πŸ“Œ Summary

 

βœ” 데이터 μœ ν˜•(RDBMS, NoSQL, Object Storage)에 따라 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μ „λž΅μ΄ 달라야 함

βœ” μŠ€λƒ…μƒ· 볡제, CDC 방식, 슀트리밍 볡제, API 기반 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ λ“± λ‹€μ–‘ν•œ 방법 ν™œμš© κ°€λŠ₯

βœ” λ‹€μš΄νƒ€μž„ μ΅œμ†Œν™” μ „λž΅(Blue-Green, Read Replica, Sync)을 μ μš©ν•˜μ—¬ μ„œλΉ„μŠ€ 운영 μœ μ§€

 

728x90