마이크로서비스의 데이터 지속성 지원 - AWS 규범적 지침

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

마이크로서비스의 데이터 지속성 지원

태비 워드와 발라지 모한, Amazon Web Services () AWS

2023년 12월(문서 기록)

조직은 성장 기회를 창출하고 시장 출시 시간을 단축하기 위해 끊임없이 새로운 프로세스를 모색합니다. 애플리케이션, 소프트웨어 및 IT 시스템을 현대화하여 조직의 민첩성과 효율성을 높일 수 있습니다. 현대화는 또한 고객에게 더 빠르고 더 나은 서비스를 제공하는 데 도움이 됩니다.

애플리케이션 현대화는 조직의 지속적인 개선을 위한 관문이며, 먼저 모놀리스 애플리케이션을 독립적으로 개발, 배포 및 관리되는 마이크로서비스 세트로 리팩토링합니다. 이 프로세스는 다음과 같은 단계로 이루어집니다.

일부 사용 사례에서는 모놀리스 애플리케이션 아키텍처를 사용할 수 있지만 모놀리스 아키텍처에서는 최신 애플리케이션 기능이 작동하지 않는 경우가 많습니다. 예를 들어 개별 구성 요소를 업그레이드하는 동안에는 전체 애플리케이션을 계속 사용할 수 없으며 개별 구성 요소를 확장하여 병목 현상이나 핫스팟(애플리케이션 데이터의 비교적 밀집된 영역)을 해결할 수 없습니다. 모놀리스는 규모가 크고 관리하기 어려운 애플리케이션이 될 수 있으며, 작은 변경 사항을 적용하려면 여러 팀 간의 상당한 노력과 조정이 필요합니다.

레거시 애플리케이션은 일반적으로 중앙 집중식 모놀리스 데이터베이스를 사용하므로 스키마 변경이 어렵고, 성장에 대응하는 유일한 방법으로 수직적 확장을 통한 기술 종속이 발생하며, 단일 장애 지점이 발생합니다. 또한 모놀리스 데이터베이스를 사용하면 마이크로서비스 아키텍처를 구현하는 데 필요한 분산되고 독립적인 구성 요소를 구축할 수 없습니다.

이전에는 일반적인 아키텍처 접근 방식이 모놀리스 애플리케이션에서 사용되는 하나의 관계형 데이터베이스에서 모든 사용자 요구 사항을 모델링하는 것이었습니다. 이 접근 방식은 널리 사용되는 관계형 데이터베이스 아키텍처에서 지원되었으며, 애플리케이션 설계자는 일반적으로 개발 프로세스의 초기 단계에서 관계형 스키마를 설계하고 고도로 정규화된 스키마를 구축한 다음 개발자 팀에 전송했습니다. 그러나 이는 데이터베이스가 애플리케이션 사용 사례의 데이터 모델을 주도하는 것이지 그 반대가 아니라는 것을 의미했습니다.

데이터 스토어를 분산하면 마이크로서비스 간의 다국어 지속성을 높이고 데이터 액세스 패턴 및 마이크로서비스의 기타 요구 사항을 기반으로 데이터 스토리지 기술을 식별할 수 있습니다. 각 마이크로서비스에는 자체 데이터 저장소가 있으며 스키마 변경에 영향을 거의 주지 않으면서 독립적으로 확장할 수 있으며 데이터는 마이크로서비스의 API를 통해 관리됩니다. 모놀리스 데이터베이스를 분해하는 것은 쉽지 않으며, 가장 큰 과제 중 하나는 가능한 최상의 성능을 달성하도록 데이터를 구조화하는 것입니다. 분산된 다중 언어 지속성은 일반적으로 최종 데이터 일관성을 초래하며, 철저한 평가가 필요한 기타 잠재적 문제로는 트랜잭션 중 데이터 동기화, 트랜잭션 무결성, 데이터 중복, 조인 및 지연 시간 등이 있습니다.

이 가이드는 애플리케이션 소유자, 비즈니스 소유자, 설계자, 기술 책임자 및 프로젝트 매니저를 위한 것입니다. 이 가이드는 마이크로서비스 간의 데이터 지속성을 지원하는 다음 6가지 패턴을 제공합니다.

이 가이드는 AWS에서 권장하는 애플리케이션 현대화 접근 방식을 다루는 콘텐츠 시리즈의 일부입니다. 이 시리즈에는 다음 내용도 포함됩니다:

목표 비즈니스 성과

많은 조직은 모놀리스 애플리케이션, 데이터베이스 및 기술이 사용자 경험을 혁신하고 개선하는 데 부정적인 영향을 미친다는 사실을 알게 됩니다. 레거시 애플리케이션과 데이터베이스는 최신 기술 프레임워크를 채택하는 데 필요한 옵션을 줄이고 경쟁력과 혁신을 제한합니다. 하지만 애플리케이션과 데이터 저장소를 현대화하면 확장과 개발이 더 쉬워집니다. 분리된 데이터 전략은 내결함성과 복원력을 향상시켜 새로운 애플리케이션 기능의 출시 시간을 앞당기는 데 도움이 됩니다.

마이크로서비스 간의 데이터 지속성을 증진하면 다음과 같은 6가지 결과를 기대할 수 있습니다.

  • 애플리케이션 포트폴리오에서 레거시 모놀리스 데이터베이스를 제거하십시오.

  • 애플리케이션의 내결함성, 복원력 및 가용성을 개선하십시오.

  • 새로운 애플리케이션 기능의 출시 시간을 단축하십시오.

  • 전체 라이선스 비용과 운영 비용을 줄이십시오.

  • 오픈 소스 솔루션(예: MySQL 또는 PostgreSQL)을 활용하십시오.

  • AWS 클라우드에서 15개 이상의 목적별 데이터베이스 엔진 중에서 선택하여 확장성이 뛰어난 분산 애플리케이션을 구축하십시오.