Skip to content

QA plan: Data module — Aurora + pgvector (#22)

Story: Data module — Aurora Serverless v2 (0-ACU) + pgvector + Data API (#22)
Capability: AWS infrastructure (#19)
ADR: RAG001 — 0-ACU auto-pause, Lambda outside VPC, RDS Data API

TypeCoverage
IaC lintterraform validate and tflint on modules/data pass
Static (plan review)min_capacity = 0 on the Aurora Serverless v2 scaling configuration
Static (plan review)enable_http_endpoint = true (RDS Data API enabled)
Static (plan review)pgvector parameter group or cluster parameter configured
Static (plan review)Storage encryption enabled (storage_encrypted = true)
Integration (manual, QA)Aurora cluster starts; aws rds describe-db-clusters shows HttpEndpointEnabled: true
Integration (manual, QA)Data API call via aws rds-data execute-statement succeeds and returns a result
Integration (manual, QA)Aurora auto-pauses after inactivity (observe via CloudWatch ServerlessDatabaseCapacity metric dropping to 0)
SecurityCluster security group denies inbound from 0.0.0.0/0 (verified via network module)
SecuritySecrets Manager secret ARN is wired to the cluster credential; no plaintext password in plan output
  • Story #21 (network module) deployed to QA
  • DB credential secret exists in Secrets Manager (Story #25)
  • terraform validate and tflint exit 0
  • Plan shows min_capacity = 0, enable_http_endpoint = true, storage_encrypted = true
  • Manual QA: Data API test call succeeds; SELECT 1 via rds-data execute-statement returns 1
  • Manual QA: Aurora auto-pause observed within the expected timeout window (QA configured to pause harder than Prod per RAG001)

IaC lint: CI. Integration: manual against QA env.

terraform validate, tflint, AWS CLI (rds-data, rds, cloudwatch).

Plan-level assertions are automated in CI via terraform show -json parsing. Integration checks are manual post-deploy with documented commands in the Feature acceptance comment.

  • Aurora cold-resume latency (~20s typical) will affect the first request after the cluster auto-pauses. The authorizer and API tests must account for this in QA smoke runs by warming up before timing-sensitive assertions.
  • pgvector availability on Aurora Serverless v2 depends on the Aurora PostgreSQL engine version. Verify the chosen engine version supports pgvector before first apply.

RAG001: Aurora Serverless v2 with 0-ACU auto-pause, pgvector, RDS Data API. Exit criteria directly verify each property.