caffeine-library / release-everything

'Release의 모든 것'을 읽는 스터디
3 stars 0 forks source link

[keyword] 9장 - 상호 연결 #27

Closed leejaeseung closed 7 months ago

leejaeseung commented 8 months ago

주제

'9장 - 상호 연결'을 읽고 내용을 요약하거나,
중요✨ 하다고 생각하는 키워드 및 관련 설명을 코멘트로 달아주세요

연관 챕터

26


@caffeine-library/readers-release-everything

leejaeseung commented 8 months ago

DNS

라운드로빈 방식

서버의 ip 를 돌려가며 클라이언트에게 알려준다. 클라이언트가 서버와 직접 연결되어야 하고, 서버의 상태를 DNS 서버는 모르기 떄문에 바쁜 서버라도 그 서버의 ip 를 계속 내준다. (부하가 균등하지 않을 수 있음)

GSLB

GSLB DNS 서버와 국부 부하 분산기(인스턴스의 ip 를 가진 풀)로 구성된다.

  1. GSLB 에 부하 분산기 ip 를 물어본다.
  2. GSLB 는 유효한 부하 분산기의 ip 를 내준다. (상태 체크)
  3. 부하 분산기에 요청을 하면 인스턴스 중 하나와 연결해 준다.

인스턴스들이 물리적으로 멀리 떨어진 경우에만 GSLB 가 좋은 성능을 내는 듯..? 물리적으로 가깝게 있다면 국부 부하 분산기 만으로도 해결되지 않을까?

프록시와 역 프록시

정방향 프록시

image

역 프록시

image

소프트웨어 부하 분산기 : 코드로 역 프록시를 구현해 비용이 적게 들지만, 하드웨어 지원이 없으므로 병목이 생기기 쉽다.

하드웨어 부하 분산기 : 하드웨어로 역 프록시가 동작하기 때문에 성능이 좋지만, 가격이 비싸다.

고정 연결

p.259

또 다른 방법은 특정 IP 주소로부터 들어오는 모든 요청이 동일한 세션이라고 가정하는 것이다. 이 방법은 역 프록시가 부하 분산기 앞에 있는 경우에 심각한 문제가 생긴다.

글의 맥락 상 서로 다른 고객이 같은 IP 를 가지게 되어 모두 동일한 세션이라고 가정한다는 것 같은데, 역 프록시가 부하 분산기 앞에 있는 경우 가 잘 상상이 되지 않네요.. 다른 분들은 어떻게 이해하셨나요?! (역 프록시 == 부하 분산기 이지 않나요..?)

DNS 와 ttl

DNS lookup ttl 을 0 으로 설정하면 매번 새로운 주소를 가져오기 때문에 부하 분산이 용이합니다. (ttl 이 0 이 아니라면 캐시된 주소를 사용할 테니) 하지만 DNS 서버가 버티지 못할 수 있는데요. 실제로 저희 회사에서도 DNS ttl 을 죄다 0 으로 걸어놔서 DNS 서버에서 장애가 났고, 전사적으로 ttl 을 1 또는 5 로 변경한 일이 있었습니다 ㅎㅎ

서비스 발견

처음 접하는 개념이라 아직 상상이 잘 되진 않지만.. 책에 나온 컨설이라는 서비스의 설명을 보니 조금은 상상이 되는 것 같네요.. https://idt.plateer.com/hashicorp/consul

서비스 장애 시에 런타임으로 각각의 서비스가 필요한 서비스를 찾아내서 연결하는 느낌으로 이해했는데 다른 분들은 어떻게 이해하셨는지 궁금합니다! (A -> B 로 서비스가 연결되어 있을 때, 장애가 나면 C 서비스를 찾아서 A -> C 로 동적으로 연결해주는?)