Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
[FEATURE] AWS Route53(DNS) 관리 기능 구현
개요
Issue #181에 따라 AWS Route53(DNS) 호스팅 존 관리 기능을 헥사고날 아키텍처로 구현했습니다.
멀티 클라우드 환경을 고려하여 CSP 중립적인 인터페이스를 제공하며, 현재는 AWS Route53을 지원합니다.
구현 범위
구현 내용
1. CloudResource 리소스 타입 확장
CloudResource.ResourceType에DNS_ZONE추가2. AWS Route53 설정 클래스 (
AwsDnsConfig)위치:
src/main/java/com/agenticcp/core/domain/cloud/adapter/outbound/aws/config/AwsDnsConfig.javaRegion.AWS_GLOBAL사용주요 기능:
createRoute53Client(): 세션 자격증명으로 Route53Client 생성3. AWS Route53 매퍼 (
AwsDnsMapper)위치:
src/main/java/com/agenticcp/core/domain/cloud/adapter/outbound/aws/dns/AwsDnsMapper.java주요 기능:
toCloudResource(): HostedZone → CloudResource 변환 (다양한 Command 타입 지원)toCreateRequest(): DnsCreateCommand → CreateHostedZoneRequest 변환.포함, CSP 중립적으로 저장)/hostedzone/Z1234567890↔Z1234567890)4. AWS Route53 관리 어댑터 (
AwsDnsManagementAdapter)위치:
src/main/java/com/agenticcp/core/domain/cloud/adapter/outbound/aws/dns/AwsDnsManagementAdapter.javaDnsManagementPort인터페이스 구현주요 기능:
createHostedZone(): 호스팅 존 생성updateHostedZone(): 호스팅 존 수정deleteHostedZone(): 호스팅 존 삭제5. AWS Route53 발견 어댑터 (
AwsDnsDiscoveryAdapter)위치:
src/main/java/com/agenticcp/core/domain/cloud/adapter/outbound/aws/dns/AwsDnsDiscoveryAdapter.javaDnsDiscoveryPort인터페이스 구현주요 기능:
listHostedZones(): 호스팅 존 목록 조회getHostedZone(): 특정 호스팅 존 조회getZoneStatus(): 호스팅 존 상태 조회6. 의존성 추가
파일:
pom.xml아키텍처 특징
헥사고날 아키텍처 준수
DnsManagementPort,DnsDiscoveryPort구현adapter/outbound/aws/dns/에만 존재CloudResource엔티티 활용CSP 독립성 보장
보안 및 자격증명 관리
Route53 특화 고려사항
1. 글로벌 서비스
AwsDnsConfig에서Region.AWS_GLOBAL사용2. 호스팅 존 이름 형식
example.com.)3. Private Zone과 VPC 연결
DnsCreateCommand의vpcId필드로 VPC 지정VPC.vpcId()와VPC.vpcRegion()모두 필요4. 네임서버 정보
CreateHostedZoneResponse.delegationSet().nameServers()에서 추출configuration및metadataJSON에 저장5. Caller Reference
callerReference필수파일 구조
참고
docs/HEXAGONAL_ARCHITECTURE_GUIDE.md체크리스트