Skip to main content

AWS system map

Canonical live AWS inventory for Drape, taken 2026-09-17 against account 230790682930. Workloads are concentrated in us-east-1. Other US regions (us-east-2, us-west-1, us-west-2) have a default VPC only — no Amplify, ECS, ELB, RDS, ECR, Lambda, or Secrets Manager apps.

This page is the evidence map. The readable topology is Infrastructure. Deploy mechanics are Web deploys and Backend deploys.

Evidence classes

LIVE — returned by AWS APIs in this inventory. DOCS-SUPPORTED — recorded in Drape-Docs (cutover, READMEs, workflows) but not re-proven by reading secret values. STALE — contradicted by live APIs. UNKNOWN — API did not settle it. LEGACY CANDIDATE — present, likely leftover; not approved for deletion.

No secret values, passwords, connection strings, or API keys are recorded here. DATABASE_URL → RDS host mapping is DOCS-SUPPORTED from the prod cutover and backend READMEs — Stage 2A did not read secret payloads.

Account and regions

ItemValueClass
Account230790682930LIVE
Primary regionus-east-1LIVE
Other US regionsDefault VPC only; empty of Drape appsLIVE

Live architecture (us-east-1)

ALB ECS RDS

Amplify

Route 53 zone drape.to

host api LIVE

default / dev-api LIVE

docs-supported not secret-read

docs-supported not secret-read

drape.to / www

brand + wildcard

admin

docs

api

dev-api

Marketing WEB_COMPUTE

Brand WEB_COMPUTE

Admin WEB_COMPUTE

Docs WEB

drape-alb

service drape-prod

service drape-dev

RDS prod-live docs-supported

RDS drape-postgres probable DEV

ECS → RDS arrows are docs-supported (cutover + README), not proven by reading secret contents. drape-postgres is probable DEV, not API-verified. Legacy drape-postgres-prod is omitted here and is not approved for deletion. ALB host routing is LIVE.

Cluster name is drape. drape-prod and drape-dev are services on that cluster, not cluster names.

Public web — Amplify

All four apps are in us-east-1. Git connections on Amplify are the org (https://github.com/drape-ai-llc/...), not KCB1099/*.

AppApp IDPlatformGit repo (Amplify)Default domainCustom domain
Drape-Marketingd25a3s1rbghls0WEB_COMPUTEdrape-ai-llc/drape-marketingd25a3s1rbghls0.amplifyapp.comdrape.to + www on main; also branch develop
Drape-branddu0asj4lh5zwrWEB_COMPUTEdrape-ai-llc/drape-branddu0asj4lh5zwr.amplifyapp.combrand + *.drape.to
Drape-admin-v1d2pa8ox8j0q7chWEB_COMPUTEdrape-ai-llc/drape-admin-v1d2pa8ox8j0q7ch.amplifyapp.comadmin.drape.to
Drape-Docsd2ip1x1ygwzne5WEBdrape-ai-llc/drape-docsd2ip1x1ygwzne5.amplifyapp.comdocs.drape.to LIVE (not amplifyapp-only)

Amplify domain-association notes (metadata, not DNS):

  • Marketing apex verified=false, www verified=true.
  • Brand + wildcard both verified=false even though Route 53 CNAMEs match and domainStatus is AVAILABLE. Treat this as an Amplify console quirk, not as “wildcard DNS is missing.”
  • Admin and docs verified=true.

STALE: older docs claimed Amplify Git connect to KCB1099/* and that this docs site was amplifyapp-only / manual-deploy only.

CloudFront

Amplify-managed CloudFront hostnames are LIVE via Route 53 + Amplify domain associations:

HostnameFronts
dr97vmdco0hao.cloudfront.netdrape.to / www
d2yv7dj5tfi9vi.cloudfront.netbrand.drape.to and *.drape.to
d21ssgtyd9wiv8.cloudfront.netadmin.drape.to
d1p7il2uis0gn.cloudfront.netdocs.drape.to

ListDistributions in this account returned empty (not AccessDenied). Amplify abstracts CloudFront distribution IDs; do not treat “no distributions listed” as “no CloudFront.”

DNS — Route 53

Hosted zone drape.to. / Z00780563EFBECXPWSBK4 — LIVE. There is a Route 53 zone in this account.

RecordTargetClass
Apex Aalias → dr97vmdco0hao.cloudfront.netLIVE
wwwCNAME → same CloudFront hostnameLIVE
brandCNAME → d2yv7dj5tfi9vi.cloudfront.netLIVE
*.drape.toCNAME → same brand CloudFront hostnameLIVE
adminCNAME → d21ssgtyd9wiv8.cloudfront.netLIVE
docsCNAME → d1p7il2uis0gn.cloudfront.netLIVE
apiA alias → drape-alb-1305867817.us-east-1.elb.amazonaws.comLIVE
dev-apiA alias → same ALBLIVE

STALE: pages that say “No Route 53 / external DNS only.”

staging.drape.to is not in this zone map. Dev API is dev-api.drape.to.

API path — ALB → ECS Fargate → RDS

LayerResourceNotesClass
ALBdrape-alb / drape-alb-1305867817.us-east-1.elb.amazonaws.com / VPC vpc-0eb9cce93e675877finternet-facing, activeLIVE
Listener :80default → drape-dev-tg; host api.drape.todrape-prod-tgLIVE
Listener :443ACM cert for api + dev-api; same host rulesLIVE
TG proddrape-prod-tg :8000 healthyLIVE
TG devdrape-dev-tg :8000 healthyLIVE
ECS clusterdrapenot named drape-prodLIVE
ECS service proddrape-prod Fargate, desired/running 1; public IP ENABLED; no NATtask def drape-prod:10 at inventory timeLIVE
ECS service devdrape-dev Fargate, desired/running 1task def drape-dev:22 at inventory timeLIVE
ECRdrape-backend-postgrestags include prod / devLIVE
VPCdefault VPC vpc-0eb9cce93e675877f 172.31.0.0/16no custom VPCLIVE
NATnonematches ADR-0002LIVE

Backend code: Drape-AI-LLC/Drape- path backend-postgres/. develop auto-deploys ECS drape-dev; prod is workflow_dispatch onto drape-prod. DOCS-SUPPORTED from repo workflows, consistent with live ECR tags and services.

Default ALB action sends unmatched Host headers to dev. Only api.drape.to is pinned to prod.

RDS classifications (do not approve deletion)

Three PostgreSQL 16.13 instances exist. Do not delete any of them from this inventory.

InstanceExposureClassEvidence
drape-postgres-prod-livedb.t4g.small, privateACTIVE PRODCutover record. Host not secret-read proven.
drape-postgresdb.t4g.micro, publicprobable ACTIVE DEVREADME shortcut. Not secret-read proven.
drape-postgres-proddb.t4g.small, privateLEGACY CANDIDATERollback leftover. Not approved for deletion.

Lightsail is documented as already gone in the cutover record (DOCS-SUPPORTED). This Stage 1 inventory did not re-query the Lightsail API.

STALE: docs that still say the API lives only on Render, or that Postgres is off-AWS. Render Mongo remains a separate non-AWS system.

ACM

CertSANsStatusIn useClass
19f9816e-8896-4a4b-9a60-c03c133888baapi.drape.to, dev-api.drape.toISSUEDALB drape-albLIVE
0d4fa738-…api.drape.to, dev-api.drape.toVALIDATION_TIMED_OUT / failed lineagenoneLEGACY CANDIDATE

Amplify manages its own web certs; the ALB cert above is the user-visible ACM object in this account.

Secrets Manager (names and metadata only)

NameNotesClass
drape/backend/prod-keysLastChanged ~2026-09-14LIVE (name)
drape/backend/shared-keysLastChanged ~2026-09-05LIVE (name)
rds!db-994e42ac-…RDS-managed; rotation enabledLIVE (name)

Values were not read.

Empty in us-east-1 (LIVE)

Under the inventory role, these APIs returned empty:

  • S3 buckets: 0 — object storage remains Supabase
  • Lambda functions: 0
  • API Gateway REST/HTTP: 0
  • ElastiCache: 0
  • EC2 instances: 0
  • SSM parameters: 0 listed via DescribeParameters

CloudWatch log groups seen (metadata only; no events read): /aws/amplify/d25a3s1rbghls0, /aws/amplify/d2pa8ox8j0q7ch, /ecs/drape-backend-postgres.

IAM (read-only names)

ItemValueClass
UsersKenji, Lawrence, WesLIVE
Notable rolesDrapeChiefReadonly, drape-ecs-execution-role, drape-ecs-task-role, drape-github-deploy-role, Amplify SSR logging rolesLIVE

Security groups

SGNameNotable ingressClass
sg-0df07f6342830f4dfdrape-alb-sg80/443 from 0.0.0.0/0LIVE
sg-0a6616040afeaada4drape-task-sg8000 from ALB SGLIVE
sg-0b2dbe806111e0702drape-pg-db-sg5432 from VPC CIDR + task SG + 200.72.39.18/32LIVE
Document only — do not change

Postgres SG allowlist 200.72.39.18/32 has an UNKNOWN owner. Brand Amplify verified=false on brand + *.drape.to is a metadata quirk (DNS CNAMEs match; domainStatus AVAILABLE). Neither is an instruction to edit AWS, IAM, or DNS.

Domain → AWS map

DomainFront doorBackendEnvClass
drape.to / www.drape.toAmplify Marketing → CloudFront hostnamestatic/SSR webprod (main)LIVE
brand.drape.to / *.drape.toAmplify brand → CloudFront hostnamebrand portalprod intent; Amplify verified=falseLIVE DNS / UNKNOWN cert-trust UX
admin.drape.toAmplify admin → CloudFront hostnameadminprodLIVE
docs.drape.toAmplify Docs → CloudFront hostnamethis siteprodLIVE
api.drape.toRoute 53 → ALB host rule → prod TG → ECS drape-prodPostgres APIprodLIVE
dev-api.drape.toRoute 53 → ALB default → dev TG → ECS drape-devPostgres APIdevLIVE

Repo → deploy

RepoDeploy targetClass
drape-ai-llc/drape-marketingAmplify d25a3s1rbghls0LIVE
drape-ai-llc/drape-brandAmplify du0asj4lh5zwrLIVE
drape-ai-llc/drape-admin-v1Amplify d2pa8ox8j0q7chLIVE
drape-ai-llc/drape-docsAmplify d2ip1x1ygwzne5LIVE
Drape-AI-LLC/Drape- backend-postgres/ECR drape-backend-postgres → ECS drape-prod / drape-devLIVE images; Git path DOCS-SUPPORTED
Drape-AI-LLC/Drape- backend/ (Mongo)Render (non-AWS)DOCS-SUPPORTED

Production vs dev

EnvEvidence
Prod webAmplify main for marketing / brand / admin / docs
Prod APIapi.drape.todrape-prod / drape-prod-tg / ECR tag prod
Dev APIdev-api.drape.to (and ALB default) → drape-dev / drape-dev-tg / ECR tag dev
Marketing developAmplify branch develop on Marketing (no separate custom domain in this inventory)

Legacy / orphan candidates (not approved for deletion)

  1. RDS drape-postgres-prod beside drape-postgres-prod-live — cutover rollback leftover.
  2. ACM cert 0d4fa738-… VALIDATION_TIMED_OUT duplicate for api/dev-api.
  3. Extra Amplify SSR logging role/policy pairs beyond the four live apps.
  4. Historical ECS task-definition revisions (expected; not orphan infra).

drape-postgres is probable ACTIVE DEV, not a delete candidate.

External / non-AWS (unchanged by this inventory)

  • Render Mongo FastAPI backend / privacy URL hosting — separate mobile path.
  • Apple / EAS / TestFlight, Stripe, Upstash Redis, Supabase Storage — out of the AWS map.