2016-04-20 14 views

risposta

12

RDS non consente di ridurre la quantità di memoria allocata a un'istanza di database, ma solo di aumentarla.

Per spostare il database in una quantità inferiore di spazio di archiviazione, è necessario creare una nuova istanza di RDS con lo spazio di archiviazione desiderato, quindi utilizzare pg_dump/pg_restore per spostare i dati dal vecchio database a quello nuovo.

Tenere inoltre presente che un'istanza RDS con 1.000 GB di spazio di archiviazione SSD ha un IOPS di base di 3.000. Un'istanza RDS con 100 GB di spazio di archiviazione SSD ha un IOPS base di 300, con scatti occasionali fino a 3.000.

4

Quando si utilizza RDS, anziché eseguire la tipica "pianificazione della capacità" dell'hardware, è sufficiente eseguire solo il provisioning di uno spazio sufficiente per il disco a breve o medio termine (dipende), espanderlo quando necessario.

Come @Mark B menzionato, è necessario controllare anche l'IOPS. È possibile utilizzare "IOPS provati" se è necessario un DB ad alte prestazioni.

È necessario effettuare un adeguamento dei costi e delle prestazioni prima di passare alla parte di spazio su disco. E.g. se riduci da 1000 GB a 120 GB, per Stati Uniti occidentali, risparmierai 0,125 x 880 GB = 110/mese. Ma il massimo IOPS sarà 120x 3 = 360IOPS

Ti costerà $ 0,10 per fornire ulteriori IOPS per aumentare le prestazioni. Di 'se hai effettivamente bisogno di 800IOPS per una maggiore risposta utente online,
(800-360) x 0,10 = $ 44. Quindi il risparmio effettivo potrebbe alla fine "meno". Non risparmierai denaro se il tuo RDS necessita di 1100 IOPS costanti. E anche altri fattori di sconto potrebbero entrare in gioco.

9

Sulla base di aiuto di AWS here, questo è il processo completo che ha funzionato per me:

1) il dump del database in un file: eseguire questo su una macchina che ha accesso alla rete al database: pg_dump -Fc -v -h your-rds-endpoint.us-west-2.rds.amazonaws.com -U your-username your-databasename > your-databasename.dump

2) Nella console AWS, creare una nuova istanza RDS con spazio di archiviazione più piccolo. (Probabilmente vuoi configurarlo con lo stesso nome utente, password e nome del database.)

3) Ripristinare il database sulla nuova istanza RDS: eseguire questo comando (ovviamente sulla stessa macchina del comando precedente):.. pg_restore -v -h the-new-rds-endpoint.us-west-2.rds.amazonaws.com -U your-username -d your-databasename your-databasename.dump

(nota, al punto 3, che sto usando il punto finale della nuova istanza RDS si noti inoltre non c'è :5432 alla fine degli indirizzi endpoint)

2

Amazon non lo fa consentire di ridurre le dimensioni dell'HDD dell'istanza RDS, è possibile che siano disponibili due opzioni per ridurre le dimensioni dello spazio di archiviazione.

1: -se si possono permettere i tempi di inattività, quindi il backup mysqldump della vecchia istanza può essere ripristinato in una nuova istanza con una minore dimensione di archiviazione.

2: - È possibile utilizzare il servizio di migrazione del database per spostare i dati da un'istanza a un'altra istanza senza tempi di inattività.

+0

Grazie per aver suggerito il servizio di migrazione del database. Ha quasi funzionato per me - fino a quando ho scoperto che non supporta (attualmente) la migrazione corretta delle colonne JSON o JSONB :-( –

Problemi correlati