inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Microservice 이해(with MSA패턴)

모듈형 모노리스의 컨테이너화

443

긍구름

작성한 질문수 4

1

모듈형 모노리스도 컨테이너화 할 수 있다. 쿠버네티스의 꼭 마이크로서비스만 올리는게 아닌 모노리스도 그냥 올릴 수 있다. 그것만으로도 확장성,배포성,탄력성이 보장이 되기도 한다. 라고 하셨었는데

이 부분에대해서 조금 더 상세하게 알고싶어서 질문드립니다.

 

아키텍처 msa

답변 1

1

han jeong heon

좀더 상세히 말씀드리면 마이크로서비스가 아닌 모노리스 애플리케이션을 컨테이너화하고 이를 Kubernetes에 배포하는 것은 마이크로서비스로 변환하여 배포하는 장점보다는 못미치지만 그 정도로써의 충분한 이점( 확장성, 배포 및 탄력성 측면에서) 이점을 제공합니다. 장점은 다음과 같습니다.

  1. 확장성: Kubernetes를 사용하면 수요에 따라 컨테이너 인스턴스를 추가하거나 제거하여 애플리케이션을 수평으로 확장할 수 있습니다. Kubernetes에 컨테이너화되고 배포된 모놀리식 애플리케이션을 사용하면 이러한 확장성의 이점을 누릴 수 있습니다. 내부 모듈이 독립적으로 확장되도록 설계된 경우 모놀리스의 개별 구성 요소(모듈)을 쉽게 분리하여 확장하거나 더 많은 컨테이너 인스턴스를 추가하여 전체 모놀리스의 크기를 조정할 수 있습니다.

  2. 배포: Kubernetes는 여러 노드 또는 클러스터에 애플리케이션을 배포하는 기능을 제공합니다. Kubernetes에 모놀리식 애플리케이션을 배포하면 여러 노드에 분산하여 내결함성과 가용성을 향상시킬 수 있습니다. 또한 Kubernetes는 로드 밸런싱 및 서비스 검색과 같은 기능을 제공하여 배포작업을 더욱 향상시킬 수 있습니다.

  3. 탄력성: Kubernetes는 HPA(Horizontal Pod Autoscaler)와 같은 기능을 통해 수요에 따라 컨테이너에 할당된 리소스를 자동으로 조정할 수 있습니다. 즉, 모놀리식 애플리케이션은 트래픽이나 리소스 사용량의 변화에 ​​따라 동적으로 확장하거나 축소할 수 있습니다. 탄력성은 애플리케이션이 성능과 비용 효율성을 유지하면서 리소스를 효율적으로 활용할 수 있도록 보장합니다.

그렇지만 염두에 두어야 할 고려 사항도 있습니다.

  1. 복잡성: Kubernetes에서 모놀리식 애플리케이션을 배포하고 관리하면 기존 모놀리식 서버 아키텍처에 비해 더 많은 복잡성이 발생합니다. 파드, 디플로이, 서비스와 같은 Kubernetes 리소스를 구성하고 관리해야 합니다. 이러한 복잡성으로 인해 학습 곡선과 운영 오버헤드가 증가할 수 있습니다.

  2. 리소스 오버헤드: 컨테이너화 및 Kubernetes에는 약간의 리소스 오버헤드가 수반됩니다. Kubernetes는 컨테이너 관리를 위한 강력한 기능을 제공하지만 효과적으로 작동하려면 리소스도 필요합니다. 애플리케이션의 크기와 복잡성이 단순한 경우에는 Kubernetes로 인한 오버헤드가 정당화되지 않을 수 있습니다.

  3. 마이그레이션 노력: 모놀리식 애플리케이션을 컨테이너화하고 이를 Kubernetes에 배포하려면 특히 애플리케이션이 컨테이너화를 염두에 두고 설계되지 않은 경우 상당한 노력이 필요할 수 있습니다. 컨테이너 친화적으로 만들기 위해 애플리케이션의 일부를 리팩터링해야 할 수도 있는데, 이는 시간이 많이 걸리고 어려울 수 있습니다.

  4. 성능: Kubernetes는 확장성과 탄력성을 제공하지만 특히 분산 환경용으로 설계되지 않은 모놀리식 애플리케이션의 경우 성능에 영향을 미칠 수 있습니다. 구성 요소 간 통신 오버헤드, 네트워크 대기 시간 증가, 리소스 경합 등이 성능에 영향을 미칠 수 있는 요소입니다.

결론적으로, Kubernetes에 모놀리식 애플리케이션을 배포하면 확장성, 배포 및 탄력성 측면에서 이점을 제공할 수 있지만 이점이 관련된 복잡성 및 고려 사항보다 중요한지 신중하게 평가하는 것이 중요합니다. 특정 사용 사례, 요구 사항 및 조직 기능에 따라 Kubernetes가 아키텍처에 가장 적합한 선택일 수도 있고 아닐 수도 있습니다. 결정을 내리기 전에 장단점을 고려하고 대체 접근 방식을 고려하는 것이 중요합니다.

0

긍구름

상세하고 명쾌한 답변 감사드립니다!

15강 12-3) 값 제출후 mysql 저장이 안됩니다.

0

10

2

Nat Gateway

0

24

2

보안그룹 아웃바운드 규칙

0

13

1

pg사가 있다고 가정하면

0

25

1

jar 파일 빌드

-1

21

1

GCP SQL 진짜 어이가 없네

-1

24

1

레디스로 재고 관리

0

40

2

Lock 해제 문의 드립니다.

0

44

2

38강 클러스터에 컨트롤러 연결 질문

0

48

2

Windows localhost:30000 연결 거부 현상

0

50

2

강의 일정 및 수업 자료 공유 관련 문의드립니다!

0

34

1

CQRS 6분정도 강의 질문드립니다.

0

264

2

20분정도에 말씀 하신 내용 질문 있습니다.

0

229

2

질문드립니다,

0

180

1

레어어드 아케텍처 스타일 질문드립니다.

0

216

1

헥사고날 아키텍쳐에 대해 좀더 자세히 공부하고싶은데 참고할만한 깃주소 같은게 있을까요 ?

0

990

1

DevOps 인프라(CI/CD) 16분 배포 전략 종류 설명 관련 질문

0

568

1

유연성, 탄력성

0

352

1

질문있습니다 !!

0

501

1

고졸도 아키텍트 될수 있나요?

0

542

1

MSA와 RAM 자원 관리 관련 문의

0

311

1

학습중에 몇가지 질문이 있습니다.

0

335

1

1강 강의내용에 대한 2가지 질문이 있습니다.

0

343

1

좋은 강의 재밌게 보고 있습니다. 질문 있는데요.

0

302

1