기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
REL03-BP01 워크로드를 세분화하는 방법 선택
워크로드 세그먼트화는 애플리케이션의 복원력 요구 사항을 결정할 때 중요합니다. 되도록 모놀리식 아키텍처는 피해야 합니다. 대신 어떤 애플리케이션 구성 요소를 마이크로서비스로 나눌 수 있을지 신중하게 고려합니다. 애플리케이션 요구 사항에 따라 가능한 경우 서비스 지향 아키텍처(SOA)와 마이크로서비스의 조합이 될 수 있습니다. 상태 비저장일 수 있는 워크로드는 마이크로서비스로 배포할 수 있습니다.
원하는 성과: 워크로드는 지원 가능하고 확장 가능하며 가능한 한 느슨하게 결합되어 있어야 합니다.
워크로드를 세그먼트화하는 방법을 선택할 때 복잡성 대비 이점의 균형을 고려합니다. 신제품의 첫 출시에 필요한 것과 처음부터 워크로드를 확장할 때 필요한 것은 다릅니다. 기존 모놀리식을 리팩터링할 때 애플리케이션이 상태 비저장을 향한 해체를 얼마나 잘 지원하는지 고려해야 합니다. 서비스를 더 작은 부분으로 나누면 잘 정의된 소규모 팀에서 이러한 부분을 개발하고 관리할 수 있습니다. 그러나 크기가 작은 서비스는 복잡성을 불러올 수 있고 여기에는 지연 시간 증가, 디버깅 복잡성, 운영 부담 증가가 포함됩니다.
일반적인 안티 패턴:
-
마이크로서비스 Death Star
는 원자성 구성 요소의 상호 의존성이 커져 한 구성 요소의 장애가 훨씬 더 큰 장애로 이어져 구성 요소가 모놀리식처럼 경직되고 취약해질 수 있습니다.
이 모범 사례 확립의 이점:
-
보다 구체적인 세그먼트를 사용하면 민첩성, 조직의 유연성 및 확장성이 향상됩니다.
-
서비스 중단의 영향이 감소합니다.
-
애플리케이션 구성 요소가 원자성이 더 큰 세그먼트화로 지원할 수 있는 여러 가능성 요구 사항을 가질 수 있습니다.
-
워크로드를 지원하는 팀의 책임이 잘 정의됩니다.
이 모범 사례가 확립되지 않을 경우 노출되는 위험 수준: 높음
구현 가이드
워크로드를 분할하는 방법에 따라 아키텍처 유형을 선택합니다. SOA 또는 마이크로서비스 아키텍처(또는 드문 경우 모놀리식 아키텍처)를 선택합니다. 모놀리스 아키텍처로 시작하기로 선택하더라도 모듈식이고 사용자 채택에 따라 제품이 확장됨에 따라 궁극적으로 SOA 또는 마이크로서비스로 진화할 수 있는지 확인해야 합니다. SOA 및 마이크로서비스는 확장 가능하고 신뢰할 수 있는 최신 아키텍처로 선호되는 각각 더 작은 세분화를 제공하지만, 특히 마이크로서비스 아키텍처를 배포할 때 고려해야 할 단점이 있습니다.
한 가지 주요 장단점은 분산 컴퓨팅 아키텍처가 구축되었지만 사용자 지연 시간 요구 사항을 충족하기가 더 어려워지며, 사용자 상호 작용을 디버그하고 추적하는 과정이 더 복잡해진다는 점입니다. AWS X-Ray 를 사용하면 이 문제를 해결할 수 있습니다. 관리 중인 애플리케이션의 수가 증가함에 따라 운영 복잡성이 증가하므로 다수의 독립 구성 요소를 배포해야 한다는 점도 고려해야 합니다.
구현 단계
-
애플리케이션을 리팩터링 또는 구축하기에 적절한 아키텍처를 결정합니다. SOA 및 마이크로서비스는 각각 더 작은 세분화를 제공하며, 이는 확장 가능하고 신뢰할 수 있는 최신 아키텍처로 선호됩니다. SOA 마이크로서비스의 복잡성을 피하면서 세분화를 줄이는 데 좋은 타협이 될 수 있습니다. 자세한 내용은 Microservice Trade-Offs
를 참조하세요. -
이를 워크로드에 적용할 수 있고 조직에서 지원할 수 있는 경우, 마이크로서비스 아키텍처를 사용하여 최고의 민첩성과 신뢰성을 실현해야 합니다. 자세한 내용은 에서 마이크로서비스 구현을 참조하세요 AWS.
-
모놀리식을 더 작은 구성 요소로 리팩터링하려면 Strangler Fig 패턴
준수를 고려하세요. 여기에는 특정 애플리케이션 구성 요소를 새 애플리케이션 및 서비스로 점차적으로 교체하는 작업이 포함됩니다. AWS Migration Hub Refactor Spaces는 증분 리팩터링의 시작점 역할을 합니다. 자세한 내용은 Seamlessly migrate on-premises legacy workloads using a strangler pattern 을 참조하세요. -
마이크로서비스를 구현하려면 이러한 분산 서비스가 서로 통신할 수 있도록 서비스 검색 메커니즘이 필요할 수 있습니다. 는 서비스 지향 아키텍처와 함께 사용하여 서비스의 안정적인 검색 및 액세스를 제공할 AWS App Mesh 수 있습니다. 는 동적 DNS기반 서비스 검색에도 사용할 AWS Cloud Map
수 있습니다. -
모놀리스에서 로 마이그레이션하는 경우 SOA Amazon MQ는 클라우드에서 레거시 애플리케이션을 재설계할 때 서비스 버스로서 격차를 메우는 데 도움이 될 수 있습니다.
-
공유 데이터베이스 하나를 사용하는 기존 모놀리식의 경우 데이터를 더 작은 세그먼트로 재구성하는 방법을 선택합니다. 사업부, 액세스 패턴 또는 데이터 구조별로 선택할 수 있습니다. 리팩터링 프로세스의 이 시점에서 관계형 또는 비관계형(아니요SQL) 데이터베이스 유형으로 진행하기로 선택해야 합니다. 자세한 내용은 시작에서 아니요 SQL를SQL 참조하세요.
구현 계획의 작업 수준: 높음
리소스
관련 모범 사례:
관련 문서:
관련 예제:
관련 비디오: