이 자습서에서는 Docker 컨테이너에 모놀리스 node.js 애플리케이션을 배포한 다음 다운타임 없이 애플리케이션을 여러 개의 마이크로서비스로 결합 해제합니다. node.js 애플리케이션은 사용자들 간의 스레드와 메시지가 있는 간단한 메시지 보드를 호스팅합니다.

기존의 모놀리스 아키텍처는 확장하기가 어렵습니다. 애플리케이션의 코드 기반이 확장되면서 업데이트하고 유지 관리하기가 갈수록 복잡해집니다. 새로운 기능, 언어, 프레임워크 및 기술을 도입하기가 매우 어려워져 혁신과 새로운 아이디어가 탄생하기 힘든 환경이 됩니다.

마이크로서비스 아키텍처에서 각 애플리케이션 구성 요소는 자체 서비스로 실행되며 잘 정의된 API를 통해 다른 서비스와 통신합니다. 마이크로서비스는 비즈니스 역량을 중심으로 구축되며, 각 서비스는 단일 업무를 수행합니다. 마이크로서비스는 여러 가지 프레임워크와 프로그래밍 언어를 사용하여 작성할 수 있으며, 단일 서비스로 독립적으로 배포하거나 서비스 그룹으로 배포할 수 있습니다.

이 자습서에서는 Docker 컨테이너에서 간단한 모놀리스 애플리케이션을 실행하고, 동일한 애플리케이션을 마이크로서비스로 배포한 후 다운타임 없이 마이크로서비스에 대한 트래픽을 전환하는 방법을 보여 줍니다. 작업을 완료하고 나면 이 자습서와 포함된 코드를 템플릿으로 활용해 AWS에서 자신만의 컨테이너화된 마이크로서비스를 구축하고 배포할 수 있습니다.

애플리케이션 아키텍처
모놀리스 아키텍처

모놀리스 아키텍처

전체 node.js 애플리케이션이 컨테이너에서 단일 서비스로 실행되며 각 컨테이너는 다른 모든 컨테이너와 기능이 동일합니다. 특정 애플리케이션 기능의 사용량이 급증할 경우 전체 아키텍처를 확장해야 합니다.

 
마이크로서비스 아키텍처

마이크로서비스 아키텍처

node.js 애플리케이션의 각 기능이 자체 컨테이너 내에서 별도의 서비스로 실행됩니다. 서비스를 독립적으로 확장하고 업데이트할 수 있습니다.

AWS 환경: 중급

소요 시간: 2시간

이수 비용: 이 아키텍처에 사용된 각 서비스에는 AWS 프리 티어를 사용할 수 있습니다. 프리 티어의 사용량 한도를 초과할 경우 이 자습서를 완료하면 0.25 USD* 미만의 비용이 발생합니다.

사용된 기술: 이 자습서를 완료하려면 다음 기술을 사용해야 합니다.

*자습서 전반에서 권장 구성을 따르고 24시간 내에 모든 리소스를 종료하는 것을 가정한 추정치입니다.

**지난 24시간 이내에 생성된 계정에는 이 학습 과정을 이수하는 데 필요한 일부 리소스에 대한 액세스 권한이 아직 부여되지 않았을 수 있습니다.