작성
·
283
0
안녕하세요. 강의 초반부를 진행하며 궁금한 점에 대한 질문입니다.
1) 강의 실습 시 여러 개의 프로젝트를 생성하여 진행하셨는데,
IntelliJ IDEA 에 있는 한 프로젝트 안에 여러 개의 모듈을 추가하는 기능을 사용해도 문제가 없나요?
2) AWS로 배포한다고 가정했을 때 서비스마다 하나의 EC2 인스턴스가 사용되나요?
3) 자원 사용량을 감안해도 비용이 증가할 것 같은데 실제로 어떤가요?
답변 1
0
안녕하세요, 이도원입니다.
문의하신 질문에 답변 및 의견 드립니다.
1) IntelliJ에서 Root 프로젝트를 생성하신 다음에 개별적인 모듈로 서브 프로젝트를 관리하셔도 괜찮습니다. 다만, 관련성이 없는 프로젝트를 포함하시는 것 보다는 말 그래도 서브 프로젝트로 구성해서 전체 프로젝트를 설계하여 사용하시는 것을 추천드리며, Root 프로젝트에서 서브 프로젝트들읠 Module 등록하여 한번에 빌드하실 수도 있습니다.
2) MSA 애플리케이션 하나마다 하나의 EC2 인스턴스일 필요는 없습니다. 리소스의 낭비일 수도 있습니다. MSA 애플리케이션을 하나의 VM(물리적, 가상 모두)에 직접 배포하는 것 보다는, 컨테이어 가상화 형태로 배포하여 사용하는 경우가 많기 때문에, Docker (Containerd, CRI-O 등)가상화와 Orchestration 도구를 적극 활용하여 운영하시는 게 좋습니다. EC2에 Docker Engine을설치하여 여러 MSA 애플리케이션을 배포하시거나 Kubernetes와 같은 환경에 배포하여 사용되는 경우가 더 많습니다.
3) 자원 사용에 따라 스케일링 작업이 용이하다는 것도 컨테이너 가상화 및 MSA 구성의 장점이 될 수 있습니다. 물론 MSA 구성 자체의 단점도 존재합니다. 네트워크 트래픽이 많아질수 있고, 복잡도가 증가하거나, 디버깅이 어려운 문제가 발생할 수도 있지만, 그런 문제를 상쇄하는 장점들 때문에 여러 서비스에서 도입하는 거라 생각됩니다.
감사합니다.