현재 구매, 결제, 재무 운영에 사용되는 내부 엔터프라이즈 시스템을 운영하고 있습니다. 이 시스템은 Microsoft SQL Server를 사용하는 온프레미스 데이터베이스에서 실행되며, 모든 금융 거래 및 내부 워크플로 데이터를 저장합니다.
이제 고객을 위한 온라인 결제 서비스를 활성화해야 하는 새로운 요구사항이 생겼습니다. 이 서비스는 외부(아마도 클라우드)에 노출될 것이며, 거래 내역이 내부 데이터베이스에 반영될 수 있도록 기존 재무 시스템과 상호 작용해야 합니다.
주요 우려는 아키텍처, 보안, 데이터 동기화와 관련이 있습니다.
현재 설정의 주요 사항:
- 핵심 시스템과 데이터베이스는 내부(온프레미스)에 호스팅됩니다.
- 데이터베이스에는 민감한 금융 및 결제 데이터가 포함되어 있습니다.
- 내부 프로세스는 현재 데이터베이스 구조와 워크플로에 의존합니다.
새로운 요구사항:
- 인터넷을 통해 접근 가능한 온라인 결제 서비스를 개발합니다.
- 온라인 서비스의 거래가 내부 시스템을 업데이트하도록 보장합니다.
- 데이터 무결성과 보안을 유지합니다.
- 내부 시스템의 성능 문제를 방지합니다.
몇 가지 가능한 접근 방식을 검토 중이지만, 어떤 것이 가장 좋은 모범 사례인지 확실하지 않습니다:
- 클라우드 결제 서비스가 보안 네트워킹을 통해 내부 SQL Server 데이터베이스에 직접 연결하도록 허용합니다.
- 클라우드에 데이터베이스의 복제본 또는 읽기/쓰기 가능한 복사본을 유지합니다.
- 온프레미스와 클라우드 간에 SQL Server 복제(트랜잭션 또는 스냅샷)를 사용합니다.
- 모든 트랜잭션을 처리하고 내부 데이터베이스를 업데이트하는 API 또는 미들웨어 계층을 도입합니다.
- 별도의 데이터베이스를 유지하고 트랜잭션을 비동기적으로 동기화합니다.
주요 질문:
- 내부 SQL Server 데이터베이스를 클라우드 서비스에 직접 노출하는 것이 권장됩니까?
- 복제, 보조 데이터베이스 또는 서비스/API 계층 중 어느 것을 사용해야 할까요?
- 온프레미스 재무 시스템을 온라인 결제 플랫폼과 통합하는 데 일반적으로 사용되는 아키텍처 패턴은 무엇입니까?
- 내부 거래와 온라인 결제 간의 일관성을 어떻게 보장할 수 있습니까?
- 이 시나리오에 권장되는 SQL Server 기능이나 패턴(복제, 서비스 브로커, CDC 등)이 있습니까?
모범 사례, 아키텍처 패턴 또는 실제 구현에 대한 조언을 해주시면 감사하겠습니다.