If you are looking forward to migrating your PostgreSQL database to AWS EC2 cloud servers, you can do so by following the simple steps we have posted below. You can make it more reliable and secure from accidental EC2 instance crashing by allowing the postgresql server to run from an EBS volume. You can also take a snapshot of the EBS volume which will be stored on AWS storage service s3 which will make it highly reliable by making it available on multiple AWS availability zones that spans across datacenters.
1 ) Sign up for AWS EC2 and S3 services .
2 ) Launch an EC2 instance using AWS EC2 API tool or GUI’s like Elastic fox or AWS Management Console
3 ) Launch an EBS and attach it to the instance
4) Check if the attached EBS is present on the instance
[bash]fdisk -l[/bash]
if /dev/sdh is the name of the EBS volume , it will be present without a valid partition table , so format the EBS volume .
[bash]mkfs -t ext3 /dev/sdh ( or mkfs.ext3 /dev/sdh )[/bash]
5 ) Create a directory /ebs and mount the EBS volume to it
[bash]
mkdir /ebs
mount /dev/sdh /ebs
[/bash]
6 ) Install postgresql server
[bash]yum install postgresql-libs postgresql postgresql-server[/bash]
7 ) Create a new data directory for postgresql database in EBS volume
[bash]mkdir /ebs/pgsql[/bash]
8 ) Stop Postgresql server if it is already running on your instance
[bash]/etc/init.d/postgresql stop[/bash]
9 ) Move the Postgresql data directory to the EBS volume
[bash]mv /var/lib/pgsql /ebs[/bash]
10) Edit the init script for Postgresql and give the correct path for PGDATA and PGLOG
[bash]
vi /etc/init.d/postgresql
PGDATA=/ebs/pgsql
PGLOG=/ebs/pgsql/pgstartup.log
[/bash]
11 ) Edit Postgresql configuration files to give access to database client , database , & database user .
[bash]
vi /ebs/pgsql/data/pg_hba.conf
host all all 10.250.51.0/32 trust
vi /ebs/pgsql/data/postgresql.conf
listen_addresses = ‘*’
port = 5432
[/bash]
12) Start the Postgresql server
[bash] /etc/init.d/postgresql start[/bash]