Gå til hovedinnhold

Admissio Backup og restore

Å gjøre en backup-restore av database i AWS RDS består av to overordnede steg:

  1. Lage en ny recovery database-server i Amazone Cloud Console via "Restore to point in time"-funksjonaliteten.

  2. Endre konfigurasjon i Admissio til å ta i bruk den nye database-serveren.

I det følgende beskriver vi fremgangsmåten for begge disse stegene. Et par ting man bør være klar over fra start:

  • Du trenger tilgang til https://aws.sikt.no for å gjøre backup-restore. Tilgang styres av Entra ID-gruppen RG_AWS_StudieadmCommonServices_LimitedAdmin.
  • Å gjøre restore fra backup vil lage en ny database-server. Dette er en viktig ting å forstå, fordi etter at backup-restore har begynt vil all ny data som sendes til den gamle database-server ikke være tilgjengelig i den nye.
  • Prosedyren tar litt lang tid, mellom 30 og 60 minutter. Man bør derfor skru av applikasjonen i produksjon for å unngå at det kommer inn mer data som da uansett vil forsvinne etter man omkonfigurerer applikasjonen.
  • En helt tydelig anbefaling er at denne prosedyren bør utføres av minst to personer sammen. Dette er anbefalt for at en enkeltperson ikke skal måtte sitte med alt ansvar og alle valg alene.
  • Tilgang til den nye databasen fra lokale maskiner er begrenset av brannmur-regler. For de eksisterende databasene har vi satt opp ACLS-regler for Tailscale som gjør lokal utvikling praktisk, men dette vil ikke virke uten videre på nye database-servere. I krisetilfeller er det greit å vite at man kan redigere brannmur-regler i AWS for RDS-instansen direkte for å åpne for egen IP.

Innhold

Restore to point in time via Amazone Cloud Console

En "Point in time recovery server" er en komplett kopi av database-serveren som restores fra. Det betyr at alle brukere, databaser, konfigurasjon, logg og data opp til recovery-tidspunktet blir med. Så fort den nye database-serveren er oppe og kjører kan vi gå i gang med å oppdatere konfigurasjon.

  1. Gå til https://aws.sikt.no - Logg inn på "Studieadministrasjon Common Services" med "LimitedAdmin":
    image
  2. Pass på at du er i "Europa (Stockholm)"-regionen:
    image
  3. Finn "Aurora and RDS" i tjeneste-bildet til AWS-konsollen:
    image
  4. I menyen til venstre, klikker du på "Databases". Da kommer du til en side som ser omtrent slik ut:
    image
  5. Klikk på databasen du trenger å gjøre en restore av. Under "Actions", kan du velge "Restore to point in time":
    image
  6. På neste bildet kan du velge et tidspunkt du vil gjøre restore basert på. Per i dag kjører vi PostgreSQL med wal_segment_timeout på 5 minutter, så det kan være inntil 5 minutter data som ikke blir med i backup. Hvis du trenger å se på databasen slik den var for eksempel forrige uke, så kan du justere her:
    image
  7. Du må oppgi en "DB instance identifier", fordi recovery fra backup vil lage en helt ny database-server. Dette navnet blir en del av ny connection URL:
    image
  8. Nederst i bildet kan vi velge vedlikeholdsvindu for databasen og skru på deletion protection:
    image
  9. La Connectivity-seksjonen stå med ferdigutfylt VPC - da havner den nye databasen i samme VPC og security group som den som man gjør en backup-restore fra. Men pass på at databasen har "Public access" skrudd på:
    image
  10. Når backupen er restorert kan man gå inn på det nye database-objektet for å finne ny URL - se "Endpoint & Port" her:
    image

Oppdatere konfigurasjon

I Admissio må man endre PGHOST-variabelen til å peke til den nye database-URL'en. Dette gjøres ved å oppdatere konfigurasjon for hostname i følgende Vault-hemmeligheter:

Når konfigurasjonen er oppdatert må man restarte applikasjonen i Kubernetes slik at ny konfigurasjon blir gjeldende.