Basic
μνμ κ·λͺ¨ νμ₯(Scale Out)
κ·λͺ¨ νμ₯μ ν¬κ² μμ§μ κ·λͺ¨ νμ₯κ³Ό μνμ κ·λͺ¨ νμ₯μΌλ‘ λλλ€.
μμ§μ κ·λͺ¨ νμ₯: λ¨μΌ μλ²μ μ±λ₯μ ν₯μμν€λ λ°©λ²(CPU / RAM / SSD λ± μ κ·Έλ μ΄λ
μνμ κ·λͺ¨ νμ₯: μ¬λ¬ μλ²λ‘ λΆμ°νμ¬ μ²λ¦¬νλ λ°©λ²
λ§μ½ μλ²λ‘ μ μ λλ νΈλν½ μμ΄ μ κ±°λ μλ²μ μ±λ₯μ΄ μΆ©λΆνλ€λ©΄ μμ§μ κ·λͺ¨ νμ₯μ΄ μ 리νμ§λ§ λ€μκ³Ό κ°μ λ¬Έμ κ° μ‘΄μ¬νλ€.
νλμ μλ²λ‘ νΈλν½μ μ²λ¦¬ν μ μλ μ λμ μΈ μ±λ₯μ νκ³ μ‘΄μ¬
SPOF(Single Point of Failure)λ‘ μΈν μνμ±μ΄ μ‘΄μ¬
μλ볡ꡬ λ°©μμ΄λ λ€μ€ν λ°©μμ΄ μ‘΄μ¬νμ§ μμ μ₯μ λ°μ μ λ³΅κ΅¬κ° μ΄λ €μ
μμ κ°μ λ¬Έμ λ‘ μΈν΄ λ³΄ν΅ λκ·λͺ¨ μ ν리μΌμ΄μ μ μ€κ³ν λλ μνμ κ·λͺ¨ νμ₯μ κ³ λ €νλ€.
λ‘λλ°Έλ°μ
λ‘λλ°Έλ°μλ λΆν λΆμ° μ§ν©μ μν μΉ μλ²μ νΈλν½ λΆνλ₯Ό κ³ λ₯΄κ² λΆμ°νλ μν λΏλ§ μλλΌ λ€μκ³Ό κ°μ κΈ°λ₯μ μ 곡ν μ μλ€.
μλ볡ꡬ: λ‘λλ°Έλ°μλ μλ²μ μ₯μ κ° λ°μνλ©΄ ν΄λΉ μλ²λ‘μ νΈλν½μ μ°¨λ¨νκ³ , λ€λ₯Έ μλ²λ‘ νΈλν½μ λΆμ°νλ€.
Amazon Elastic Load Balancer(ELB)λ λ±λ‘λ λμμ μ μ§μ μΌλ‘ ν¬μ€ 체ν¬νμ¬ λ¬Έμ κ° μλ μΈμ€ν΄μ€λ₯Ό νΈλν½μμ μλμΌλ‘ μ μΈνλ€.
νμ₯μ±: νΈλν½μ λ°λΌ μλ²λ₯Ό μΆκ°νκ±°λ μ κ±°ν μ μλ€.
λ°μ΄ν°λ² μ΄μ€ λ€μ€ν
λ§μ λ°μ΄ν°λ² μ΄μ€κ° λ€μ€νλ₯Ό μ§μνλ©°, 보ν΅μ λ§μ€ν°-μ¬λ μ΄λΈ κ΅¬μ‘°λ‘ κ΅¬μ±λλ€.
master: μ°κΈ° μμ μ μ²λ¦¬νλ μλ²
slave: μ½κΈ° μμ μ μ²λ¦¬νλ μλ², λ³΄ν΅ μ½κΈ° μμ μ νμκ° λ§κΈ° λλ¬Έμ λ§μ slave μλ²λ₯Ό λμ΄ λΆνλ₯Ό λΆμ°νλ€.
λ°μ΄ν°λ² μ΄μ€λ₯Ό λ€μ€ννλ©΄ λ€μκ³Ό κ°μ μ₯μ μ μ»μ μ μλ€.
μ±λ₯ ν₯μ: μ½κΈ° μμ μ λΆμ°νμ¬ μ²λ¦¬νκΈ° λλ¬Έμ μ±λ₯ ν₯μ
μμ μ±: λ°μ΄ν°λ² μ΄μ€ μΌλΆκ° μμλλλΌλ λ°μ΄ν° 보쑴 κ°λ₯
κ°μ©μ±: νλμ λ°μ΄ν°λ² μ΄μ€ μλ²μ μ₯μ κ° λ°μνλλΌλ λ€λ₯Έ μλ²μ μλ λ°μ΄ν° μ¬μ© κ°λ₯
λ°μ΄ν°λ² μ΄μ€ μνμ νμ₯(=Sharding)
λκ·λͺ¨ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ€λλΌκ³ λΆλ₯΄λ μμ λ¨μλ‘ λΆν νλ κΈ°μ λ‘, κ° μ€λλ κ°μ μ€ν€λ§λ₯Ό κ°μ§κ³ μμ§λ§ μλ‘ λ€λ₯Έ λ°μ΄ν°λ₯Ό μ μ₯νκ² λλ€. λ°μ΄ν°κ° 보κ΄λλ μ€λλ μ€λ© μ λ΅μ λ°λΌ κ²°μ λλ©°, μ€λ©μ λμ νκ² λλ©΄ λ€μκ³Ό κ°μ λ¬Έμ κ° λ°μν μ μλ€.
μ¬ μ€λ©: νλμ μ€λμ μ μ₯λ λ°μ΄ν°κ° λ무 λ§μμ§κ±°λ λΆν¬κ° κ· λ±νμ§ μμ κ²½μ° μ€λ© μ λ΅μ μ¬μ€μ νμ
μ λͺ μΈμ¬ λ¬Έμ : νΉμ μ€λμ μ§μκ° μ§μ€λμ΄ ν΄λΉ μ€λμ λΆνκ° μ§μ€λλ λ¬Έμ
μ‘°μΈκ³Ό λΉμ κ·ν: μ¬λ¬ μ€λ μλ²λ‘ μͺΌκ°κ² λλ©΄, μ¬λ¬ μ€λμ κ±ΈμΉ λ°μ΄ν° μ‘°μΈμ΄ νλ€μ΄μ Έ λΉμ κ·νκ° νμν μ μμ
μΊμ(Cache)
κ° λΉμΌ μ°μ° κ²°κ³Ό λλ μμ£Ό μ°Έμ‘°λλ λ°μ΄ν°λ₯Ό λ©λͺ¨λ¦¬μ μ μ₯νμ¬ λΉ λ₯΄κ² μ κ·Όν μ μλλ‘ νλ μ μ₯μμ΄λ€. μ ν리μΌμ΄μ μ μ±λ₯μ λ°μ΄ν°λ² μ΄μ€ 쿼리μ μ±λ₯μ ν¬κ² μμ‘΄νλλ°, μΊμλ₯Ό μ¬μ©νλ©΄ λ°μ΄ν°λ² μ΄μ€ 쿼리λ₯Ό μ€μ¬ μ±λ₯μ ν₯μμν¬ μ μλ€. λνμ μΈ μΊμ μ λ΅μΌλ‘ μ½κΈ° μ£Όλν μΊμ μ λ΅(read-through caching strategy)μ΄ μ‘΄μ¬νλ©°, λ€μκ³Ό κ°μ΄ λμνλ€.
μΊμ κ³μΈ΅μ λ°μ΄ν° μ‘°ν μμ²
μΊμ κ³μΈ΅μ λ°μ΄ν°κ° μ‘΄μ¬νλ©΄ μΊμμμ λ°μ΄ν° μ‘°ν
μΊμ κ³μΈ΅μ λ°μ΄ν°κ° μ‘΄μ¬νμ§ μμΌλ©΄ λ°μ΄ν°λ² μ΄μ€μμ λ°μ΄ν° μ‘°ν
λ°μ΄ν°λ² μ΄μ€μμ μ‘°νν λ°μ΄ν°λ₯Ό μΊμ κ³μΈ΅μ λ°μ΄ν° μ μ₯
λ°μ΄ν° λ°ν
μΊμ μ¬μ© μ κ³ λ €μ¬ν
μΊμ μ μ© μμ κ°±μ λΉλ / μ°Έμ‘° λΉλ / λ§λ£ μκ°μ κ³ λ €ν΄μΌνλ©°, κ·Έ μΈμλ λ€μκ³Ό κ°μ μ¬νμ κ³ λ €ν μ μλ€.
μΊμ λ©λͺ¨λ¦¬: ν¬κΈ°κ° λ무 μμΌλ©΄ λ°μ΄ν°κ° μΊμμμ μμ£Ό λ°λ €λ μ±λ₯ μ ν λ°μ κ°λ₯(κ³Όν λΉνμ¬ λ°©μ§ νμ)
λ°μ΄ν° λ°©μΆ μ μ± : μΊμκ° κ½ μ°Όμ λ λ°μ΄ν°κ° μΊμμμ λ°λ €λλ λ°©λ²μ κ²°μ νλ μ μ± μΌλ‘, LRU / LFU / FIFO λ±μ΄ μλ€.
μ½ν
μΈ μ μ‘ λ€νΈμν¬(CDN)
μ μ μ½ν μΈ λ₯Ό μ μνλ λ° μ¬μ©λλ μλ² λ€νΈμν¬λ‘, 물리μ μΌλ‘ λΆμ°λ μλ²μ λ€νΈμν¬μ΄λ€. μ΄λ―Έμ§ / λΉλμ€ / CSS ? JavaScript νμΌ λ±μ μΊμνμ¬ μ¬μ©μμκ² λΉ λ₯΄κ² μ μ‘ν μ μλ€.
μ¬μ©μκ° νΉμ μ΄λ―Έμ§ URLμ μ κ·Όνλ κ²½μ° μλμ κ°μ΄ λμνλ€.
μ¬μ©μκ° μ΄λ―Έμ§ URLμ μ κ·Ό
CDN μλ²μ μμ²
CDN μλ²μ ν΄λΉ μ΄λ―Έμ§κ° μ‘΄μ¬νλ©΄ CDN μλ²μμ μ΄λ―Έμ§ μ‘°ν
CDN μλ²μ ν΄λΉ μ΄λ―Έμ§κ° μ‘΄μ¬νμ§ μμΌλ©΄ μλ³Έ μλ²μ μμ²
μλ³Έ μλ²μμ μ‘°νν μ΄λ―Έμ§λ₯Ό CDN μλ²μ μ μ₯
CDN μλ²μμ μ΄λ―Έμ§ λ°ν
무μν(Stateless) μΉ κ³μΈ΅
μΉ κ³μΈ΅μ μνμ νμ₯μ μν΄μ μν μ 보λ₯Ό μΉ κ³μΈ΅μμ μ κ±°ν΄μΌ νλ€. μνκ° νμν κ²½μ°μ RDBMS / μΊμ μμ€ν / NoSQL λ°μ΄ν°λ² μ΄μ€ λ±μ μ¬μ©ν μ μλ€.
λ§μ½ μν μ 보λ₯Ό μΉ κ³μΈ΅μμ μ μ₯νκ² λλ©΄, νΉμ ν΄λΌμ΄μΈνΈκ° νμ κ°μ μλ²λ‘ μ μ‘ν΄μΌ νλ€. λ‘λλ°Έλ°μμ κ³ μ μΈμ λ°©λ²μ μ¬μ©ν μ μμ§λ§ λ‘λλ°Έλ°μμ λΆνκ° μ¦κ°νκ³ μλ² νμ₯μ±μ΄ μ νλ μ μλ€.
λ€μ€ λ°μ΄ν° μΌν°
μ¬λ¬ λ°μ΄ν° μΌν°λ₯Ό μ§μνκ² λλ©΄, κ°μ©μ±μ λμ΄κ³ μ μΈκ³ μ¬μ©μμκ² λΉ λ₯Έ μλ΅ μκ°μ μ 곡ν μ μλ€.
μ§λ¦¬μ λΌμ°ν (geo-routing)μ μ¬μ©νμ¬ μ¬μ©μκ° κ°μ₯ κ°κΉμ΄ λ°μ΄ν° μΌν°λ‘ μ°κ²°
νΉμ λ°μ΄ν° μΌν°μ μ₯μ λ°μ μ μ₯μ κ° μλ λ°μ΄ν° μΌν°λ‘ νΈλν½μ μ ν
μ΄λ¬ν λ€μ€ λ°μ΄ν°μΌν° μν€ν μ²λ₯Ό μ€κ³νκΈ° μν΄μ λ€μκ³Ό κ°μ μ¬νμ κ³ λ €ν΄μΌ νλ€.
νΈλν½ μ°ν: μ¬λ°λ₯Έ λ°μ΄ν° μΌν°λ‘ νΈλν½μ 보λ΄λ λ°©λ² νμ
λ°μ΄ν° λκΈ°ν: λ°μ΄ν° μΌν° κ° λ°μ΄ν° λκΈ°ν λ°©λ² νμ
ν μ€νΈμ λ°°ν¬: λ€μ€ λ°μ΄ν° μΌν° μν€ν μ²λ₯Ό ν μ€νΈνκ³ λ°°ν¬νλ λ°©λ² νμ
λ©μμ§ ν
λ©μμ§μ 무μμ€μ 보μ₯νλ λΉλκΈ° ν΅μ μ μ§μνλ μ»΄ν¬λνΈλ‘, λ©μμ§μ λ²νΌ μν μ νλ©΄μ λΉλκΈ°μ μΌλ‘ μ μ‘νλ€. λ©μμ§ νμ κΈ°λ³Έμ μΈ λμ λ°©μμ λ€μκ³Ό κ°λ€.
μμ°μ λλ λ°νμ(producer/publisher)λΌκ³ λΆλ¦¬λ μ λ ₯ μλΉμ€κ° λ©μμ§λ₯Ό νμ λ°ν(publish)
μλΉμ¬ λλ ꡬλ μ(consumer/subscriber)λΌκ³ λΆλ¦¬λ μλ²κ° λ©μμ§λ₯Ό λ°μ κ·Έμ λ§λ λμ μν
λ©μμ§ νλ₯Ό μ΄μ©νλ©΄ μλΉμ€ κ° / μλ² κ° κ²°ν©μ λμ¨νκ² νμ¬ μλΉμ€ κ° μμ‘΄μ±μ μ€μΌ μ μλ€. κ²°κ³Όμ μΌλ‘ κ·λͺ¨ νμ₯μ±μ λμ΄κ³ μλΉμ€μ κ°μ©μ±μ λμΌ μ μλ μν€ν μ²λ₯Ό ꡬμ±νκΈ° μ’μμ§λ€.
λ‘κ·Έ / λ©νΈλ¦ / μλν
μμ€ν μ κ·λͺ¨κ° 컀μ§μλ‘ λ‘κ·Έ / λ©νΈλ¦ / μλνμ μ€μμ±μ λμ± μ»€μ§λ€.
λ‘κ·Έ: μμ€ν μ μνλ₯Ό μΆμ λ° λ¬Έμ ν΄κ²°μ νμ©(λ¨μΌ μλΉμ€λ‘ λͺ¨μμ£Όλ λꡬ νμ©)
λ©νΈλ¦: μμ€ν μ νμ¬ μν© νμ λ° μ¬μ μ λ΅ μ립μ νμ©
μλν: μμ€ν μ λ°°ν¬ / κ΄λ¦¬ / λͺ¨λν°λ§μ μλννμ¬ μμ°μ±κ³Ό μμ μ± ν₯μ
μ€κ³ μ κ³ λ €μ¬ν
ꡬ체μ μΈ κΈ°λ₯ λͺ©λ‘κ³Ό ν΅μ¬ κΈ°λ₯
μ¬μ©μ μ
κ·λͺ¨κ° μ»€μ§ κ²½μ°λ₯Ό λλΉν νμ₯μ±(μΌλ§λ 빨리 컀μ§λμ§)
(νμ¬ μν©μ)μ¬μ© κ°λ₯ν κΈ°μ μ€ν
νμ©ν μ μλ κΈ°μ‘΄ μλΉμ€ λ° μμ€ν
μ°Έκ³ μλ£
Last updated
Was this helpful?