내 세상

[Spring Cloud] DNS 매핑 및 읽기 요청 부하 분산 등 본문

Technical/Spring Cloud

[Spring Cloud] DNS 매핑 및 읽기 요청 부하 분산 등

sga8 2022. 12. 19. 14:50
728x90
반응형

IANA 에서 Wellknown Port로 설정된 값들을 Port로 사용하면 생략됨.

 

Wellknown Port와 권한 이슈로 아래 구조로 구성함

  

    Client   ----- Port 80 -----  Web Server ----- Port: 8080 ------ Spring Boot

 

 

최근에는 Nginx를 이용한 reverse proxy 설정이나 아파치의 reverse porxy를 통해서 진행한다

 

 

HTTPS 설정시 유의사항 및 인증서

  Wild 카드 인증서 *.도메인.com

     beta-test.mylocal.com 과 같이 -(대쉬)를 사용해서 응용할 수 있음.

 

 

Apache 연동/Nginx 연동을 하는 이유가 위의 이유 때문임.

 

 

Virtual IP와 DNS

출처: https://velog.io/@dnrwhddk1/Spring-Cloud-%EC%9B%B9-%EC%84%9C%EB%B9%84%EC%8A%A4-%ED%99%95%EC%9E%A5-%EC%A0%84%EB%9E%B5DNS-%EC%99%80%EC%9D%BC%EB%93%9C-%EC%B9%B4%EB%93%9C-%EC%9D%B8%EC%A6%9D%EC%84%9C-Virtual-IP-%EC%9D%BD%EA%B8%B0-%EC%9A%94%EC%B2%AD-%EB%B6%80%ED%95%98-%EB%B6%84%EC%82%B0

 

위 그림에서 api1, api2, api3을 버전을 변경하면서 vip를 통해서 끊고, 하는 과정이 MSA라고 볼 수 있음.

예를 들어, 외부에서 select / insert / update 등 요구 사항이 온다면 해당 요청 사항을 구분해서 분산을 진행해야함.

 

 

일반적인 Service 구조는 아래와 같음.

 

요청이 왔을 때, 최초 요청 no hit 이기 때문에 response를 줌.

두번째에 동일 요청이 왔을 때, cache를 해서 DB 접근 없이 repsonse를 줌.

cf) caffeine 캐시 알아볼 것

 

위 상황에서 API Server가 여러대로 구축되었을 때, 각 서버마다 Cache가 보관되는 현상이 발생함.

이 때, 중간에 값이 변경될 수도 있음. Cache Server를 통해서 해당 현상을 조치하고자 함.

 

 

 

클러스터링과 레플리카

  - 클러스터링: DB 4개 이면, 2개씩 묶어서 진행하는 것.

  - 레플리카:  동일한 DB를 복사해서 진행하는 것. 나누는 것을 샤딩 이라고 함.

 

샤딩

  - 데이터 위주로 나누는 것.

  - 현실에서는 Clustering을 했을 때 비용 문제로 쉽지 않음.

  - 참고 자료 : https://engineering.linecorp.com/ko/blog/line-manga-database/

 

LINE Manga 데이터베이스 샤딩 - 데이터베이스 엔지니어 편

들어가며 안녕하세요. 데이터베이스 팀 Oda입니다. LINE Manga의 데이터베이스 샤딩(sharding) 작업에 대해서 서버 엔지니어 편을 먼저 소개드렸는데요. 이번 글은 데이터 엔지니어 편입니다. 샤딩

engineering.linecorp.com

 

 

728x90
반응형