How To Install PostgreSQL 13 on Amazon Linux 2

Posted on 226 views

In this article we will be looking at the installation of PostgreSQL 13 on Amazon Linux 2 server. PostgreSQL 13 was released officially on 2020-09-24 by PostgreSQL Global Development Group for general use. It is a release ready for running Production workloads.

PostgreSQL 13 comes with significant improvements to its indexing and lookup system that benefit large databases, including space savings and performance gains for indexes, faster response times for queries that use aggregates or partitions, better query planning when using enhanced statistics, and more.

Step 1: Enable EPEL repository

Since PostgreSQL YUM repository depends on the EPEL repository for some packages. We need to install the EPEL repo RPM along with PGDG repo RPMs to satisfy dependencies in our Amazon Linux 2 Server.

Run the command below to enable EPEL repository on Amazon Linux 2 server:

sudo amazon-linux-extras install epel

Accept installation by pressing the key when asked.

Dependencies Resolved

 Package              Arch           Version      Repository               Size
 epel-release         noarch         7-11         amzn2extra-epel          15 k

Transaction Summary
Install  1 Package

Total download size: 15 k
Installed size: 24 k
Is this ok [y/d/N]: y

Step 2: Install PostgreSQL 13 on Amazon Linux 2

Below are the minimum requirements for the installation in Production setup.

  • 2GB of RAM recommended
  • 1 virtual cpu core
  • 1GB of disk space for installation
  • You also need SSH access to the server as user with sudo privileges.

Run the following commands to ensure PGDG repository is added to your Amazon Linux 2 server.

sudo tee /etc/yum.repos.d/pgdg.repo<

After repository is added run the commands required to install PostgreSQL 13 on Amazon Linux 2:

sudo yum install postgresql13 postgresql13-server

Validate that correct software versions of PostgreSQL are being installed.

Dependencies Resolved

 Package                                       Arch                             Version                                    Repository                        Size
 postgresql13                                  x86_64                           13.0-1PGDG.rhel7                           pgdg13                           1.4 M
 postgresql13-server                           x86_64                           13.0-1PGDG.rhel7                           pgdg13                           5.4 M
Installing for dependencies:
 postgresql13-libs                             x86_64                           13.0-1PGDG.rhel7                           pgdg13                           379 k

Transaction Summary
Install  2 Packages (+1 Dependent package)

Total download size: 7.1 M
Installed size: 30 M
Is this ok [y/d/N]: y

Step 3: Initialize and start database service

You need to generate initial database configurations file before starting the service.

$ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
Initializing database ... OK

The main configuration file for the database server is /var/lib/pgsql/13/data/postgresql.conf .

Service can be started and set to come up on system boot with the commands below.

$ sudo systemctl enable --now postgresql-13
Created symlink from /etc/systemd/system/ to /usr/lib/systemd/system/postgresql-13.service.

Service should have been started without any errors.

$ systemctl status postgresql-13
● postgresql-13.service - PostgreSQL 13 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-13.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-10-20 21:40:08 UTC; 43s ago
  Process: 21041 ExecStartPre=/usr/pgsql-13/bin/postgresql-13-check-db-dir $PGDATA (code=exited, status=0/SUCCESS)
 Main PID: 21046 (postmaster)
   CGroup: /system.slice/postgresql-13.service
           ├─21046 /usr/pgsql-13/bin/postmaster -D /var/lib/pgsql/13/data/
           ├─21049 postgres: logger
           ├─21051 postgres: checkpointer
           ├─21052 postgres: background writer
           ├─21053 postgres: walwriter
           ├─21054 postgres: autovacuum launcher
           ├─21055 postgres: stats collector
           └─21056 postgres: logical replication launcher

Oct 20 21:40:08 systemd[1]: Starting PostgreSQL 13 database server...
Oct 20 21:40:08 postmaster[21046]: 2020-10-20 21:40:08.746 UTC [21046] LOG:  redirecting log output to logging...rocess
Oct 20 21:40:08 postmaster[21046]: 2020-10-20 21:40:08.746 UTC [21046] HINT:  Future log output will appear in..."log".
Oct 20 21:40:08 systemd[1]: Started PostgreSQL 13 database server.
Hint: Some lines were ellipsized, use -l to show in full.

You should now be able to access PostgreSQL database server console and perform DB operations.

$ sudo su - postgres 
$ psql
psql (13.0)
Type "help" for help.

postgres=# CREATE DATABASE testdb;

postgres=# DROP DATABASE testdb;



Gravatar Image
A systems engineer with excellent skills in systems administration, cloud computing, systems deployment, virtualization, containers, and a certified ethical hacker.