기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
모놀리스를 마이크로서비스로 분해
태비 워드와 드미트리 굴린, Amazon Web Services (AWS)
2023년 4월 (문서 기록)
Amazon Web Services (AWS) 클라우드로 마이그레이션하면 기술 및 비즈니스 민첩성, 새로운 수익 기회, 비용 절감 등 많은 이점이 있습니다. 이러한 이점을 최대한 활용하려면 모놀리식 애플리케이션을 마이크로서비스로 리팩토링하여 조직의 소프트웨어를 지속적으로 현대화해야 합니다. 이 프로세스는 세 가지 주요 단계로 구성됩니다:
-
모놀리스를 마이크로서비스로 분해 – 이 가이드에서 제공하는 분해 패턴을 사용하여 모놀리식 애플리케이션을 마이크로서비스로 분류합니다.
-
마이크로서비스 통합 – AWS서버리스 서비스
를 사용하여 새로 만든 마이크로서비스를 마이크로서비스 아키텍처에 통합합니다. -
마이크로서비스를 위한 데이터 지속성 활성화 – 데이터 저장소를 분산하여 마이크로 서비스 간의 다중 사용 지속성
을 촉진합니다.
현대화에는 일반적으로 두 가지 유형의 프로젝트가 포함됩니다:
-
브라운필드 프로젝트에는 기존 또는 레거시 시스템의 맥락에서 새로운 소프트웨어 시스템을 개발하고 배포하는 작업이 포함됩니다.
-
그린필드 프로젝트에는 레거시 코드를 사용하지 않고 완전히 새로운 환경을 위한 시스템을 처음부터 만드는 작업이 포함됩니다.
브라운필드 프로젝트의 경우 애플리케이션 현대화 여정의 첫 단계 중 하나는 포트폴리오의 모놀리스를 마이크로서비스로 분해하는 것입니다.
대부분의 애플리케이션은 특정 비즈니스 사용 사례에 맞게 설계된 모놀리스로 시작됩니다. 모놀리스의 아키텍처에서 모듈식 설계를 적용하지 않는 경우에도 잘 정립된 도메인 지식의 범위 내에서 책임이 명확하게 정의되지 않은 애플리케이션에는 모놀리스가 여전히 유효한 선택이 될 수 있습니다. 단일 배치 단위라는 모노리스의 중심적 특성은 또한 긴밀한 결합이나 내부 구조 부족과 같은 설계 결함을 완화하는 데 도움이 될 수 있습니다.
일부 사용 사례에서는 모놀리스가 유효한 옵션이 될 수 있지만 일반적으로 최신 애플리케이션에는 적합하지 않습니다. 모놀리스의 내부 구조가 잘못 정의되면 코드를 유지 관리하기가 어려워질 수 있으며, 이로 인해 신규 개발자의 학습 시간이 길어지고 추가 지원 비용이 발생할 수 있습니다. 결합성이 높고 응집력이 낮으면 새 기능을 추가하는 데 걸리는 시간이 크게 늘어날 수 있으며 트래픽 패턴에 따라 개별 구성 요소를 확장하지 못할 수도 있습니다. 또한 모놀리스는 하나의 대규모 릴리스를 위해 여러 팀이 협력해야 하므로 협업과 지식 이전 부담이 커집니다. 마지막으로, 비즈니스나 사용자 기반이 커지면 새로운 기능을 추가하거나 새로운 사용자 경험을 구축하는 것이 어려워진다는 것을 알 수 있습니다.
이를 방지하기 위해 분해 패턴을 사용하여 모놀리식 애플리케이션을 세분화하고 여러 마이크로서비스로 변환한 다음 마이크로서비스 아키텍처로 마이그레이션할 수 있습니다. 마이크로서비스 아키텍처는 애플리케이션을 일련의 느슨하게 결합된 서비스로 구성합니다. 마이크로서비스는 지속적인 배포 및 지속적인 배포 (CI/CD) 프로세스를 지원하여 소프트웨어 개발을 가속화하도록 설계되었습니다.
분해 프로세스를 시작하기 전에 분해할 모놀리스를 평가해야 합니다. 신뢰성이나 성능에 문제가 있는 모노리스를 포함하거나 긴밀하게 결합된 아키텍처에 여러 구성 요소를 포함해야 합니다. 또한 모놀리스의 비즈니스 사용 사례, 기술, 다른 애플리케이션과의 상호 종속성을 완전히 이해하는 것이 좋습니다.
이 가이드는 애플리케이션 소유자, 비즈니스 소유자, 설계자, 기술 책임자 및 프로젝트 매니저를 위한 것입니다. 모놀리스를 분해하는 데 사용되는 다음 6가지 클라우드 네이티브 패턴을 설명하고 각 패턴의 장단점을 설명합니다:
이 가이드는 AWS에서 권장하는 애플리케이션 현대화 접근 방식을 다루는 콘텐츠 시리즈의 일부입니다. 이 시리즈에는 다음 내용도 포함됩니다:
-
AWS클라우드에서 애플리케이션을 현대화하기 위한 전략
-
AWS 클라우드 내 애플리케이션 현대화를 위한 단계적 접근
-
AWS클라우드의 애플리케이션에 대한 현대화 준비 평가
-
AWS서버리스 서비스를 사용하여 마이크로서비스 통합
타겟 비즈니스 성과
모놀리스를 마이크로서비스로 분해한 후에는 다음과 같은 결과를 기대할 수 있습니다:
-
모놀리식 애플리케이션을 마이크로서비스 아키텍처로 효율적으로 전환합니다.
-
높은 확장성, 향상된 복원력, 지속적 제공, 장애 격리와 같은 핵심 활동을 중단하지 않으면서 변동하는 비즈니스 수요를 신속하게 조정합니다.
-
각 마이크로서비스를 개별적으로 테스트하고 배포할 수 있으므로 혁신이 더 빨라집니다.