강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

이경용님의 프로필 이미지
이경용

작성한 질문수

비전공자도 이해할 수 있는 MSA 입문/실전 (feat. Spring Boot)

완강을 축하드립니다!! 🎉🎉🎉

가용성에대한 질의..

작성

·

25

·

수정됨

0

안녕하세요 선생님.
미션 주신거 이행하면서 궁금해서 질문드려요.
다른강의에서 가용성(Availability), 시스템 이중

에 대해서 설명해주셨는데..
MSA에서 가용성? 시스템 이중을 적용하면..
일반 사용자가 서버 끊김을 못느끼게해야하는데..
기존의 도커나 쿠버네티스를 2중으로 설정해줘야하는게 맞는지 궁금합니다.

예를들어서 강의에서 섷명해주신

게이트웨이,사용자서비스,게시판서비스,포인트 서비스가 있다고 할경우..

게이트웨이 2개 사용자서비스2개 게시판 서비스2개 포인트 서비스 2개로 해야하는것일까요?

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 경용님! 질문 잘 해주셨어요 ~

질문해 주신 내용에 대해 답변드려볼게요 !

말씀해 주신 대로 사용자가 끊김을 느끼지 않게 하려면

각 서비스를 최소 2대 이상으로 구성하는 것이 맞아요!

즉, 각 마이크로서비스를 2개 이상의 인스턴스로 실행해두면

장애가 발생하더라도 서비스가 중단되지 않고 정상적으로 동작할 수 있어요 !

이런 구조가 바로 가용성을 확보하는 방식이에요 :)

이를 통해 서비스 인스턴스에 문제가 생겨도 다른 인스턴스가 바로 요청을 처리할 수 있어서

사용자 입장에서는 서버 장애를 느끼지 못해요 !

 

또한 트래픽이 여러 서버에 분산되어 부하가 한 쪽에 몰리는 걸 방지할 수 있어요 !

추가로 배포 시에도 하나씩 교체가 가능하기 때문에 무중단 배포도 가능해져요 !

이렇게 동일한 서비스를 여러 개 띄웠을 때, 주로 앞단에 ELB(로드밸런서)를 둬요 !

ELB가 들어오는 요청을 여러 서비스 인스턴스에 자동으로 분배(로드밸런싱) 해주기 때문이죠 !

 

쿠버네티스를 사용하신다면, 쿠버네티스 자체의 ReplicaSet 기능을 활용해서

동일한 Pod를 2개 이상으로 손쉽게 유지할 수 있어요~

한 Pod가 죽더라도 다른 Pod가 바로 대체되기 때문에 자연스럽게 이중화 구조가 돼요 !

 

참고로 게이트웨이, 사용자, 게시판 , 포인트 서비스 같은 무상태(stateless) 서비스는

2개 이상 띄워서 부하 분산을 하고,

DB나 Kafka 같은 유상태(stateful) 자원은

RDS Multi-AZ나 MSK(매니지드 Kafka)를 사용해서 고가용성을 확보하는 게 좋아요 !

추가로 궁금하신 점 있으시면 또 질문 남겨주세요~~

0

안녕하세요, 인프런 AI 인턴입니다. 이경용님.

MSA 환경에서의 가용성과 시스템 이중화에 대해 질문 주셨군요.

가용성을 높이고 시스템의 이중화를 구축하는 방법은 일반적으로 두 가지 접근 방식이 있습니다:

  1. 도커를 활용한 이중화: 도커를 통해 컨테이너를 여러 개 띄우고, 로드 밸런서를 사용하여 요청을 분산시킬 수 있습니다. 이렇게 하면 한 컨테이너에 문제가 생겨도 다른 컨테이너가 요청을 처리할 수 있게 되어 가용성을 높일 수 있습니다.

  2. 쿠버네티스를 활용한 클러스터 구성: 쿠버네티스는 컨테이너 오케스트레이션을 통해 자동으로 여러 컨테이너를 관리합니다. 노드들이 여러 개의 컨테이너를 운영하고, 문제가 생겼을 경우 자동으로 복구를 시도합니다. 이를 통해 가용성과 복원력을 극대화할 수 있습니다.

구체적으로 도커를 활용한 이중화쿠버네티스 클러스터 구성에 관한 더 깊은 토픽에 대해서는 각각의 링크를 참조하시면 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

이경용님의 프로필 이미지
이경용

작성한 질문수

질문하기