[νΌμ 곡λΆνλ λ€νΈμν¬] 7μ₯. λ€νΈμν¬ μ¬ν
μ΄ κΈμ γνΌμ 곡λΆνλ λ€νΈμν¬γ μ± λ΄μ©μ μ 리ν λ΄μ©μ λλ€.
μ μκΆ λ¬Έμ μ μμ νκ² μ΅λλ€.
1. μμ μ μΈ μλΉμ€λ₯Ό μν κΈ°μ
* μμ μ±: νΉμ κΈ°λ₯μ μΈμ λ κ· μΌν μ±λ₯μΌλ‘ μνν μ μλ νΉμ±
* κ°μ©μ±: μμ μ±μ μ λλ₯Ό μμΉλ‘ λνλΈ μ λ. μ»΄ν¨ν° μμ€ν μ΄ νΉμ κΈ°λ₯μ μ€μ λ‘ μνν μ μλ μκ°μ λΉμ¨. μ 체 μ¬μ© μκ° μ€μ μ μμ μΈ μ¬μ© μκ°.
κ°μ©μ± = μ νμ / (μ νμ + λ€μ΄νμ) |
* κ³ κ°μ©μ±(High Availability): 99.999% νμ΄λΈ λμΈμ€. λ€μ΄νμμ΄ 1λ μ 5.26λΆ, 1κ°μ 26.3μ΄.
=> λ€μ΄νμμ΄ λ°μνλ μμΈμ λͺ¨λ μ°Ύμ μμ²μ μΌλ‘ μ°¨λ¨νκΈ°λ μ΄λ ΅κΈ°μ, λ¬Έμ κ° λ°μνλλΌλ κ³μ κΈ°λ₯ν μ μλ λ₯λ ₯μΈ 'κ²°ν¨κ°λ΄'κ° μ€μνλ€.
1) μ΄μ€ν: μμ€ν μ μ²΄κ° μ€λ¨λ μ μλ λμ(λ¨μΌ μ₯μ μ Single Point Of Failure)μ λ°©μ§νκΈ° μν΄ μλΉ(λ°±μ )μ λλ κΈ°μ .
- active-stanby: ν μμ€ν μ κ°λνκ³ , λ€λ₯Έ μμ€ν μ λ°±μ μ©λλ‘ λκΈ° μνλ‘ λλ μ΄μ€ν κ΅¬μ± λ°©μ.
νλμ μ₯λΉλ₯Ό μ¬μ©ν λμ λΉν΄ μ±λ₯μμ ν° λ³νλ₯Ό κΈ°λνκΈ°λ μ΄λ ΅λ€.
- active-active: λ μμ€ν λͺ¨λ κ°λ μνλ‘ λλ κ΅¬μ± λ°©μ.
μκ°μ μΌλ‘ λ€λ₯Έ μμ€ν μ λΆνκ° κΈμ¦ν μ μκ³ μ΄λ‘ μΈν΄ μΆκ°μ μΈ λ¬Έμ κ° λ°μν μ μλ€.
=> 3κ° μ΄μ 'λ€μ€ν' λ°©μμΌλ‘ μ₯λΉλ₯Ό ꡬμ±νλ©΄ λμ± μμ μ μΈ μ΄μμ΄ κ°λ₯νλ€.
ex) ν°λ°(teaming) - Window μμ μ£Όλ‘ μ¬μ©, λ³Έλ©(bonding) - Linux μμ μ£Όλ‘ μ¬μ©.
: μ¬λ¬ κ°μ λ€νΈμν¬ μΈν°νμ΄μ€(NIC) λ₯Ό μ΄μ€ν/λ€μ€ννμ¬ λ§μΉ λ λ°μ΄λκ³ μμ μ μΈ μ±λ₯μ 보μ ν νλμ μΈν°νμ΄μ€μ²λΌ 보μ΄κ² νλ κΈ°μ .
2) λ‘λ λ°Έλ°μ±
: λ‘λ λ°Έλ°μμ μν΄ νΈλν½μ κ³ λ₯΄κ² λΆλ°°νλ κΈ°μ . (μλ² μνλ₯Ό κ²μ¬νλ ν¬μ€ μ²΄ν¬ κΈ°λ₯λ νλ€.)
ex) λ‘λ λ°Έλ°μ κΈ°λ₯μ΄ μλ μ₯μΉλ€: L4 μ€μμΉ, L7 μ€μμΉ
ex) λ‘λ λ°Έλ°μ κΈ°λ₯μ μ 곡νλ μννΈμ¨μ΄λ€: HaProxy, Envoy, Nginx.
μ΄μ€ν/λ€μ€νλ μλ²μ ν΄λΌμ΄μΈνΈ μ¬μ΄μ μμΉνμ¬ κ° μλ²μ κ· λ±νκ² λΆλ°°νλ μν μ νλ€.
* λ‘λ λ°Έλ°μ± μκ³ λ¦¬μ¦
- λΌμ΄λ λ‘λΉ μκ³ λ¦¬μ¦: λ¨μν μλ²λ₯Ό λμκ°λ©° λΆνλ₯Ό μ λ¬νλ μκ³ λ¦¬μ¦
- μ΅μ μ°κ²° μκ³ λ¦¬μ¦: μ°κ²°μ΄ μ μ μλ²λΆν° μ°μ μ μΌλ‘ λΆνλ₯Ό μ λ¬νλ μκ³ λ¦¬μ¦
- 무μμ μκ³ λ¦¬μ¦
- μλ΅ μκ°μ΄ κ°μ₯ μ§§μ μλ²λ₯Ό μ ννλ μκ³ λ¦¬μ¦
λ±
=> λΌμ΄λ λ‘λΉ μκ³ λ¦¬μ¦, μ΅μ μ°κ²° μκ³ λ¦¬μ¦μλ 'κ°μ€μΉ'λ₯Ό λΆμ¬ν μ μλ€. μλ² κ° μ±λ₯μ΄ λ€λ₯Έ κ²½μ° κ°μ€μΉλ₯Ό μ¬μ©ν΄μ λ‘λ λ°Έλ°μ±μ μ‘°μ νλ€.
cf. ν¬μλ νλ‘μμ 리λ²μ€ νλ‘μ
ν΄λΌμ΄μΈνΈμ μλ² μ¬μ΄μλ μλ§μ μλ²λ€μ΄ μ‘΄μ¬νλ€.
=> ν΄λΌμ΄μΈνΈμ μ€λ¦¬μ§ μλ²(Origin Server) μ¬μ΄μ μλ§μ μ€κ° μλ²κ° μ‘΄μ¬νλ€.
HTTP μ€κ° μλ² μ νμΌλ‘ νλ‘μ(Proxy)μ κ²μ΄νΈμ¨μ΄(Gateway)κ° μλ€.
- νλ‘μ(Proxy): ν΄λΌμ΄μΈνΈκ° μ νν λ©μμ§ μ λ¬ λ리μ.
- κ²μ΄νΈμ¨μ΄(Gateway): μμλ°μ΄λ μ°κ²°μ λν΄ μ€λ¦¬μ§ μλ² μν , λ€λ₯Έ μΈλ°μ΄λ μλ²λ‘ μ λ¬νλ μ€κ°μ μν μ νλ€.
=> νλ‘μλ ν΄λΌμ΄μΈνΈμ κ°κΉκ² μλ μ€κ° μλ²μ΄κ³ , κ²μ΄νΈμ¨μ΄λ μ€λ¦¬μ§ μλ²μ κ°κΉκ² μλ μ€κ° μλ² μ΄λ€.
2. μμ μ μΈ ν΅μ μ μν κΈ°μ
1) λμΉ ν€ μνΈν λ°©μ: μνΈνμ 볡νΈνμ λμΌν ν€λ₯Ό μ¬μ©νλ λ°©μ
=> ν€κ° μ μΆλλ©΄ ν° λ¬Έμ κ° λ°μνλ―λ‘ ν€λ₯Ό μμ νκ² μ λ¬νλ κ²μ΄ μ€μνλ€. νμ§λ§, ν€λ₯Ό μμ νκ² μ λ¬ν κ²μ΄μμΌλ©΄ λ©μΈμ§λ₯Ό μμ νκ² μ λ¬νλ κ² λμΌλ―λ‘ μ’μ λ°©μμ μλλ€.
=> ν€λ₯Ό μμ νκ² μ μ‘νκΈ°λ μ΄λ ΅μ§λ§ λΆνκ° μ μ΄μ μνΈν/볡νΈνλ₯Ό λΉ λ₯΄κ² μνν μ μλ€.
2) κ³΅κ° ν€ μνΈν λ°©μ: μνΈνμ 볡νΈνμ μλ‘ λ€λ₯Έ ν€λ₯Ό μ¬μ©νλ λ°©μ. 곡κ°ν€λ‘ μνΈν, κ°μΈν€λ‘ 볡νΈν.
=> μνΈν/볡νΈνμ μκ°κ³Ό λΆνκ° μλμ μΌλ‘ λ§μ΄ λ€μ§λ§ ν€λ₯Ό μμ νκ² κ³΅μ ν μ μλ€.
ν΄λΌμ΄μΈνΈκ° μλ²μκ² λ¬Έμμ΄μ μ μ‘νκ³ μ ν λ,
μλ²μκ² κ³΅κ°ν€λ₯Ό μμ²νλ€. -> μλ²κ° ν΄λΌμ΄μΈνΈμκ² κ³΅κ°ν€λ₯Ό μ€λ€. -> μλ²μ κ³΅κ° ν€λ‘ λ©μμ§λ₯Ό μνΈνν΄μ μλ²μ μ λ¬νλ€. -> μλ²λ μμ μ κ°μΈν€λ‘ λ©μμ§λ₯Ό 볡νΈννμ¬ νμΈνλ€.
3) μΈμ ν€: λμΉν€ μνΈν λ°©μκ³Ό 곡κ°ν€ μνΈν λ°©μμ μ₯λ¨μ μΌλ‘ μΈν΄ λ λ°©μμ ν¨κ» μ¬μ©νλ λ°©μμ μ¬μ©νλ κ²½μ°κ° λ§λ€.
=> κ³΅μΊ ν€λ‘ λμΉ ν€λ₯Ό μνΈννκ³ , κ°μΈ ν€λ‘ μνΈνλ λμΉ ν€λ₯Ό 볡νΈν νλ λ°©μ.
4) μΈμ¦μμ λμ§νΈ μλͺ
* 곡κ°ν€ μΈμ¦μ(Public key certificate)
: κ³΅κ° ν€μ κ³΅κ° ν€μ μ ν¨μ±μ μ μ¦νκΈ° μν μ μ λ¬Έμ.
μΈμ¦μλ μΈμ¦κΈ°κ΄(CA; Certification Authority)μ΄λΌλ μ 3μ κΈ°κ΄μμ λ°κΈνλ€.
μΈμ¦μμλ μ΄ κ³΅κ° ν€κ° μ§μ§λΌλ 보μ¦μ νλ 'μλͺ κ°(signature)'μ΄ μλ€.
μλͺ κ°μ μΈμ¦μ λ΄μ©μ λν ν΄μ κ°μ CAμ κ°μΈ ν€λ‘ μνΈννλ λ°©μμΌλ‘ λ§λ€μ΄μ§λ€.
* 곡κ°ν€ μΈμ¦μ κ²μ¦
μΉ λΈλΌμ°μ λ₯Ό ν΅ν΄ μλ²λ‘λΆν° μλͺ κ°μ΄ λΆμ μΈμ¦μλ₯Ό μ λ¬λ°μμ λ,
μΈμ¦μ κ²μ¦μ μν΄ μλͺ κ°κ³Ό μΈμ¦μλ₯Ό λΆλ¦¬ν΄μ λΉκ΅ κ²μ¦νλ€.
μλͺ κ°μ CAμ 곡κ°ν€λ‘ 볡νΈν νλ€. -> μΈμ¦μ λ΄μ©μ λν ν΄μ κ°μ μ»λλ€.
μΈμ¦μ λ°μ΄ν°μ λν ν΄μ κ°μ μ§μ ꡬνλ€.
=> μλͺ κ°μ CAμ 곡κ°ν€λ‘ 볡νΈννμ¬ μ»μ ν΄μκ°κ³Ό μΈμ¦μ λ°μ΄ν°μ ν΄μκ°μ μ§μ ꡬν κ°μ΄ μΌμΉνλ μ§ λΉκ΅νμ¬ κ²μ¦νλ€.
5) HHTPS: SSLκ³Ό TLS
μνΈν λ°©μκ³Ό 곡κ°ν€ μΈμ¦μλ₯Ό κΈ°λ°μΌλ‘ λμνλ νλ‘ν μ½. SSL(Secure Sockets Layer)κ³Ό TLS(Transfport Layer Security)
SSLκ³Ό TLS λ₯Ό μ¬μ©νλ λνμ μΈ νλ‘ν μ½ = HTTPS(HTTP over TLS)
* HTTPS κ° μ΄λ»κ² λμνλμ§
β TCP μ°λ¦¬ μ¨μ΄ νΈλμ °μ΄ν¬: TCP μ°κ²°μ μν΄ λ νΈμ€νΈκ° SYN, SYN+ACK, ACK νλκ·Έκ° μ€μ λ TCP μΈκ·Έλ¨ΌνΈλ₯Ό μ£Όκ³ λ°λλ€.
β‘ TLS νΈλμ °μ΄ν¬: μνΈν ν΅μ μ μν ν€λ₯Ό κ΅ννλ€. μ¬μ©κ°λ₯ν μνΈν λ°©μκ³Ό ν΄μν¨μλ₯Ό λ΄μ μ λ³΄μΈ μνΈ μ€μνΈλ₯Ό μ λ¬νλ€.
μνΈν μκ³ λ¦¬μ¦ ν΄μν¨μ
TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
...
β’ μνΈνλ λ©μμ§ μ‘μμ