How to Externalise PostgreSQL

Please follow the guide below to externalise PostgreSQL through MCS.

What we use from AWS

Amazon RDS - Managed relational database service.

Get the PostgreSQL version from MCS

Use the below commands to get the version of PostgreSQL.

mcs@mcs:~/MCS$ docker ps | grep post 5aae76093218 registry.tagvs.com/mcs_postgres:latest "/docker-entrypoint.…" About an hour ago Up About an hour 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp mcs-postgres-1 mcs@mcs:~/MCS$ docker exec 5aae76093218 postgres --version postgres (PostgreSQL) 14.1 (Debian 14.1-1.pgdg110+1)

Create a PostgreSQL database with AWS RDS

Step 1 - Navigate to Amazon RDS → Databases.

Step 2 - Create a database.

Choose the latest available version available on AWS RDS (currently 14.11-R2 is the latest).

Follow the on screen instructions as shown below.

 

 

Step 3 - Wait until database is created.

DB instance identifier: mnm-mcs-postgres

Engine: 14.11-R2

Availability and durability: Multi-AZ DB instance

Master username: postgres

Master password: postgres

Instance configuration: db.t4g.micro ($0.035 per hour)

Allocated storage: 20 (Autoscaling)

Please check Security Groups configuration related to mnm-MCS-postgres

Move MCS database to AWS RDS

Make MCS database backup

Our backup name: 230713_115357_110-rc14-23062101_backup

Download backup just in case to local drive.

Move database to AWS RDS

Step 1 – Navigate to MCS Terminal

  • MCS folder ./run.sh

  • Select run-debug in ./run.sh menu and select (5) run-debug (pg_admin)

MCS operation: 1) start 2) stop 3) logs 4) update 5) run-debug 6) run-kibana 7) setup 8) admin-password-reset 9) exit #? 5

Step 2 - Connect to pg_admin

Open in web browser: http://<MCS_IP>:1234/

Step 3 - Add new server (local MCS database)

  • General:

    • Name: mcs

  • Connection:

    • Host: postgres

    • Maintenance database: mcs_configuration

    • Username: postgres

    • Password: postgress

Step 4 - Add new server (AWS RDS)

  • General:

    • Name: rds

  • Connection:

    • Host: mnm-mcs-postgres.cknefvziywmj.eu-west-1.rds.amazonaws.com

    • Maintenance database: postgres

    • Username: postgres

    • Password: postgress

Step 5 - Backup local MCS database

Select database and make backup.

Step 6 - Create new database in AWS RDS

  • Database: mcs_configuration

  • Owner: postgres

Step 7 - Restore backup to AWS RDS

Select database and make restore.

Make changes in the MCS configuration

Step 1 - Edit the .env file and change POSTGRES_HOST variable

###postgres POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres POSTGRES_HOST=mnm-mcs-postgres.cknefvziywmj.eu-west-1.rds.amazonaws.com POSTGRES_PORT=5432 POSTGRES_DB=mcs_configuration PG_DATA_PATH="./postgres/data" PG_MEM_LIMIT=2g

Step 2 - Edit the docker-compose.yml file and make sure that manager does not depend on postgres anymore.

Step 3 - Edit the docker-compose.yml file and postgres configuration. This is not required anymore.

Step 4 - Restart MCS