콘텐츠로 이동
AWS 문서0.4

데이터베이스 설정 해석

최신 안정판 AWS 0.4.0 릴리스 기준

AWS 기반 데이터베이스 설정은 transaction 안에서 문자열 하나를 몰래 조회하는 기능이 아니라 단계가 분명한 파이프라인입니다.

AwsDatabaseConnectionProperties에는 로컬 기본값과 선택적인 Secrets Manager·Parameter Store descriptor가 함께 들어갑니다. AwsDatabaseSettingsResolver가 descriptor를 URL, driver, username, password 또는 IAM 설정으로 바꾼 뒤에 pool을 만듭니다.

val properties = AwsDatabaseConnectionProperties(
secretSource = AwsDatabaseConfigSource(
type = AwsDatabaseConfigSourceType.SECRETS_MANAGER,
sourceId = "prod/orders-db",
),
pool = AwsDatabasePoolProperties(maximumPoolSize = 12),
)
val resolved = resolver.resolve("orders", properties)

원격 값이 비어 있는 로컬 필드만 채우는지, 설정된 값도 덮어쓰는지 문서로 정하세요. resolver 경계를 두는 이유는 Spring, Ktor, 테스트, 사용자 정의 배포가 같은 결정 규칙을 사용하게 하기 위해서입니다.

password는 AwsSecretString으로 감싸 진단 출력에서 가립니다. JDBC driver에 넘기는 순간에만 값을 꺼내세요. 해석된 properties 전체를 로그나 health endpoint에 출력하면 안 됩니다.

애플리케이션 시작 시 database name, driver class, URL, 인증 방식, pool 제한, source ID를 검증하세요. optional source는 없어도 되지만 필수 source가 없으면 불완전한 pool을 만들지 말고 시작을 실패시켜야 합니다.

AWS 없이 fake resolver로 우선순위와 redaction을 검증하세요. 원격 payload 형식은 emulator test로, 최종 연결은 일회용 JDBC database로 따로 확인합니다.