μλ²κ° λλ €μ§ κ²½μ° ν΄κ²°νλ λ°©λ²μ λνμ¬ μμ°¨μ μΌλ‘ μμ보μ
1. μλ² νμ₯ : μ€μΌμΌ μμ, μ€μΌμΌ μ
2. DB λ³λͺ© ν΄κ²° : Primary-Secondary DB, μμ£Ό μ°λ λ°μ΄ν° μΊμ(Redis)
1. μλ² νμ₯
1) μ€μΌμΌ μμ(Scale Out)
μλ² μ¬λ¬ λλ₯Ό μΆκ°νμ¬ μμ€ν μ νμ₯νλ 'μν νμ₯' λ°©λ²μ΄λ€.
μλ²κ° μ¬λ¬ λκ° λκΈ° λλ¬Έμ μλ²μ 걸리λ λΆνλ₯Ό κ· λ±νκ² ν΄μ£Όλ λ‘λλ°Έλ°μ±μ΄ νμμ μΌλ‘ λλ°λμ΄μΌ νλ€.
μ€μΌμΌ μμμ κ²½μ° μλ² ν λκ° μ₯μ λ‘ λ€μ΄λλλΌλ λ€λ₯Έ μλ²λ‘ μλΉμ€ μ κ³΅μ΄ κ°λ₯νλ€λ μ₯μ μ΄ μλ€.
νμ§λ§ λͺ¨λ μλ²κ° λμΌν λ°μ΄ν°λ₯Ό κ°μ§κ³ μμ΄μΌ νλ―λ‘ λ°μ΄ν° λ³νκ° μ μ μΉ μλ²μ μ ν©ν λ°©μμ΄λ€.
2) μ€μΌμΌ μ (Scale Up)
μλ²μ CPUλ RAM λ±μ μΆκ°νκ±°λ κ³ μ±λ₯μ λΆν, μλ²λ‘ κ΅ννλ 'μμ§ νμ₯' λ°©λ²μ΄λ€.
μλ²μ μΆκ° λΆνμ μ₯μ°©ν μ μλ μ¬μ μ¬λ‘―μ΄ μλ€λ©΄ CPUλ RAMμ μΆκ°ν μ μκ³ , κ·Έλ μ§ μλ€λ©΄ μλ² μ체λ₯Ό κ³ μ±λ₯μΌλ‘ κ΅μ²΄νλ κ²μ΄ νμνλ€.
μ€μΌμΌ μ μ κ²½μ° μλ² νλμ λͺ¨λ λΆνκ° μ§μ€λλ―λ‘ μ₯μ μ μν₯μ ν¬κ² λ°μ μ μλ μνμ±μ΄ μλ€. (μλ² μμ²΄κ° μ£½μ μλ μκ³ , λμ μΌλ‘ λλ¦¬κΈ°κ° μ΄λ €μ)
λ°λ©΄, νλμ μλ²μμ λͺ¨λ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ―λ‘ λ°μ΄ν° κ°±μ μ΄ λΉλ²νκ² μΌμ΄λλ λ°μ΄ν°λ² μ΄μ€ μλ²μ μ ν©ν λ°©μμ΄λ€.
2. DB λ³λͺ© ν΄κ²°
μλ² μ체λ λλ €μ μλ²μ μμμ μΆ©λΆνλ° DB λ³λͺ©μΌλ‘ λλ €μ§λ€λ©΄ DB λ¨μμμ μμ λ νμνλ€.
1) Primary-Secondary λ°μ΄ν°λ² μ΄μ€ ꡬ쑰
Primary-Secondary ꡬ쑰λ κ³ μ±λ₯ λ° νμ₯μ±, κ³ κ°μ©μ±μ κ³ λ €νμ¬ λ°μ΄ν° μ ν©μ±μ μ μ§νλ©° λ°μ΄ν°λ² μ΄μ€ μλ²λ₯Ό λ릴 μ μλ ꡬ쑰μ΄λ€.
λ°μ΄ν°λ² μ΄μ€ μλ²λ₯Ό λ릴 λλ λ°μ΄ν°λ² μ΄μ€ μλ² κ°μ λ°μ΄ν° μ ν©μ±(Data Consistency)μ μ μ§ν΄μΌ νλ€.
λ°μ΄ν°λ² μ΄μ€μ μ±κ²©μ μΌλ°μ μΌλ‘ SELECT 쿼리λ₯Ό ν΅ν λ°μ΄ν° μ½κΈ°(READ) μμ μ΄, INSERT, UPDATE, DELETE λ±μ λ°μ΄ν° μ°κΈ°(WRITE) μμ λ³΄λ€ ν¨μ¬ λ§λ€.
λ°μ΄ν° μ ν©μ±μ μ μ§νλ©° λ°μ΄ν° μ½κΈ° μμ μ©λμ DBλ₯Ό λΆλ¦¬νλ λ°©μμ΄ Read-Replica λ°©μμ΄λ€.
Read-Replica ꡬ쑰
Primary DBλ μ°κΈ° μμ , Secondary DBλ μ½κΈ° μμ μ μν
μ±λ₯ λ° νμ₯μ±μ μν Primary-Secondary ꡬ쑰λ‘, λͺ¨λ λ°μ΄ν°μ μ°κΈ° μμ μ Primary DBμμλ§ μ€ννκ³ , μ΅μ’ λ°μ΄ν° μνλ₯Ό Secondary DBμ μ£ΌκΈ°μ μΌλ‘ 볡μ (replication)νλ λ°©μμ μ¬μ©νμ¬ λ³΅μμ DB μλ² κ° λ°μ΄ν° μ ν©μ±μ ν΄κ²°νλ€.
Active-Standby ꡬ쑰
Primary DBκ° μ½κ³ μ°κΈ° μμ , Secondary DBλ λ°±μ DBλ‘ Stand-By νν μ μ§
μ±λ₯보λ€λ λ°±μ μ μ΄μ μ λ κ³ κ°μ©μ±μ μν Primiary-Secondary ꡬ쑰μ΄λ€.
Secondary DBλ₯Ό Stand-By ννλ‘ μ μ§νλ€κ°, Primary DBμ λ¬Έμ κ° λ°μνλ©΄ Secondary DB(λ°±μ DB)κ° Active λλ ννλ₯Ό μ¬μ©νλ€. λ°±μ DBλ μ£ΌκΈ°μ μΌλ‘ Primary DBμ μ€λ μ·μ 볡μ νμ¬ λ°μ΄ν° μ ν©μ±μ μ μ§νλ€.
쿼리 μ€νλ‘λ©(Query Offloading)
μ ν리μΌμ΄μ μ€κ³ μλΆν° DB μ½κΈ°/μ°κΈ° μμ λͺ¨λμ λΆλ¦¬νμ¬ DB μμ μ λΆμ°μν΄
(Production DBμμ μνλλ 쿼리 μμ μ μΌλΆλ₯Ό λ€λ₯Έ μμ€ν μΌλ‘ μ΄λμν€λ κ²)
κ°κ°μ λͺ¨λμ μ°κΈ°/μ½κΈ° μ μ© DBμ μ μν μ μλλ‘ μ»€λ₯μ ν(connection pool)μ ꡬννλ€.
Nκ°μ Secondary DB μ€, κ°μ₯ μ±λ₯μ΄ μ’μ μλ²λ‘ μ°κ²°λ μ μλλ‘ λ‘λ λ°Έλ°μ± λν ꡬννλ€.
Primary DBμ λ°μν WRITE μμ μ΄ CDC(Change Data Capture)λ‘κ·Έλ₯Ό ν΅ν΄ Secondary DBμ μ λ¬λλλ°, Secondaryμ μκ° λ§μμλ‘ μ΄ μμ μ λΆνκ° μκΈΈ μ μμΌλ―λ‘ λ°μ Primary DBμ λΆλ΄μ μ€μ΄κ³ μ μ€κ°μ 볡μ λ§ λ΄λΉνλ Staging DBλ₯Ό λ μλ μλ€.
2) μΊμ(Redis)
μ°Έκ³ λ§ν¬ πβοΈ
https://library.gabia.com/contents/infrahosting/1222/
κ°λΉμ λΌμ΄λΈλ¬λ¦¬
IT μ½ν μΈ νλΈ
library.gabia.com
https://blog.naver.com/techtrip/221965081270
Primary-Secondary λ°μ΄ν°λ² μ΄μ€ μν€ν μ²
μμ€ν μν€ν μ²μμ κΈ°λ³Έμ μΌλ‘ νλμ μ»΄ν¬λνΈλ SPOF(Single Point Of Failure)κ° λ μ μκΈ° ...
blog.naver.com
'π± CS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ΄μ체μ ] κ°μ λ©λͺ¨λ¦¬μ νμ΄μ§, μΈκ·Έλ©ν μ΄μ (0) | 2024.03.07 |
---|---|
[μλ£κ΅¬μ‘°] Queueλ‘ Stack ꡬννκΈ° (0) | 2024.01.17 |
[μλ£κ΅¬μ‘°] StackμΌλ‘ Queue ꡬννκΈ° (0) | 2024.01.17 |
[λ€νΈμν¬] HTTPSμ SSL νλ‘ν μ½μ μ리(λμΉν€, 곡κ°ν€) (0) | 2023.12.13 |
[λ€νΈμν¬] OSI 7 κ³μΈ΅κ³Ό TCP/IP 5 κ³μΈ΅ (0) | 2023.12.09 |