λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ’» DEV/Network

[Network] 이쀑화 기술

by vodkassi 2021. 12. 15.
728x90

μ„œλ²„κ°€ 잘 κ΅΄λŸ¬κ°€κΈ° μœ„ν•΄μ„œλŠ” μ–΄λ–€ μš”μ†Œκ°€ ν•„μš”ν• κΉŒ? κΉ”λ”ν•œ μ½”λ“œλ„, 획기적인 κΈ°νšλ„ λͺ¨λ‘ μ€‘μš”ν•œ μš”μ†Œμ΄κ² μ§€λ§Œ, 사싀 κ°€μž₯ 근본이 λ˜λŠ” 것은 λ„€νŠΈμ›Œν¬ 인프라이닀. λΉ„μ¦ˆλ‹ˆμŠ€μ—λŠ” Time-to-Market (TTM, μ œν’ˆμ΄ 개발되고 μ‹€μ œλ‘œ '판맀'λ˜κΈ°κΉŒμ§€ κ±Έλ¦¬λŠ” μ‹œκ°„) μ΄λΌλŠ” 것이 μ‘΄μž¬ν•˜λŠ”λ°, TTM 이 κΈΈμ–΄μ§ˆμˆ˜λ‘ 손싀이 λ°œμƒν•˜κ²Œ λœλ‹€. λ”°λΌμ„œ 이λ₯Ό 쀄이기 μœ„ν•œ 방법을 찾게 λ˜λŠ”λ°, 여기에 κ°€μž₯ 큰 영ν–₯을 λ―ΈμΉ˜λŠ” 것이 λ°”λ‘œ μΈν”„λΌμ˜ κ°€μš©μ„±, 연속성, μ•ˆμ •μ„±μ΄λ‹€. μ–΄λ €μš΄ 말 κ°™μ•„ λ³΄μ΄μ§€λ§Œ, κ²°κ΅­ 인프라가 λŠκΈ°μ§€ μ•Šκ³  계속 κ³΅κΈ‰λ˜λŠ” 것이 μ€‘μš”ν•˜λ‹€λŠ” 것이닀.

 

μ΄λ•Œ, "λŠκΈ°μ§€ μ•Šκ³ " 에 κ°€μž₯ 치λͺ…적일 수 μžˆλŠ” 것이 SPoF (Single Point of Failure, 단일 μž₯애점) 이닀. SPoF λŠ” μ‹œμŠ€ν…œ ꡬ성 μš”μ†Œ ν•˜λ‚˜κ°€ λ™μž‘ν•˜μ§€ μ•ŠμœΌλ©΄ 전체 μ‹œμŠ€ν…œμ΄ μ€‘λ‹¨λ˜λŠ” μš”μ†ŒμΈλ°, SPoF 으둜 인해 μ„œλΉ„μŠ€κ°€ μ€‘λ‹¨λœ λŒ€ν‘œμ μΈ 사둀λ₯Ό λ‹€μŒ κΈ€μ—μ„œ 확인할 수 μžˆλ‹€.

 

 

10μ›” 4일자 페이슀뢁 μž₯μ•  원인 νŒŒν—€μΉ˜κΈ°

μ§€λ‚œ 10μ›”, μ „ μ„Έκ³„μ μœΌλ‘œ 페이슀뢁 μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•  수 μ—†λŠ” λŒ€κ·œλͺ¨ μž₯μ• κ°€ λ°œμƒν–ˆμ—ˆλ‹€. 이와 κ΄€λ ¨λœ 글을 μž‘μ„±ν•΄ λ‘μ—ˆλŠ”λ°, μ—…λ‘œλ“œ μ‹œκΈ°λ₯Ό 놓쳐 μ €μž₯만 ν•΄λ‘μ—ˆλ‹€κ°€ SPoF κ΄€λ ¨ λ‚΄μš©μ„ ν¬μŠ€νŒ…ν• 

haeunyah.tistory.com

 

SPoF 없이 인프라λ₯Ό μ•ˆμ •μ μœΌλ‘œ μœ μ§€ν•΄μ£ΌλŠ” μš”μ†Œμ€‘ ν•˜λ‚˜κ°€ 이쀑화이닀. 이쀑화가 무엇이며, μ–΄λ–€ κΈ°μˆ λ“€μ΄ ν™œμš©λ˜λŠ”μ§€ μ•Œμ•„λ³΄λ„λ‘ ν•˜μž. 

 

✨  이쀑화 κΈ°μˆ μ΄λž€? 

μ΄μ€‘ν™”λž€, μ‹œμŠ€ν…œμ˜ μž₯μ• λ₯Ό λŒ€λΉ„ν•˜λŠ” λ“± μ•ˆμ •μ„±μ„ κ°•ν™”ν•˜κΈ° μœ„ν•΄ 같은 μ‹œμŠ€ν…œμ„ 두 벌 λ˜λŠ” κ·Έ μ΄μƒμœΌλ‘œ λ§Œλ“€μ–΄ 두고 ν•˜λ‚˜μ˜ μ‹œμŠ€ν…œμ— μž₯μ• κ°€ 생겼을 λ•Œ μ¦‰μ‹œ λ‹€λ₯Έ μ‹œμŠ€ν…œμœΌλ‘œ μ „ν™˜λ˜λ„λ‘ λ§Œλ“€μ–΄μ§„ ꡬ쑰이닀. λͺ¨λ“  인프라에 이쀑화λ₯Ό κ³ λ €ν•΄μ•Ό νŠΉμ • 지점에 λ¬Έμ œκ°€ λ°œμƒν•˜λ”λΌλ„, μ„œλΉ„μŠ€λ₯Ό 계속 μ œκ³΅ν•  수 μžˆλ‹€. 즉, Fault Tolerance (μž₯μ•  ν—ˆμš©, νŠΉμ • 인프라에 μž₯μ• κ°€ λ°œμƒν•΄λ„ μ„œλΉ„μŠ€λ₯Ό 계속 μ œκ³΅ν•  수 μžˆλŠ” 것) κ°€ κ°€λŠ₯ν•΄μ§„λ‹€λŠ” 것이닀. 

 

이쀑화 μ‹œμŠ€ν…œ μ˜ˆμ‹œ 

 

μ΄μ€‘ν™”λŠ” ꡬ체적으둜 두 가지 ꡬ쑰둜 μš΄μ˜λœλ‹€. 

 

πŸ“ μ•‘ν‹°λΈŒ-μ•‘ν‹°λΈŒ (Active-Active)

λ™μΌν•œ 두 벌의 μ‹œμŠ€ν…œμ„ 같이 μš΄μ˜ν•˜λŠ” ν˜•νƒœμ΄λ©°, ν•˜λ‚˜μ˜ μ‹œμŠ€ν…œμ— μž₯μ• κ°€ 생기면 μž₯μ• κ°€ λ°œμƒν•˜μ§€ μ•Šμ€ λ‚˜λ¨Έμ§€ ν•˜λ‚˜μ˜ μ‹œμŠ€ν…œμœΌλ‘œλ§Œ κ°€λ™ν•œλ‹€. μž₯점은 처리 κ°€λŠ₯ν•œ 전체 μš©λŸ‰μ΄ μ¦κ°€ν•œλ‹€λŠ” 것이며, 단점은 μž₯μ•  λ°œμƒ μ‹œ μš©λŸ‰μ΄ 절반으둜 쀄어듀어 μ„œλΉ„μŠ€κ°€ μ •μƒμ μœΌλ‘œ μž‘λ™ν•˜μ§€ μ•Šμ„ 수 μžˆλ‹€λŠ” 것과 μ΄ˆκΈ° ꡬ성 λ³΅μž‘ν•˜λ©°, 운영 λΉ„μš©μ΄ λ†’λ‹€λŠ” 것이닀. 

 

πŸ“ μ•‘ν‹°λΈŒ-μŠ€νƒ λ°”μ΄ (Active-Standby)

λ™μΌν•œ 두 벌의 μ‹œμŠ€ν…œμ„ λ§Œλ“€μ–΄ λ‘λ˜, ν•˜λ‚˜μ˜ μ‹œμŠ€ν…œμœΌλ‘œλ§Œ μš΄μ˜ν•˜λ©°, 운영 μ‹œμŠ€ν…œμ— μž₯μ• κ°€ λ°œμƒν•  경우 λ‹€λ₯Έ μ‹œμŠ€ν…œμœΌλ‘œ μ¦‰μ‹œ μ „ν™˜ν•œλ‹€. λ‹¨μ μ€ μžμ›μ˜ λΉ„νš¨μœ¨μ„± (ν•˜λ‚˜λŠ” 항상 λŒ€κΈ° μƒνƒœμ— λ†“μž„) 이 λ°œμƒν•  수 μžˆλ‹€λŠ” 것이닀. 

 

AWS κ°€ μžμ—° μž¬ν•΄μ— λŒ€μ‘ν•˜λŠ” 방법

물리적으둜 같은 μœ„μΉ˜μ— μ„œλ²„λ‚˜ μ‹œμŠ€ν…œ 이쀑화λ₯Ό ν•œλ‹€λ©΄ μ „λ ₯ λ¬Έμ œλ‚˜ μž¬λ‚œ μƒν™©μ—μ„œ 데이터 손싀이 λ°œμƒν•  수 μžˆλ‹€. 이λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ AWS μ—μ„œλŠ” μ—¬λŸ¬ 개의 κ°€μš© μ˜μ—­ μ„€μΉ˜ν•œλ‹€. 즉, 물리적으둜 λ–¨μ–΄μ ΈμžˆλŠ” μ˜μ—­μΈ Availibility Zone 을 μš΄μš©ν•˜κ³  μžˆλ‹€. ν•˜λ‚˜μ˜ λ¦¬μ „μ—μ„œλ„ μ—¬λŸ¬ κ°€μš© μ˜μ—­ (AZ) 에 μžμ›μ„ λ³΅μ œν•¨μœΌλ‘œμ¨ κ³ κ°€μš©μ„±μ„ 보μž₯ν•œλ‹€. 
 
ν•œκ΅­μ—λŠ” ν˜„μž¬ 총 4개의 zone이 있으며 이λ₯Ό 논리적인 λ‹¨μœ„ AZ-a, AZ-b, AZ-c, AZ-d 둜 κ΅¬λΆ„ν•˜κ³  μžˆλ‹€. 

좜처: AWS (https://aws.amazon.com/ko/blogs/korea/aws-ready-for-the-next-storm/)

 

이쀑화λ₯Ό κ΅¬μ„±ν•˜λŠ” κΈ°μˆ μ—λŠ” LACP, MC-LAG, κ²Œμ΄νŠΈμ›¨μ΄ 이쀑화 λ“±μ˜ 기술이 μžˆμ§€λ§Œ, 이번 κΈ€μ—μ„œλŠ” LACP 만 닀룬닀. 

 

✨  LACP 

LACP (Link Aggregation Control Protocol) λŠ” IP λ²ˆλ“€λ§μœΌλ‘œλ„ λΆˆλ¦¬λŠ” κΈ°μˆ μ΄λ‹€. LACP λŠ” μ—¬λŸ¬κ°œμ˜ 물리적 ν¬νŠΈλ“€μ„ λ¬Άμ–΄μ„œ ν•˜λ‚˜μ˜ 논리적인 포트둜 λ™μž‘ν•˜κ²Œ λ§Œλ“œλŠ” 기술, 즉 μƒν˜Έν˜Έν™˜ κ°€λŠ₯ν•œ μ—°κ²° 계측을 ν‘œμ€€ν™”ν•˜λŠ” 것이며, 이λ₯Ό 톡해 λŒ€μ—­ν­ (bandwitch) 을 λŠ˜λ¦¬λŠ” 것이 핡심이닀.

 

πŸ’‘ λŒ€μ—­ν­
μΌμ •ν•œ μ‹œκ°„ 내에 데이터 연결을 톡과할 수 μžˆλŠ” μ •λ³΄λŸ‰μ˜ 척도, μ΄ˆλ‹Ή λΉ„νŠΈλ‘œ ν‘œν˜„

LACP μ˜ˆμ‹œ : 100Mbps + 100Mbps = 200Mbps 둜 ν™œμš© κ°€λŠ₯ 

 

LACP 의 λͺ©μ μ€ 크게 1) 링크 μ‚¬μš©λ₯  ν–₯상, 그리고 2) μž₯μ•  회볡λ₯  ν–₯상이 있으며, μ•žμ„œ μ–ΈκΈ‰ν•œ 이쀑화 ꡬ쑰 쀑 μ•‘ν‹°λΈŒ - μ•‘ν‹°λΈŒ ꡬ쑰λ₯Ό μ·¨ν•˜λ„λ‘ ν•œλ‹€. λ”°λΌμ„œ 1번 + 2번 링크λ₯Ό μ—°κ²°ν•΄ μ‚¬μš©ν•˜λ‹€κ°€, 1번 링크가 λŠμ–΄μ§€κ²Œ 되면 2번 λ§ν¬λ§Œμ„ μ΄μš©ν•˜κ²Œ λœλ‹€. 

 

❗ μ£Όμ˜μ‚¬ν•­:

λŒ€μ—­ν­ μ‚°μ • μ‹œ 두 개의 논리적 링크에 ν•„μš”ν•œ 전체 λŒ€μ—­ν­μ„ λ‚˜λˆ μ„œ λ°°λΆ„ν•˜λ©΄ μ•ˆ λœλ‹€. ν•œ μͺ½μ— μž₯μ• κ°€ λ°œμƒν•΄ λͺ¨λ“  μ„œλΉ„μŠ€λ₯Ό λ‹€λ₯Έ ν•œ μͺ½μœΌλ‘œ μ΄μš©ν•˜κ²Œ 될 λ•Œ μ‚¬μš© κ°€λŠ₯ν•œ λŒ€μ—­ν­μ„ μ΄ˆκ³Όν•΄ μΆ”κ°€ μž₯μ• κ°€ λ°œμƒν•  수 있기 λ•Œλ¬Έμ΄λ‹€. (Ex. μ„œλΉ„μŠ€ μ΄μš©μ— ν•„μš”ν•œ λŒ€μ—­ν­μ΄ 2G 라면 각 링크에 2G μ΄μƒμ˜ λŒ€μ—­ν­μ„ 확보해 두어야 ν•˜λ©°, 1G + 1G 둜 확보해 두면 μ•ˆ λœλ‹€) 

 

λ˜ν•œ, λ¬Άμ΄λŠ” 물리 μΈν„°νŽ˜μ΄μŠ€λ“€μ˜ 속도가 동일해야 ν•œλ‹€. 1G - 1G μΈν„°νŽ˜μ΄μŠ€ κ°„μ˜ LACP 연결은 κ°€λŠ₯ν•˜λ‚˜, 1G - 10G κ°„μ˜ μΈν„°νŽ˜μ΄μŠ€μ—λŠ” λΆˆκ°€λŠ₯ν•˜λ‹€.  

 

μ΅œλŒ€ 8개의 포트 쌍 (총 16개) κΉŒμ§€ μ—°κ²° κ°€λŠ₯ν•˜λ©°, μ—°κ²°λ˜λŠ” ν¬νŠΈλŠ” 늘 짝수둜 μœ μ§€λ˜μ–΄μ•Ό ν•œλ‹€. 

 

 

πŸ“ λ™μž‘ 방식

LACP λŠ” 기본적으둜 LACPDU (LACP Data Unit) λΌλŠ” ν”„λ ˆμž„ μ‚¬μš©ν•΄μ„œ 연결을 μ„±λ¦½ν•œλ‹€. LACPDU μ—λŠ” LACP ꡬ성을 μœ„ν•œ μΆœλ°œμ§€ μ£Όμ†Œ, λͺ©μ μ§€ μ£Όμ†Œ, νƒ€μž…, μ„œλΈŒ νƒ€μž…, 버전 정보가 ν¬ν•¨λ˜μ–΄ μžˆλ‹€.

 

LACP λ₯Ό μ„€μ •ν•  λ•Œ 두 가지 λͺ¨λ“œ 쀑 ν•˜λ‚˜λ₯Ό 택할 수 μžˆλ‹€. 

μ•‘ν‹°λΈŒ : λ¨Όμ € LACPDU 솑신, μƒλŒ€λ°©μ΄ LACP μ„€μ •λœ 경우 LACP ꡬ성

νŒ¨μ‹œλΈŒ : 항상 λŒ€κΈ°μƒνƒœμ— μžˆλ‹€κ°€ LACPDU λ₯Ό μˆ˜μ‹ , 응닡을 λ³΄λ‚΄μ„œ LACP ꡬ성

νŒ¨μ‹œλΈŒλŠ” λ¨Όμ € μš”μ²­μ„ 보내지 μ•ŠκΈ° λ•Œλ¬Έμ— νŒ¨μ‹œλΈŒ-νŒ¨μ‹œλΈŒ μΈν„°νŽ˜μ΄μŠ€ κ°„μ˜ 연결은 λΆˆκ°€λŠ₯ν•˜λ‹€. λ¬Όλ‘  μ•‘ν‹°λΈŒ-νŒ¨μ‹œλΈŒ, μ•‘ν‹°λΈŒ-μ•‘ν‹°λΈŒ κ°„μ˜ 연결은 κ°€λŠ₯ν•˜λ‹€.

 

LACP 연결이 μ„±λ¦½λ˜λŠ” 과정은 λ‹€μŒκ³Ό κ°™λ‹€.

1. μ•‘ν‹°λΈŒ -> νŒ¨μ‹œλΈŒμ— LACPDU 솑신 (정보 포함)

2. νŒ¨μ‹œλΈŒ -> μ•‘ν‹°λΈŒ ok 솑신 

3. μ•‘ν‹°λΈŒ μͺ½μ—μ„œ μ—°κ²° 성립 

4. μ•‘ν‹°λΈŒ + νŒ¨μ‹œλΈŒ 만큼의 λŒ€μ—­ν­ μ‚¬μš© 

 

μ„œλ²„μ˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν•˜λ‚˜μ˜ 논리 포트둜 λ¬ΆλŠ” λ³Έλ”© (bonding) , 티밍 (teaming) κΈ°μˆ μ€ 각 μ„œλ²„ OS μ—μ„œ μ„€μ •ν•  수 μžˆλ‹€. 

 

 

✨ 참고자료

λŒ“κΈ€