이 자습서에서는 모놀리스 node.js 애플리케이션을 도커 컨테이너에 배포한 다음, 가동 중단 없이 애플리케이션을 마이크로서비스로 분해합니다. 이 node.js는 사용자 간의 스레드와 메시지를 담은 간단한 메시지 보드를 호스팅하는 애플리케이션입니다.
기존의 모놀리스 아키텍처는 확장하기가 어려웠습니다. 애플리케이션의 코드 기반이 커질수록 업데이트하고 유지 관리하기가 복잡해집니다. 새로운 기능과 언어, 프레임워크, 기술을 도입하기가 굉장히 어렵기 때문에 새로운 아이디어와 혁신에 제약이 있습니다.
마이크로서비스 아키텍처에서는 각각의 애플리케이션 구성 요소가 자체 서비스로 실행되며, 잘 정의된 API를 통해 다른 서비스와 통신합니다. 비즈니스 기능 위주로 구축된 마이크로서비스는 서비스마다 한 가지 기능을 수행합니다. 다양한 프레임워크와 프로그래밍 언어로 마이크로서비스를 작성한 다음 단일 서비스 또는 서비스 그룹 형태로 독립적으로 배포할 수 있습니다.
이 자습서에서는 도커 컨테이너에서 간단한 모놀리스 애플리케이션을 실행하는 방법, 같은 애플리케이션을 마이크로서비스로 배포하는 방법, 가동 중단 없이 트래픽을 마이크로서비스로 전환하는 방법을 알아봅니다. 과정을 마친 뒤 이 자습서와 여기 수록된 코드를 템플릿으로 사용하여 컨테이너화된 자체 마이크로서비스를 AWS에서 구축하고 배포해 보십시오.


모놀리스 아키텍처
node.js 애플리케이션 전체가 하나의 서비스로 컨테이너 안에서 실행되며, 각 컨테이너에는 다른 모든 컨테이너와 동일한 기능이 있습니다. 한 가지 애플리케이션 기능에 대한 수요가 급증하면 해당 아키텍처 전체를 확장해야 합니다.

마이크로서비스 아키텍처
node.js 애플리케이션의 각 기능이 자체 컨테이너 안에서 별도의 서비스로 실행됩니다. 원하는 서비스를 나머지 서비스와 독립적으로 확장하고 업데이트할 수 있습니다.
완료 시간: 2시간
완료 비용: 이 아키텍처에 사용되는 각 서비스는 AWS 프리 티어 대상입니다. 프리 티어 사용 한도를 넘어선 경우, 이 자습서를 완료하는 데 0.25 USD*가 필요합니다.
사용 기술: 이 자습서를 완료하기 위해 다음을 사용하게 됩니다.
- AWS 계정** 활성화
- 텍스트 편집기: AWS 권장 편집기 Atom
- 브라우저: AWS 권장 브라우저 Chrome
- Amazon EC2
- Amazon Elastic Container Service
- Amazon Elastic Container Registry
- Amazon VPC
- AWS CloudFormation
- Elastic Load Balancing
- Docker
- Github
- node.js
*자습서를 진행하는 동안 권장 구성에 따르고 모든 리소스를 24시간 안에 종료한다고 가정한 경우의 추정치입니다.
**생성된 지 24시간이 지나지 않은 계정은 이 프로젝트를 완료하는 데 필요한 모든 리소스에 액세스할 권한이 아직 없을 수 있습니다.