피드로 돌아가기
Multicloud Execution Portability: Abstracting AWS DynamoDB and Azure Cosmos DB via Hexagonal Architecture
Dev.toDev.to
Infrastructure

Hexagonal Architecture 기반 AWS-Azure 데이터베이스 추상화 및 실행 포터빌리티 확보

Multicloud Execution Portability: Abstracting AWS DynamoDB and Azure Cosmos DB via Hexagonal Architecture

Cláudio Filipe Lima Rapôso2026년 6월 6일10advanced

Context

특정 클라우드 벤더의 SDK에 종속된 Monolithic 데이터 액세스 레이어로 인한 Vendor Lock-in 발생. AWS 장애 시 Azure로의 즉각적인 Failover가 불가능한 구조적 한계 노출.

Technical Solution

  • Domain Invariants와 외부 인프라를 엄격히 분리하는 Hexagonal Architecture 채택
  • Python ABC(Abstract Base Class)를 활용한 Outbound Port 정의로 도메인 계층의 SDK 의존성 제거
  • boto3 및 azure-cosmos 라이브러리를 캡슐화한 전용 Infrastructure Adapter 구현을 통한 런타임 주입 구조 설계
  • 도메인 전용 DTO 사용을 강제하여 벤더별 JSON 포맷 및 응답 객체의 도메인 계층 침범 차단
  • Cosmos DB의 Gateway Mode로 인한 지연 시간 해결을 위해 TCP 10000-20000 포트 기반 Direct Mode 설정 적용
  • Terraform을 통한 AWS DynamoDB와 Azure Cosmos DB의 교차 프로비저닝 환경 구축

- 도메인 서비스가 특정 벤더의 SDK 객체를 직접 반환하거나 인자로 받는지 검토 - 인터페이스 기반의 Port-Adapter 패턴을 적용하여 인프라 교체 비용 최소화 설계 - Azure Cosmos DB 사용 시 네트워크 지연 최적화를 위해 Direct Mode 연결 설정 확인 - 멀티클라우드 DR 전략 수립 시 Compute 포터빌리티와 데이터 복제 메커니즘(Streams, Event Grid)의 병행 검토

원문 읽기