데이터베이스에서 애플리케이션 계층으로 비즈니스 로직 마이그레이션 - AWS 권장 가이드

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

데이터베이스에서 애플리케이션 계층으로 비즈니스 로직 마이그레이션

데이터베이스 저장 프로시저, 트리거 및 함수에서 애플리케이션 계층 서비스로 비즈니스 로직을 마이그레이션하는 것은 모놀리식 데이터베이스를 분해하는 중요한 단계입니다. 이 변환은 서비스 자율성을 개선하고 유지 관리를 간소화하며 확장성을 향상시킵니다. 이 섹션에서는 데이터베이스 로직 분석, 마이그레이션 전략 계획, 비즈니스 연속성을 유지하면서 변환 구현에 대한 지침을 제공합니다. 또한 효과적인 롤백 계획 수립에 대해서도 설명합니다.

1단계: 비즈니스 로직 분석

모놀리식 데이터베이스를 현대화할 때는 먼저 기존 데이터베이스 로직에 대한 포괄적인 분석을 수행해야 합니다. 이 단계에서는 세 가지 기본 범주에 중점을 둡니다.

  • 저장 프로시저에는 데이터 조작 로직, 비즈니스 규칙, 검증 검사 및 계산을 비롯한 중요한 비즈니스 운영이 포함되는 경우가 많습니다. 애플리케이션 비즈니스 로직의 핵심 구성 요소로서 신중한 분해가 필요합니다. 예를 들어 금융 조직의 저장 프로시저는 관심 계산, 계정 조정 및 규정 준수 검사를 처리할 수 있습니다.

  • 트리거는 감사 추적, 데이터 검증, 계산 및 테이블 간 일관성을 처리하는 주요 데이터베이스 구성 요소입니다. 예를 들어 소매 조직은 트리거를 사용하여 주문 처리 시스템 전체에서 인벤토리 업데이트를 관리할 수 있으며, 이는 자동화된 데이터베이스 작업의 복잡성을 보여줍니다.

  • 데이터베이스의 함수는 주로 데이터 변환, 계산 및 조회 작업을 관리합니다. 종종 여러 절차와 애플리케이션에 포함됩니다. 예를 들어 의료 기관은 함수를 사용하여 환자 데이터를 정규화하거나 의료 코드를 조회할 수 있습니다.

각 범주는 데이터베이스 계층 내에 포함된 비즈니스 로직의 다양한 측면을 나타냅니다. 애플리케이션 계층으로 마이그레이션하려면 각 항목을 신중하게 평가하고 계획해야 합니다.

이 분석 단계에서 고객은 일반적으로 세 가지 중요한 문제에 직면합니다. 먼저 중첩된 프로시저 호출, 교차 스키마 참조 및 암시적 데이터 종속성을 통해 복잡한 종속성이 나타납니다. 둘째, 특히 다단계 트랜잭션을 처리하고 분산 시스템에서 데이터 일관성을 유지할 때 트랜잭션 관리가 중요합니다. 셋째, 성능 고려 사항을 신중하게 평가해야 합니다. 특히 배치 처리 작업, 대량 데이터 업데이트 및 현재 데이터에 가까워지면 도움이 되는 실시간 계산의 경우 더욱 그렇습니다.

이러한 문제를 효과적으로 해결하기 위해 초기 분석에 AWS Schema Conversion Tool (AWS SCT)를 사용한 다음 세부 종속성 매핑 도구를 사용할 수 있습니다. 이 접근 방식은 데이터베이스 로직의 전체 범위를 이해하고 분해 중에 비즈니스 연속성을 유지하는 포괄적인 마이그레이션 전략을 만드는 데 도움이 됩니다.

이러한 구성 요소와 과제를 철저히 이해하면 현대화 여정을 더 잘 계획하고 마이크로서비스 기반 아키텍처로 마이그레이션하는 동안 우선순위를 지정할 요소에 대해 정보에 입각한 결정을 내릴 수 있습니다.

데이터베이스 코드 구성 요소를 분석할 때 각 저장 프로시저, 트리거 및 함수에 대한 포괄적인 설명서를 생성합니다. 먼저 구현하는 비즈니스 규칙을 포함하여 목적과 핵심 기능을 명확하게 설명합니다. 모든 입력 및 출력 파라미터를 자세히 설명하고 데이터 유형과 유효한 범위를 기록해 둡니다. 다른 데이터베이스 객체, 외부 시스템 및 다운스트림 프로세스에 대한 종속성을 매핑합니다. 트랜잭션 경계 및 격리 요구 사항을 명확하게 정의하여 데이터 무결성을 유지합니다. 응답 시간 요구 사항 및 리소스 사용률 패턴을 포함하여 성능 기대치를 문서화합니다. 마지막으로 사용량 패턴을 분석하여 최대 부하, 실행 빈도 및 중요한 비즈니스 기간을 파악합니다.

2단계: 비즈니스 로직 분류

효과적인 데이터베이스 분해를 위해서는 복잡성, 비즈니스 영향, 종속성, 사용 패턴 및 마이그레이션 난이도와 같은 주요 차원에서 데이터베이스 로직을 체계적으로 분류해야 합니다. 이 분류는 고위험 구성 요소를 식별하고, 테스트 요구 사항을 결정하고, 마이그레이션 우선순위를 설정하는 데 도움이 됩니다. 예를 들어 비즈니스에 큰 영향을 미치고 자주 사용하는 복잡한 저장 프로시저에는 신중한 계획과 광범위한 테스트가 필요합니다. 그러나 종속성이 최소인 단순하고 거의 사용되지 않는 함수는 초기 마이그레이션 단계에 적합할 수 있습니다.

이 구조화된 접근 방식은 시스템 안정성을 유지하면서 비즈니스 중단을 최소화하는 균형 잡힌 마이그레이션 로드맵을 생성합니다. 이러한 상호 관계를 이해하면 분해 작업의 순서를 개선하고 리소스를 적절하게 할당할 수 있습니다.

3단계: 비즈니스 로직 마이그레이션

비즈니스 로직을 분석하고 분류한 후에는 마이그레이션해야 합니다. 모놀리식 데이터베이스에서 비즈니스 로직을 마이그레이션할 때는 데이터베이스 로직을 애플리케이션 계층으로 이동하거나 비즈니스 로직을 마이크로서비스의 일부인 다른 데이터베이스로 이동하는 두 가지 접근 방식이 있습니다.

비즈니스 로직을 애플리케이션으로 마이그레이션하면 데이터베이스 테이블은 데이터만 저장하고 데이터베이스에는 비즈니스 로직이 포함되지 않습니다. 이것이 권장되는 접근 방식입니다. Amazon Q Developer 또는와 같은 Ispirer 또는 생성형 AI 도구를 사용하여 JavaKiro로의 변환과 같은 애플리케이션 계층의 데이터베이스 비즈니스 로직을 변환할 수 있습니다. 자세한 내용은 더 빠른 혁신과 유연성을 위해 데이터베이스에서 애플리케이션으로 비즈니스 로직 마이그레이션(AWS 블로그 게시물)을 참조하세요.

비즈니스 로직을 다른 데이터베이스로 마이그레이션하는 경우 AWS Schema Conversion Tool (AWS SCT)를 사용하여 기존 데이터베이스 스키마 및 코드 객체를 대상 데이터베이스로 변환할 수 있습니다. Amazon DynamoDB, Amazon Aurora 및 Amazon Redshift와 같이 특별히 구축된 AWS 데이터베이스 서비스를 지원합니다. 포괄적인 평가 보고서와 자동화된 변환 기능을 제공하여는 전환 프로세스를 간소화하여 성능 및 확장성 향상을 위해 새 데이터베이스 구조를 최적화하는 데 집중할 수 있도록 AWS SCT 지원합니다. 현대화 프로젝트를 진행하면서는 단계별 접근 방식을 지원하기 위해 증분 변환을 AWS SCT 처리할 수 있으므로 데이터베이스 변환의 각 단계를 검증하고 미세 조정할 수 있습니다.

비즈니스 로직에 대한 롤백 전략

분해 전략의 두 가지 중요한 측면은 이전 버전과의 호환성을 유지하고 포괄적인 롤백 절차를 구현하는 것입니다. 이러한 요소는 함께 작동하여 전환 기간 동안 작업을 보호하는 데 도움이 됩니다. 이 섹션에서는 분해 프로세스 중에 호환성을 관리하고 잠재적 문제를 방지하는 효과적인 비상 롤백 기능을 설정하는 방법을 설명합니다.

이전 버전과의 호환성 유지

데이터베이스 분해 중에는 원활한 전환을 위해 이전 버전과의 호환성을 유지하는 것이 필수적입니다. 새로운 기능을 점진적으로 구현하면서 기존 데이터베이스 절차를 일시적으로 유지합니다. 버전 관리를 사용하여 모든 변경 사항을 추적하고 여러 데이터베이스 버전을 동시에 관리할 수 있습니다. 소스 시스템과 대상 시스템이 모두 안정적으로 작동해야 하는 장기 공존 기간을 계획합니다. 이렇게 하면 레거시 구성 요소를 사용 중지하기 전에 새 시스템을 테스트하고 검증할 수 있습니다. 이 접근 방식은 비즈니스 중단을 최소화하고 필요한 경우 롤백을 위한 안전망을 제공합니다.

긴급 롤백 계획

안전한 데이터베이스 분해를 위해서는 포괄적인 롤백 전략이 필수적입니다. 코드에 기능 플래그를 구현하여 어떤 버전의 비즈니스 로직이 활성 상태인지 제어합니다. 이를 통해 배포 변경 없이 새 구현과 원래 구현 간에 즉시 전환할 수 있습니다. 이 접근 방식은 전환을 세밀하게 제어하고 문제가 발생할 경우 신속하게 롤백하는 데 도움이 됩니다. 원래 로직을 확인된 백업으로 유지하고 트리거, 책임 및 복구 단계를 지정하는 자세한 롤백 절차를 유지합니다.

다양한 조건에서 이러한 롤백 시나리오를 정기적으로 테스트하여 효과를 검증하고 팀이 비상 절차에 익숙한지 확인합니다. 기능 플래그는 특정 사용자 그룹 또는 트랜잭션에 대한 새 기능을 선택적으로 활성화하여 점진적인 롤아웃도 가능하게 합니다. 이렇게 하면 전환 중에 추가적인 위험 완화 계층이 제공됩니다.