potential components

Amazon

relational database [risky: high; effort: high]

  • should be updated to avoid penalties for maintenance (First year ~ 1340 USD per month, second year ~2700 USD per month, third year ~ 4000 USD per month)
  • simplify setup by making it single AZ

availability zones [risky: high; effort: high]

  • reduce number of availability zones to 1 everywhere

statistics [risky: medium; effort: medium]

  • should be migrated to Hetzner
  • before migration make sure that the following is done:
    • sw.min.js is updated in order to use a new endpoint for callback-api on deliver events (which will be switched to Hetzner)
    • sw.min.js uses old endpoint for click events to ensure that they are still processed on Amazon
    • callback-processor sends a duplicate request to the new endpoint for click events, since we need to process them on a Amazon to reflect it on click segments used by poly-campaign while also registering them on Hetzner for statistics purposes

reduntant services [risky: low; effort: low]

  • identify services which can be turned off (but i don’t think there will be many of those)

scaling down [risky: low; effort: low]

  • identify services which can be scaled down (but this won’t bring much savings)

Premises [risky: low; effort: medium]

  • calculate the difference in price between BTS and Hetzner for the same setup: This setup costs 5500 euros per month on BTS and approximately 1000-1500 euros per month on Hetzner, so it definetely worth the hassle.
  • if significant, migrate BTS services to Hetzner:
    • move firebases to Hetzner
    • move argo cd to Hetzner
    • update monitoring to reflect the changes