[Feature] DNS 관리 및 조회 기능 구현 #187
Merged
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체크리스트