π μΈμ (Session) λΆμΌμΉ λ¬Έμ λ° ν΄κ²° λ°©λ²
μλ² λ€μ€ν νκ²½μμμ μΈμ λΆμΌμΉ
λ¨μΌ μλ² νκ²½μμλ sessionμ ν΅ν λ‘κ·ΈμΈμ ꡬνν λ session λΆμΌμΉ λ¬Έμ λ₯Ό μ κ²½μΈ νμκ° μλ€.
νμ§λ§ μλΉμ€κ° 컀μ§μ λ°λΌ νλμ μλ²λ‘ μ΄μνλκ²μ΄ λΆκ°λ₯ν΄μ‘λ€κ³ κ°μ ν΄λ³΄μ. κ·Έλμ μλ²λ₯Ό μ κ·Έλ μ΄λ ν΄μΌλλλ° λ€μκ³Ό κ°μ΄ λκ°μ§ λ°©μμ΄ μ‘΄μ¬νλ€.
첫λ²μ§Έ λ°©λ²μ scale-up λ°©μμ΄λ€.
μλ² μ체 μ±λ₯μ λλ € λΆνλ₯Ό 견λμ μκ² νλ λ°©μμ΄μ§λ§, μ¬μ ν μλ² ν λμ λͺ¨λ νΈλν½μ΄ μ§μ€λλ―λ‘ λ§μΌμ μλ² μ₯μ κ° μκΈΈμ μλ²κ° 볡ꡬλ λκΉμ§ μλΉμ€λ₯Ό μ€λ¨ν΄μΌ νλ μν©μ΄ λ°μν μ μλ μνμ΄ μλ€. μ¬μ©νλ €λ μλΉμ€κ° μ€λ¨λλ€λ©΄ μμ²λ λΉμ¦λμ€ μμ€(μμ΅ μμ€)μ΄ μκΈΈ μ μλ€.
λλ²μ§Έ λ°©λ²μ scale-out λ°©μμ΄λ€.
μλ²λ₯Ό μ¬λ¬λλ‘ λλ €μ κ° μλ²μ λ‘λλ°Έλ°μ±μΌλ‘ νΈλν½μ λΆμ°νκ² νλ€. κ·Έλμ μλ² νλμ μ₯μ κ° μ겨λ λ€λ₯Έ μλ²λ μ΄μμμΌλ μλΉμ€ λ¬Έμ κ° μκΈ°μ§ μλλ€.
κ·Έλ¬λ μ΄λ μλΉμ€ μ΄μ©μ λ°μνλ 컀λ€λ λ¬Έμ μ μ΄ μλλ° λ°λ‘ λ°μ΄ν° μ ν©μ±, μΈμ λΆμΌμΉ λ¬Έμ λ€.
μλνλ©΄ μ¬λ¬ λμ μλ²κ° κ°κ° μΈμ μ μ₯μλ₯Ό λ 립μ μΌλ‘ κ°κΈ° λλ¬Έμ λ°μ΄ν° λΆμΌμΉ λ¬Έμ κ° λ°μνκΈ° λλ¬Έμ΄λ€.
Scale-Up : μλ²μ μ€νμ λ리λ λ°©μ. (μλ²μ λ©λͺ¨λ¦¬μΉ΄λλ cpu λΆνμ μ κ·Έλ μ΄λνμ¬ λΆνλ₯Ό μ΅μν)
Scale-Out : μλ²μ κ°―μλ₯Ό λ리λ λ°©μ. (μ¬λ¬λμ μλ²λ₯Ό λμ΄ λΆνλ₯Ό λΆμ°)
λ‘λλ°Έλ°μ± μ΄λ?
μ¬λ¬ λμ μλ²λ₯Ό λκ³ νΈλν½μ λΆμ°μ²λ¦¬νμ¬ μλ²μ λ‘λμ¨ μ¦κ°, λΆνλ, μλμ ν λ±μ ν΄κ²°ν΄μ£Όλ μλΉμ€.
νμ μ 무λ₯Ό νμ₯μ΄ νμλ€μκ² λ°°λΆνλκ²κ³Ό κ°μ μ΄μΉμ΄λ€.
μ΄ν΄νκΈ° μ½κ² κ·Έλ¦ΌμΌλ‘ μμλ₯Ό λ€μ΄λ³΄μ.
1. μλ²λ₯Ό 3λλ₯Ό μ¦κ°μν€κ³ λ‘λλ°Έλ°μλ‘ κ° μλ²λ‘ νΈλν½ λΆμ°μ΄ λκ² μ΄μμ€μ΄λ€.
2. μ΄λ μ¬μ©μκ° μλ²1μ μ μν΄ λ‘κ·ΈμΈμ μ§νν΄ μλ²1μ μΈμ μ΄ μ μ₯λλ€
3. λ‘κ·ΈμΈ νν κ²μνμ κΈμ μ°κΈ° μν΄ μλ²μ μμ²νλλ°, λ‘λλ°Έλ°μ± μκ³ λ¦¬μ¦μΌλ‘ μΈν΄ μλ²1μ΄ μλ μλ²2λ‘ μμ²λμ΄μ§λ€.
4. νμ§λ§ μλ²2μλ μ¬μ©μμ λ‘κ·ΈμΈ μΈμ μ΄ μκΈ°λλ¬Έμ λ λ‘κ·ΈμΈνλΌλ μλ΅μ 보λ΄κ² λλ€. (λ°©κΈ λ‘κ·ΈμΈ νλλ°?)
μ΄ μ²λΌ, μλΉμ€ μμ μ μν΄ μλ²λ₯Ό λλ €λ¨λλ μλΉμ€ νμ§ μμ²΄κ° λ¨μ΄μ§λ κ²°κ³Όλ₯Ό λ§μ΄ν΄ λ²λ Έλ€.
μ΄λ¬ν μΈμ μ λ°μ΄ν° μ ν©μ± λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν λ°©λ²μλ 무μμ΄ μλμ§ μ΄ν΄λ³΄μ.
λ°μ΄ν° μ ν©μ± (data consistency) μ΄λ?
μ΄λ€ λ°μ΄ν°λ€μ κ°μ΄ μλ‘ μΌμΉν¨
μΈμ κ°μ²΄λ μ΄λ€ ννλ‘ μ΄λ£¨μ΄μ Έ μμκΉ ?
μΈμ κ°μ²΄λ Keyμ ν΄λΉνλ SESSION IDμ μ΄μ λμνλ Valueλ‘ κ΅¬μ±λμ΄ μλ€.
Valueμλ μΈμ μμ± μκ°, λ§μ§λ§ μ κ·Ό μκ° λ° Userκ° μ μ₯ν μμ± λ± μ΄ Map ννλ‘ μ μ₯λλ€.
μΈμ μ λΆμΌμΉ ν΄κ²° λ°©λ²
Sticky Session λ°©μ
κ°λ¨νκ² μκ°ν΄λ³΄λ©΄ λ‘λλ°Έλ°μκ° λλ€μΌλ‘ μ무 μλ²μκ² μμ²μ 보λ΄μ λ°μλ λ¬Έμ μ΄λκΉ, λ§μΌ ν΄λΌμ΄μΈνΈμ μμ²μ΄ μ΄λ ν μλ²μ λλ¬ν΄ μΈμ λ°μ΄ν°κ° μκ²Όλ€λ©΄, μμΌλ‘ μ΄ μλ²λ ν΄λΉ ν΄λΌμ΄μΈνΈλ§μ μμ²/μλ΅λ§ μ²λ¦¬νλλ‘ κ³ μ ν΄μ£Όλ©΄ λλ€.
Sticky Sessionμ΄λ λ§ κ·Έλλ‘ κ³ μ λ μΈμ μ μλ―Ένλ€.
Stickyλ λ²μνλ©΄ λμ μ, κ»λ±μ§ λΌλ λ»μ΄λ€. μ½κ² λ§ν΄μ ν΄λΉ μλ²μ κ»λ±μ§μ²λΌ λΆμ΄μλ€κ³ μκ°νλ©΄ λλ€.
λ€μμ sticky session λ°©μμΌλ‘ μ΄λ»κ² λ‘λ λ°Έλ°μκ° ν΄λΌμ΄μΈνΈμ μλ²μ μ°κ²°μ μ§μμν¬μ μλμ§μ κ³Όμ μ΄λ€.
- ν΄λΌμ΄μΈνΈλ μλ²μκ² μ²μ μμ²μ μ λ¬νλ€.
κ·Έλ¬λ©΄ λ‘λλ°Έλ°μλ μλ²λ€ μ€ νλμκ² μμ²μ λ³΄λ΄ μ²λ¦¬νλ€. - μλ²μμ ν΄λΌμ΄μΈνΈμ μλ΅μ λ³΄λΌ λ, Set Cookie : SERVERID=μλ²1 μ΄λ° ννλ‘ μ 보λ₯Ό μΏ ν€μ λ΄μ 보λΈλ€.
μ½κ² λ§ν΄ λλ₯Ό λ΄λΉν μλ² μ 보λ₯Ό ν΄λΌμ΄μΈνΈμ μΏ ν€μ μ μ₯νλ κ²μ΄λ€. - μ΄ν, ν΄λΌμ΄μΈνΈκ° λ€μ μλ²μ μμ²μ 보λΌλ Cookie : SERVERID=μλ²1 μ ν¨κ» 보λΈλ€
κ·Έλ¬λ©΄ λ‘λ λ°Έλ°μκ° μ°μ μ μΌλ‘ μμ²μ μΏ ν€ μ λ³΄κ° μλμ§ λΆν° νμΈνκ³ , μΏ ν€μ μ 보λ₯Ό νμΈνλ€λ©΄ ν΄λΉ μμ²μ ν΄λΉ μΏ ν€κ° μμ±λμ΄ μλ μλ²λ‘ 보λ΄μ§κ² λλ€. - λ§μ½ μ‘΄μ¬νμ§ μλ μΏ ν€λΌλ©΄, λ‘λ λ°Έλ°μμ μκ³ λ¦¬μ¦μ μν΄ μ μ λ λ€λ₯Έ μλ²μ μΏ ν€κ° μμ±λμ΄ λ€μμ λκ°μ μμ²μ΄ μ€λ©΄ κ°μ κ²½λ‘λ‘ λ§΅νμμΌ μ€ μ μλλ‘ νλ€.
μ΄λ κ² λμΌν μ¬μ©μκ° μΈμ μ΄ μλ ν΄λΉ μλ²μ κ³μ μμ²μ λ³΄λΌ μ μλλ‘, μ§μμ μΌλ‘ μλ² μ λ³΄κ° μΏ ν€λ₯Ό ν΅ν΄ μλ΅μ μ½μ λμ΄ λ³΄λ΄μ§κ² λμ΄, ν΄λΌμ΄μΈνΈμ μλ²κ° μλ‘ μ°κ²°μ μ μ§ν μ μλ κ²μ΄λ€.
μ΄λ¬ν λ°©μμ μ¬μ©νλ©΄ μ μ λ μΈμ μ λν λ°μ΄ν° λΆμΌμΉ λ¬Έμ μμ μμ λ‘μμ§ μ μκ² λλ€.
λνμ μΌλ‘ AWS ELB(Elastic Load Balancer)λ Sticky sessionμ νμ©ν μλΉμ€λ₯Ό μ 곡νλ€.
Sticky Session λ¬Έμ μ
- νΉμ μλ²μ νΈλν½μ΄ μ§μ€λλ λ¬Έμ
κ³ μ λ μΈμ μ μ¬μ©νλ€λ λ§μ μ¬μ©μκ° μ μν΄μΌ νλ μλ²κ° κ³ μ λμ΄ μκΈ° λλ¬Έμ νλμ μλ²μ νΈλν½μ΄ μ§μ€λ μ μλ€λ μνμ±μ κ°κ³ μλ€λ λ§μ΄λ€.
μ¦, λ³Έλ λͺ©μ μΈ λ‘λ λ°Έλ°μ±μ΄ μ λλ‘ μ΄λ€μ§μ§ μμ μ μλ€. - μΈμ
μ 보μ μ μ€
μλΉμ€ μ€μ λ§μΌ νλμ μλ²μ μ₯μ κ° λ°μνκ² λλ©΄ ν΄λΉ μλ²λ₯Ό μ¬μ©νλ μ¬μ©μλ€μ μΈμ μ 보λ₯Ό λͺ¨λ μκ² λλ€.
μ΄λ κ² λλ©΄ λ€λ₯Έ μλ²μμ μΈμ μΈμ¦μ λ€μ ν΄μΌ νλ λ¬Έμ κ° μκΈ°κ²λλ€.
μ΄μ²λΌ Sticky sessionμμλ μ¬μ©μμ μΈμ μ 보λ₯Ό κ°κ³ μλ μλ²λ₯Ό 1:1λ‘ λ§€νν΄μ£Όμ΄ μΈμ λΆμΌμΉλ₯Ό ν΄κ²°ν΄μ§λ§, λ¬Έμ κ° λ°μνλ©΄ Scale outμ μ₯μ μΈ νΈλν½ λΆμ°κ³Ό κ°μ©μ±μ μ λλ‘ νμ©νμ§ λͺ»νκ² λλ κ²½μ°κ° λ°μν μ μκ² λλ€.
Session Clustering λ°©μ
μμ sticky μΈμ μ κ° μλ²μ μΈμ μ μ μ₯ν΄λμλλ μΈμ λΆμΌμΉλ ν΄κ²°λμμ§λ§ λλ¦¬μ΄ μ±λ₯μ΄ μμ’μμ§λ€λ κ²°κ³Όλ₯Ό λ³μλ€.
κ·Έλ¬λ©΄ μΈμ μ 보λ₯Ό κ° μλ²λ§λ€ μ μ₯νλκ² μλ μΈμ λ°μ΄ν°λ₯Ό 볡μ¬ν΄ μλ²λ€μκ² μ νν΄ κ°μ Έλ€ μΈμ μμΌλ©΄ λμ§ μμκΉ?
μΈμ ν΄λ¬μ€ν°λ§μ μλ²λ€μ νλμ ν΄λ¬μ€ν°λ‘ λ¬Άμ΄ κ΄λ¦¬νκ³ , ν΄λ¬μ€ν° λ΄μ μλ²λ€μ΄ μΈμ μ 곡μ ν μ μλλ‘ νλ λ°©μμ΄λ€.
μλ₯Όλ€μ΄ μλ²1μμ login sessionμ΄ μ μ₯λμλ€λ©΄, μλ²2μ μλ²3μλ μλ²1μ μ μ₯λμ΄μλ μΈμ μ μ ν(볡μ¬)νλ κ²μ΄λ€.
WASλ§λ€ session clusteringμ μ§μνλ λ°©μμ΄ μ‘°κΈμ© λ€λ₯Έλ°,
κ·Έμ€ κ°μ₯ λνμ WASμΈ ν°μΊ£(Tomcat) μμλ μ΄λ»κ² Session Clusteringμ ꡬννκ³ μλμ§ μμ보μ.
Tomcat Session Clustering
Tomcatμμλ ν¬κ² λ κ°μ§ λ°©μμΌλ‘ Session Clusteringμ ꡬν κΈ°λ₯μ μ 곡νλ€.
1. All-to-All Session Replication
All-to-All λ°©μμ νλμ μΈμ ν΄λ¬μ€ν° λ΄μμ λ°μ΄ν°κ° λ³κ²½λλ©΄ λ³κ²½λ μ¬νμ΄ λ€λ₯Έ λͺ¨λ μλ²λ‘ 볡μ λλ λ°©μμΌλ‘, ν°μΊ£μμ μ 곡νλ DeltaManager ν΄λμ€λ₯Ό ν΅ν΄ ꡬνλλ€.
νΉμ μλ²μ μμ±λ μΈμ μ ν΄λ¬μ€ν°λ₯Ό μ΄λ£¨λ λͺ¨λ μλ²μ μΈμ μ 볡μ νκΈ° λλ¬Έμ ν΄λΌμ΄μΈνΈμ μμ²μ ν κ³³μΌλ‘ μ§μ νμ§ μμλ λκ³ λ€λ₯Έ μλ²λ‘ μμ²μ 보λ΄λλΌλ κ°μ μΈμ μ μ μ§ν μ μλ€.
λ§μΌ μ΄μ©νκ³ μλ μλ²μ μ₯μ κ° λ°μν΄λ λ€λ₯Έ μλ²μμ μΈμ μ μ μ§νκ³ μκΈ° λλ¬Έμ ν΄λΌμ΄μΈνΈλ λμΌν μλΉμ€ νκ²½μ μ 곡λ°μ μ μκ² λλ€.
νμ§λ§ All-to-All λ°©μμμλ λͺ¨λ μλ²κ° μ 체 μΈμ λ°μ΄ν°λ₯Ό μ μ§νκ³ μκΈ° λλ¬Έμ, λ€λ₯Έ μλ²μμ μΈμ μ μ°ΎκΈ° μν μΆκ°μ μΈ λ€νΈμνΈ I/Oκ° λ°μνμ§ μμ§λ§, κ·Έλ§νΌ λ§μ λ©λͺ¨λ¦¬κ° νμνλ€λ λ¨μ μ΄ μλ€.
κ·Έλ¦¬κ³ μΈμ μ μ μ₯ν λ μλ² μ λ§νΌ 볡μ νκ³ κ° μλ²μ μ λ¬, μ μ₯ν΄μΌνκΈ° λλ¬Έμ μλ² μμ λΉλ‘νμ¬ λ€νΈμν¬ νΈλν½μ΄ μ¦κ°νκ² λκΈ°λ νλ€.
μΆκ°μ μΌλ‘ μΈμ μ ν μμ μ€ λͺ¨λ μλ²μ μΈμ μ΄ μ νλκΈ°κΉμ§μ μκ°μ°¨λ‘ μΈν μΈμ λΆμΌμΉ λ¬Έμ μ κ°μ μμμΉ λͺ»ν λ¬Έμ κ° λ°μν κ°λ₯μ±μ΄ μ‘΄μ¬νλ€.
ν°μΊ£ 곡μ λ¬Έμμμλ All-to-All λ°©μμ μκ·λͺ¨ ν΄λ¬μ€ν° νκ²½(λ Έλκ° 4κ° λ―Έλ§)μμ μ’κ³ , μ΄λ³΄λ€ ν° ν΄λ¬μ€ν° νκ²½μμλ μΆμ²νμ§ μλλ€κ³ νλ€.
κ·Έλ¦¬κ³ DeltaManagerλ₯Ό μ¬μ©ν λ°©μμ μ ν리μΌμ΄μ μ΄ λ°°ν¬λμ§ μμ λ Έλμλ 볡μ λ₯Ό μλνκΈ° λλ¬Έμ λΆνμν νΈλν½μ μλ²μ λ°μμν€λ λ¬Έμ λ μ‘΄μ¬νλ€.
Tomcatμμλ μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λ€μμΌλ‘ μκ°ν BackupManagerλ₯Ό μ΄μ©ν λ°©λ²λ μ 곡ν΄μ€λ€.
2. Primary-Secondary Session Replication
Primay-Secondary λ°©μμ Primary μλ²μ μΈμ λ°μ΄ν°λ₯Ό Secondary(Backup) μλ²μλ§ μ 체 볡μ νμ¬ μ μ₯νλ λ°©μμΌλ‘, BackupManager ν΄λμ€λ₯Ό ν΅ν΄ μ΄ λ°©μμ μ 곡νκ³ μλ€.
All-to-All Session Replication λ°©μμ κ·Έλ₯ 무μνκ² λͺ¨λ μλ²μ 볡μ νκ³ μ μ₯νλ κ²κ³Ό λ¬λ¦¬, Primary μλ²μ Secondary(Backup) μλ²μλ§ μ 체 μΈμ
μ 볡μ νμ¬ μ μ₯νλ, λλ¨Έμ§ μ΄μΈμ μλ²λ€μλ μΈμ
μ Keyμ ν΄λΉνλ JSESSIONIDλ§ λ³΅μ , μ μ₯ν¨μΌλ‘μ¨ λ©λͺ¨λ¦¬λ₯Ό μ μ½ν μ μλ λ°©μμ΄λ€.
νμ§λ§ λ§μΌ Primary, Secondary μλ²λ₯Ό μ μΈν λ€λ₯Έ μλ²μ μΈμ
μ 보λ₯Ό μμ²ν κ²½μ° λ€μ μ¨μ ν μΈμ
μ 보λ₯Ό μ»κΈ° μν΄μλ Primary, Secondaryμ λ€μ μμ²μ 보λ΄μΌνλ€λ, μΈμ
볡μ λ₯Ό μν κ³Όμ μ΄ μνλλ λ¬Έμ μ μ΄ μ‘΄μ¬νλ€.
Primary-Secondary Session Replication λ°©μμ λΉκ΅μ λκ·λͺ¨ ν΄λ¬μ€ν° νκ²½μμ μ ν©ν λ°©μμ΄λΌκ³ νλ€.
Session Clustering λ¬Έμ μ
μμμ ν°μΊ£ μΈμ ν΄λ¬μ€ν°λ§μ μ€λͺ νλ©΄μ κ°κ°ν λ¬Έμ μ μ λν΄ μΈκΈνμ§λ§ μ·¨ν©νμ¬ μ 리νμλ©΄ λ€μκ³Ό κ°λ€.
- μλ² μΈν
μ μ΄λ €μ
μ΄ λ°©μμ scale out κ΄μ μμ μλ‘μ΄ μλ²κ° νλ λ° λλ§λ€ κΈ°μ‘΄μ μ‘΄μ¬νλ WASμ μλ‘μ΄ μλ²μ IP/Portλ₯Ό μ λ ₯ν΄μ ν΄λ¬μ€ν°λ§ ν΄μ€μΌ νλ λΆνΈν¨μ΄ μλ€. - μΆκ° λ©λͺ¨λ¦¬ λΉμ©
μλ²λ§λ€ λμΌν μΈμ μ 보λ₯Ό κ°μ§κ³ μμ΄μΌ λκΈ° λλ¬Έμ, μλ²κ° νμ₯λ μλ‘ λ³΅μ ν΄μΌ ν μΈμ λ°μ΄ν°κ° λμ΄λκ³ μ΄λ μΆκ°μ μΈ μ€λ²ν€λλ‘ μ΄μ΄μ§λ€.
Tomcatμ μλ‘ λ€μμ λ, λͺ¨λ λ°μ΄ν°λ₯Ό κ°κ°μ Tomcat λ Έλμκ² μ λ¬ν΄μΌ ν΄μΌ νκ³ λ°°ν¬νλ λ Έλκ° μλ κ²½μ°μλ 볡μ¬λ₯Ό μ§ννκΈ° λλ¬Έμ λΆνμνκ² λ©λͺ¨λ¦¬λ₯Ό μ°¨μ§λλ€.
μ¦, ν¨μ¨μ μΈ λ©λͺ¨λ¦¬ κ΄λ¦¬κ° μ΄λ£¨μ΄μ§μ§ μλλ€. - λ€νΈμν¬ νΈλν½ μ¦κ°
λ°μ΄ν° λ³κ²½μ΄ λ°μν λ λ§λ€ μΈμ μ μ ν(볡μ¬)νλ μμ μ΄ μΌμ΄λκΈ° λλ¬Έμ λ€νΈμν¬ μμ² νΈλν½μ΄ μ¦κ°νκ² λλ€.
κ·Έλ¦¬κ³ μλ²κ° λμ΄λ μλ‘ μ΄ νΈλν½μ λμ± μ¬ν΄μ§ κ²μ΄λ€.
λν, λ³΅μ¬ λΏλ§ μλλΌ μλ²κ° λμ΄λ¨μ λ°λΌ μΈμ μ μ μ₯νκ³ μ°Ύμμ€λ κ³Όμ μμ μΆκ°μ μΈ νΈλν½μ΄ λ°μ ν μλ μμ΄ νμ₯μ νκ³κ° μλ€. - μμ°¨λ‘ μΈν μΈμ
λΆμΌμΉ λ°μ
μΈμ μ ν μμ μ€ λͺ¨λ μλ²μ μΈμ μ΄ μ νλκΈ°κΉμ§μ μκ°μ°¨λ‘ μΈν μΈμ λΆμΌμΉ λ¬Έμ μ κ°μ μμμΉ λͺ»ν λ¬Έμ κ° λ°μν κ°λ₯μ±μ΄ μ‘΄μ¬νλ€.
μ΄μ²λΌ μΈμ ν΄λ¬μ€ν°λ§μ sticky μΈμ μ λ¬Έμ μ μΈ νΉμ μλ²μλ§ νΈλν½μ΄ λͺ°λ¦¬λ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμλ€.
κ·Έλ¬λ μΈμ ν΄λ¬μ€ν°λ§μ΄λ sticky μΈμ μ΄λ μλ²κ° μΈμ μ΄λΌλ μν(λ°μ΄ν°)λ₯Ό κ°μ§λ€λ κ²μ λ³ν¨μ΄ μλ€λ νΉμ§μ΄ μλ€
"μλ²κ° μν(λ°μ΄ν°)λ₯Ό κ°μ§λ€"λΌλ μλ―Έλ Scale out λ°©μμΌλ‘ νμ₯μ νμ λ μλ²κ° κ°μ§κ³ μλ λ°μ΄ν°λ₯Ό νμ₯νλ μλ²μλ λκ°μ΄ λ§μΆ°μ€μΌ νλ€λ λ»μ΄λ€. μ΄λ 곧 μ€λ²ν€λλ‘ μ΄μ΄μ§λ€.
μ 리νλ©΄, μΈμ ν΄λ¬μ€ν°λ§μ μ ν©μ± μ΄μλ₯Ό ν΄κ²°ν μ μμ§λ§, μ±λ₯μ μΈ νκ³κ° μ‘΄μ¬νλ€κ³ λ§ ν μ μλ€.
Session Storage λ°©μ
κ·Έλ λ€λ©΄ μμ λ λ°©μμ λ¨μ μ 보μνμ¬ λ€μ€ μλ²μμ μΈμ μ 곡μ ν μ μλ λ°©λ²μ΄ μμκΉ?
λͺ¨λ μλ²μ μΌμΌν μΈμ λ©λͺ¨λ¦¬λ₯Ό 볡μ /μ μ₯νλ κ²μ΄ λλΉλΌλ©΄, κ·ΈλΌ λ³λμ μΈμ μ μ₯μλ₯Ό μΈλΆμμ μμ±νκ³ κ° μλ²λ€μ΄ κ°μ Έμ μ¬μ©νλ©΄ λμ§ μμκΉ?
μΈμ μ€ν 리μ§λ κΈ°μ‘΄μ μλ² λ΄ μΈμ μ μ₯μλ₯Ό μ΄μ©νμ§ μκ³ , λ‘컬 μλ²μμ λΆλ¦¬ν΄ λ³λμ μΈμ μ μ₯μλ₯Ό λκ³ μλ²λ€μ΄ μ΄λ₯Ό 곡μ ν¨μΌλ‘μ¨ μΈμ λΆμΌμΉλ₯Ό ν΄κ²°νλ λ°©μμ΄λ€.
λ°λΌμ μλ‘μ΄ μλ²λ₯Ό μΆκ°νλλΌλ μΆκ°ν μλ²μλ§ μΈμ μ μ₯μ μ 보λ₯Ό λͺ μν΄μ£ΌκΈ°λ§ νλ©΄ λκΈ° λλ¬Έμ κΈ°μ‘΄ μλ²μ μμ μ΄ λ°μνμ§ μλλ€λ μ₯μ μ΄ μκ² λλ€.
κ·Έλμ μΈμ μ μ μ₯ν λ μΈμ μ 볡μ ν΄ λ€λ₯Έ μλ²λ€μ λ³΄λΌ νμκ° μμ΄ WASλ€λΌλ¦¬ λΆνμν λ€νΈμν¬ ν΅μ κ³Όμ μ μ§ννμ§ μμλ λμ΄ μ±λ₯λ©΄μμλ μ 리νλ€.
λν, ν μλ²μ μ₯μ κ° λ°μνλλΌλ μΈμ μ μ΄μ λ 립λμ΄ λ³λλ‘ μ‘΄μ¬νκΈ° λλ¬Έμ μΈμ μ νμ©ν μλΉμ€μ μν₯μ λ―ΈμΉμ§ μλλ€.
Session Storage μ’ λ₯
μΈμ Storageμ μ’ λ₯μλ λκ°μ§κ° μλ€.
λ¨Όμ 첫λ²μ§Έλ‘ Diskλ°©μμΌλ‘ λμλ λ°μ΄ν°λ² μ΄μ€κ° μκ³ λλ²μ§Έλ‘ In-Memory κΈ°λ°μ λ°μ΄ν°λ² μ΄μ€κ° μλ€.
ν΄λΉ λ°©λ²μΌλ‘ μΈμ μ μ ν©μ± λ¬Έμ λ₯Ό ν΄κ²°ν λ μΈμ μ μ₯μλ‘ μ΄λ€κ²μ μ¬μ©ν μ§ κ³ λ―Όν΄λ³΄κ³ , κ·Έμ λ°λ₯Έ νλΉν μ΄μ κ° λ·λ°μΉ¨ λμ΄μΌ νλ€.
1. Disk Database (MySql, Oracle)
λ§ κ·Έλλ‘ μΈμ λ°μ΄ν°λ₯Ό λμ€ν¬μ μ μ₯νλ κ²μ΄λ€.
λ°λΌμ μ μμ΄ κ³΅κΈμ΄ μλλ λμ€ν¬μλ μ 보λ₯Ό μμ§ μκ³ μ μ μ§νλ€.
νμ§λ§ ν° λ¨μ μ΄ νλ μλλ° μλκ° λ무 λ리λ€λ κ²μ΄ λ§Ήμ μ΄λ€.
2. In-Memory (Redis / Memchached)
In-Memoryλ λ°μ΄ν°λ₯Ό λ©λͺ¨λ¦¬μ μ μ₯νλ λ°©μλ€.
κ·Έλμ I/Oμλκ° λμ€ν¬μ λΉκ΅ν΄μ λ§€μ° λΉ λ₯΄λ€.
νμ§λ§ μ΄κ²λν λ¨μ μ΄ μλλ° μ μμ΄ κ³΅κΈλμ§ μμΌλ©΄ κΈ°μ΅νκ³ μλ λ°μ΄ν°λ₯Ό λͺ¨λ μμ΄λ²λ¦¬κ² λλ€.
λκ°μ§ λ°©μμ€μ μΈμ λ°μ΄ν°λ₯Ό μ μ₯νλ€λ κ΄μ μμ μ΄λκ²μ΄ μ’μκΉ?
μκ°ν΄λ³΄λ©΄ Sessionμ μꡬμ μΈ μ μ₯μ΄ νμνμ§ μλλ€.
μλ‘, κ°μΈμ λ³΄κ° λ μ€μν μμ¦μ μ§μ ν μκ°μ λκΈ°λ©΄ μλμΌλ‘ λ‘κ·Έμμλκ² μ²λ¦¬ λμ΄ μλ€.
κ·Έλ κΈ° λλ¬Έμ μΈμ μ 보λ μꡬμ μΈ μ 보 μ μ₯μ μ½μνλ€λ λμ€ν¬ λ°©μμ λ°μ΄ν°λ² μ΄μ€λ 맀λ ₯μ μ΄μ§ λͺ»νλ€κ³ λ³Ό μ μλ€.
λμ μ λμ€ν¬μ λΉν΄ μλμ μ μ μΆλ ₯ μλκ° λΉ λ₯Έ In-Memory λ°©μμ΄ λ μ ν©νλ€.
Session Storage λ¬Έμ μ
- λ¬Έμ κ° μκΈ°λ©΄ λͺ¨λ μλ²κ° μ₯μ
μΈμ ν΄λ¬μ€ν° κ°μκ²½μ° νλμ μλ²μ μ₯μ κ° μ겨λ λλ¨Έμ§ μλ²μ 미리 볡μ λ₯Ό ν΄λμκΈ° λλ¬Έμ λ¬Έμ λ μλ€.
κ·Έλ¬λ μΈμ μ μ μ₯νκ³ μλ Session storage μ체μ μ₯μ κ° λ°μν κ²½μ° λͺ¨λ μΈμ μ μμ΄λ²λ € μΈμ μ μ¬μ©νλ λͺ¨λ μλ²μ μν₯μ΄ λΌμΉλ μνμ΄ μλ€.
κ·Έλμ μ΄λ¬ν λ¬Έμ λ₯Ό 보μνκΈ° μν΄ λμΌν μΈμ μ μ₯μλ₯Ό νλ λ ꡬμ±νλ λ°©λ²(λ§μ€ν°-μ¬λ μ΄λΈ 볡μ )μΌλ‘ ν΄λΉ λ¬Έμ λ₯Ό ν΄κ²°νκ³€ νλ€. - μ±λ₯μ μΈ λ§μ΄λμ€
λ³λμ Session storageλ‘λΆν° μΈμ μ λΆλ¬μμΌ νκΈ° λλ¬Έμ μΆκ°μ μΈ λ€νΈμνΈ I/Oκ° λ°μνλ€λ μ μ΄λ€.
μΈμ μ μΈλΆμμ κ°μ Έμ μ¬μ©νκΈ° λλ¬Έμ λ‘컬 λ©λͺ¨λ¦¬μ μ μ₯ν΄ μ¬μ©νλ κ²λ³΄λ€ μ±λ₯μ μΈ λ©΄μμ λ¨μ΄μ§ μ λ°μ μλ€.
# μ°Έκ³ μλ£
https://liasn.tistory.com/3
https://1-7171771.tistory.com/126
https://d2.naver.com/helloworld/284659?source=post_page-----f1fd4ceecbc7----------------------
https://hyuntaeknote.tistory.com/6