π₯ λ€μ΄κ°λ©°
ν΄λΌμ°λ λ§μ΄κ·Έλ μ΄μ μμ κ°μ₯ μ€μν μμ μ€ νλλ **λ°μ΄ν° μ΄μ (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)μ μ μ©νμ¬ μλΉμ€ μ΄μ μ μ§