Files
boc/intelligence/2026-06-15-infra-nedtaktning-rapport.md
T
Bernt bae705aa97 ARCHITECTURE: NFC roadmap, edge AI, audit logging
- Add NFC ePassport roadmap (ICAO 9303, eIDAS)
- Add TensorFlow.js edge face detection (BlazeFace)
- Add structured audit logger (GDPR-compliant)
- Risk scoring support

Part of KYC Apple Native UX v1.1.0
2026-06-29 16:24:48 +00:00

10 KiB
Raw Blame History

Infrastruktur-rapport — Nedtaktning 2026-06-14/15

Utförd av: Bernt (AI-agent)
Datum: 2026-06-14 00:00 2026-06-15 03:50 UTC
Beslut av: Erik Svensson
Syfte: Maximera ekonomisk återhållsamhet. Behåll endast quiXzoom-kritisk infrastruktur.


FÖRE — Maj 2026

Månadskostnad (maj, faktisk)

Post USD/mån
Savings Plans (Compute, 1år No Upfront) 2 461
EC2 Compute (utöver SP) 922
EC2 Other 502
ECS 305
MSK Kafka (3 brokers) 340
VPC/NAT Gateway 228
RDS (2 instanser) 156
CloudWatch 138
ELB (4 st) 39
ElastiCache 63
EKS 74
Bedrock 63
Kinesis 23
GuardDuty 105
Övrigt (Route53/S3/KMS/ECR/etc) 60
TOTALT (exkl. skatt) ~5 420 USD/mån

EC2-instanser (maj)

Instans Typ Status Funktion
server-2 (i-09b2204a52c2f33c9) r8g.4xlarge running quiXzoom + AAMOS — ALLT
server-1 (i-0f5b6425bc415ce20) r8g.4xlarge stopped Dubblett, amos + nginx + ollama
server-3-redundancy (i-0fc20ddba6bb17ead) r6g.xlarge running→stopped Standby utan syfte
graviton-worker ×2 r6g.2xlarge running ECS/K8s workers
karpenter-graviton ×2 r7g.4xlarge running EKS Spot nodes
ci-runner (i-0638c0beae4ce4a1c) t3.medium stopped CI
gpu-training ×2 g5.2xlarge stopped ML-träning

Databaser (maj)

DB Klass Multi-AZ Kostnad
platform-identity-core db.r6g.large JA ~83 USD/mån
platform-plane db.t4g.micro nej ~12 USD/mån

Övrig infrastruktur (maj)

  • EKS cluster "wavult" — Kong gateway, buildkit, k8s platform
  • MSK Kafka — 3 brokers, ej använd av quiXzoom
  • ElastiCache — Redis, okänt syfte
  • NAT Gateway — privata subnets
  • 4× Load Balancers — 3 k8s-relaterade, 1 quiXzoom (aamos-prod-alb)
  • 7× Elastic IPs — 4 orphaned
  • Kinesis — vyra-shot-events, 0 aktivitet
  • Tor-proxy (tor-argus.service) — installerad 2026-06-08 som root, Kina-kringgång
  • GuardDuty — alla features aktiverade inkl. Malware/EKS/RDS

ÅTGÄRDER UTFÖRDA 2026-06-14/15

Säkerhet

Åtgärd Detalj
Tor raderat tor-argus.service stoppad/disabled, /usr/local/bin/tor, /etc/tor, /var/lib/tor borttagna
GuardDuty bantad Disabled: EBS_MALWARE_PROTECTION, RDS_LOGIN_EVENTS, EKS_AUDIT_LOGS, EKS_RUNTIME_MONITORING, LAMBDA_NETWORK_LOGS, RUNTIME_MONITORING. Kvar: CLOUD_TRAIL, DNS_LOGS, FLOW_LOGS, S3_DATA_EVENTS

AWS-resurser borttagna

Resurs Besparing
ALB aamos-prod-alb (+ listeners + target group) 21 USD/mån
RDS platform-identity-core 12 USD/mån
RDS platform-plane 12 USD/mån
Kinesis vyra-shot-events 23 USD/mån
server-1 terminerad (EIP releasad) 4 USD/mån
3× orphaned EIPs (försvann med ALB) 11 USD/mån
GuardDuty features bantade 90 USD/mån

Tidigare nedtaktat (före denna session): EKS, MSK, ECS, ElastiCache, NAT Gateway, graviton-workers, server-3

Databasmigrering RDS → Lokal Postgres

Steg Detalj
Postgres 16 installerad dnf install postgresql16-server, initierad, systemd-enable
Databaser skapade amos (714 tabeller), wavult_identity (734 tabeller)
Dump från RDS pg_dump med SSL: amos 258 MB, wavult_identity 598 MB
Restore lokalt pg_restore -j 4, warnings normala (extensions/sequences)
pg_hba konfigurerad scram-sha-256 på localhost
pgbouncer switchad Pekar nu mot 127.0.0.1:5432 istället för RDS
.env uppdaterad DATABASE_URL, AMOS_DB_URL, SUPABASE_DB_URL → 127.0.0.1
.env backup /opt/amos/.env.bak-rds-20260614-*
RDS deletion protection av modify-db-instance --no-deletion-protection
RDS raderade delete-db-instance --skip-final-snapshot

EFTER — Juni 2026

Kvarvarande infrastruktur

Resurs Detalj
server-2 (i-09b2204a52c2f33c9) r8g.4xlarge, running, 16.170.83.169
Postgres 16 (lokal) /var/lib/pgsql/data, databaser: amos + wavult_identity
pgbouncer 127.0.0.1:6432 → lokal Postgres
NATS JetStream Lokal message bus
nginx Reverse proxy, Let's Encrypt SSL
aamos-prod-tg / ALB BORTTAGEN — DNS pekar direkt på 16.170.83.169
GuardDuty Aktiv, bantad kärna (CloudTrail + DNS + FlowLogs)
Route53 aamos.systems zon, alla A-records → 16.170.83.169
S3 quiXzoom-buckets + platform-backups
ECR Container images
Savings Plans 3.418 USD/tim, löper t.o.m. 2027-04-30

Stoppade instanser (kostar ingenting)

Instans Typ Syfte
server-3-redundancy r6g.xlarge Standby (definieras senare)
ci-runner t3.medium CI/CD
gpu-training g5.2xlarge ML-träning (ALETHEIA/HEPHAISTOS)
ouroboros-gpu-training g5.2xlarge ML-träning backup

Tjänster på server-2 (aktiva)

amos-core.service              active  (port 3100)
quixzoom-api.service           active  (port 3209)
aamos-quixzoom-engine.service  active  (Rust)
aamos-ledger.service           active
aamos-billing-engine.service   active
aamos-api-gateway.service      active
postgresql.service             active  (port 5432, lokal)
pgbouncer.service              active  (port 6432)
nats-server.service            active
nginx.service                  active
openclaw-gateway.service       active
clickhouse.service             active  (Docker)

Ny månadskostnad (estimerad)

Post USD/mån
Savings Plans (fast, ej påverkbar) 2 461
GuardDuty (kärna) ~10
Route53 ~5
S3 ~5
CloudWatch ~5
ECR ~2
Secrets Manager ~2
KMS ~2
TOTALT ~2 492 USD/mån

Besparing vs maj: 2 928 USD/mån (54%)


ÅTERSKAPNINGSGUIDE — Framtida behov

När quiXzoom växer och behöver mer compute

SP täcker 3.418 USD/tim. r8g.4xlarge = ~1.00 USD/tim.
Du har headroom för ytterligare ~2.4 USD/tim compute täckt av SP utan extra kostnad.
Det motsvarar: 2× r8g.2xlarge (0.50/tim styck) ELLER 1× r8g.8xlarge (2.01/tim).

# Starta server-3 (r6g.xlarge, stopped, redo direkt)
aws ec2 start-instances --instance-ids i-0fc20ddba6bb17ead

# Starta ci-runner (t3.medium, för CI/CD-behov)
aws ec2 start-instances --instance-ids i-0638c0beae4ce4a1c

När ML-träning behövs (ALETHEIA/HEPHAISTOS)

# Starta gpu-training (g5.2xlarge, stopped — startar på sekunder)
aws ec2 start-instances --instance-ids i-04239ef03d26b218b
# eller ouroboros-gpu-training
aws ec2 start-instances --instance-ids i-0b96090f76c603b23

# VIKTIGT: Stoppa igen efter körning — g5.2xlarge kostar ~1.21 USD/tim
aws ec2 stop-instances --instance-ids i-04239ef03d26b218b

När RDS-liknande managed DB behövs igen

# Skapa ny RDS t4g.micro (billigaste, ~12 USD/mån)
aws rds create-db-instance \
  --db-instance-identifier <namn> \
  --db-instance-class db.t4g.micro \
  --engine postgres \
  --engine-version 16 \
  --master-username wavult_admin \
  --master-user-password <lösen> \
  --allocated-storage 20 \
  --no-multi-az \
  --no-publicly-accessible \
  --region eu-north-1

# Dump från lokal Postgres till ny RDS:
pg_dump -h 127.0.0.1 -U wavult_admin -d amos -Fc -f /tmp/amos.pgc
pg_restore -h <rds-endpoint> -U wavult_admin -d amos /tmp/amos.pgc

När Load Balancer behövs igen (multi-server setup)

# Skapa ny ALB
aws elbv2 create-load-balancer \
  --name aamos-prod-alb \
  --subnets subnet-XXXX subnet-YYYY \
  --security-groups sg-XXXX \
  --scheme internet-facing \
  --type application

# Skapa target group mot server-2
aws elbv2 create-target-group \
  --name aamos-prod-tg \
  --protocol HTTPS \
  --port 443 \
  --vpc-id vpc-XXXX \
  --target-type instance \
  --health-check-path /health

# OBS: Utan ALB går trafik direkt via nginx på server-2.
# ALB behövs bara vid horisontell skalning (flera instanser).

När MSK Kafka behövs (event streaming i skala)

# NATS JetStream räcker för quiXzoom-volymer.
# MSK motiveras när: >100k events/sek ELLER multi-region ELLER extern integration.
# Kostnad: ~340 USD/mån (3 brokers). Starta först när det är motiverat.

aws kafka create-cluster-v2 \
  --cluster-name aamos-events \
  --provisioned BrokerNodeGroupInfo={InstanceType=kafka.t3.small,...},NumberOfBrokerNodes=3

Savings Plan — vad händer april 2027

SP löper ut 2027-04-30. Från maj 2027:

  • Kostnad för server-2 tillkommer: ~722 USD/mån
  • Total kostnad utan SP: ~750800 USD/mån (server-2 + övrigt)
  • Beslut att ta mars 2027: Köp ny SP (om compute-footprint motiverar) eller kör on-demand
Påminnelse att sätta: mars 2027 — utvärdera ny Savings Plan
Nuvarande SP-id: 77610c74-2f99-4ae5-a3c3-4019c08302b4

SÄKERHETSNOTERINGAR

GuardDuty findings kvar (ej åtgärdade)

  • S3 public anonymous access på quiXzoom-buckets (quixzoom.de, .fr, .eu, etc) — HIGH 8.0
    • Dessa är troligen avsiktliga static-site buckets. Verifiera att de inte exponerar känslig data.
  • CompromisedInstanceGroup (9.0) — härstammar från Tor-trafiken som nu är borttagen.
    • Archivera dessa findings i GuardDuty efter att du bekräftat att Tor är borttaget.

Kvarstående secrets i .env

  • .env på server-2 innehåller klartext-credentials för många tjänster
  • Rekommendation: migrera till AWS Secrets Manager successivt
  • Backup av .env finns i /opt/amos/.env.bak-rds-*

TIDSLINJE

Tid (UTC) Åtgärd
2026-06-14 00:52 Erik beslutar om absolut ekonomisk återhållsamhet
2026-06-14 05:30 Tor-analys, GuardDuty CRITICAL 9.0 identifierat
2026-06-14 05:45 Tor raderat från server-2
2026-06-14 05:47 GuardDuty bantad (90 USD/mån)
2026-06-14 05:48 Kinesis borttagen (23 USD/mån)
2026-06-14 05:50 ALB borttagen (21 USD/mån)
2026-06-14 05:52 server-1 terminerad, EIP releasad (4 USD/mån)
2026-06-14 05:54 Postgres 16 installerad på server-2
2026-06-14 05:59 RDS-dump klar (amos 258 MB, identity 598 MB)
2026-06-14 06:03 Restore till lokal Postgres (714+734 tabeller)
2026-06-14 06:05 .env + pgbouncer switchad till localhost
2026-06-14 06:06 RDS deletion protection av, båda RDS raderade
2026-06-15 03:50 Verifiering — allt rent, rapport klar