w3resource

Comprehensive Guide to Hosting PostgreSQL on Hetzner Cloud


Using PostgreSQL on Hetzner for Cloud Database Hosting

Hetzner is a renowned cloud hosting provider offering high-performance servers, including dedicated and cloud solutions. PostgreSQL, a leading open-source relational database, is commonly deployed on Hetzner infrastructure to leverage its scalability, flexibility, and cost efficiency.

Deploying PostgreSQL on Hetzner provides a robust database solution with the following benefits:

  • High Performance: Hetzner's infrastructure ensures quick query processing and high availability.
  • Scalability: Ideal for applications requiring database scaling.
  • Cost Efficiency: Competitive pricing for storage and compute resources.

PostgreSQL on Hetzner can be used for various applications such as web development, analytics, and enterprise software.


Setup and Configuration

Step 1: Create a Hetzner Cloud Instance

    1. Log in to your Hetzner account.

    2. Navigate to the Cloud section and create a new instance.

    3. Choose an appropriate server configuration (e.g., Ubuntu 22.04).

    4. Assign SSH keys for secure access.

Step 2: Install PostgreSQL

    1. Update system packages:

    sudo apt update && sudo apt upgrade -y
    

    2. Install PostgreSQL:

    sudo apt install postgresql postgresql-contrib -y
    

    3. Verify installation:

    psql --version
    

Step 3: Configure PostgreSQL

    1. Edit the PostgreSQL configuration file:

    sudo nano /etc/postgresql/14/main/postgresql.conf
    

    2. Allow connections from external sources:

    Modify the listen_addresses parameter:

    listen_addresses = '*'
    

    3. Update pg_hba.conf to allow external connections:

    sudo nano /etc/postgresql/14/main/pg_hba.conf
    

    Add the following line for external access:

    host all all 0.0.0.0/0 md5
    

    4. Restart PostgreSQL:

    sudo systemctl restart postgresql
    

Step 4: Secure PostgreSQL

    1. Create a strong password for the PostgreSQL user:

    ALTER USER postgres WITH PASSWORD 'securepassword';
    

    2. Enable firewalls:

    sudo ufw allow 5432/tcp
    sudo ufw enable
    

Example: Connecting to PostgreSQL on Hetzner

    1. Install psql on a client machine:

    sudo apt install postgresql-client -y
    

    2. Connect to the PostgreSQL server:

    psql -h <Hetzner_server_IP> -U postgres -d postgres
    

    Replace <Hetzner_server_IP> with your Hetzner server's IP address.

    3. Run SQL commands:

    Code:

    -- Create a sample database
    CREATE DATABASE hetzner_test;
    
    -- Create a table
    \c hetzner_test
    CREATE TABLE users (
        id SERIAL PRIMARY KEY,
        name VARCHAR(100),
        email VARCHAR(100)
    );
    
    -- Insert data
    INSERT INTO users (name, email) VALUES ('Jana Isabel', '[email protected]');
    
    -- Retrieve data
    SELECT * FROM users;
    

Explanation:

    1. Cloud Instance Setup: Hetzner provides a robust cloud infrastructure optimized for database hosting, making it suitable for PostgreSQL.

    2. PostgreSQL Configuration: External connectivity ensures that multiple clients or applications can interact with the database.

    3. Data Security: Configuring strong passwords and firewalls prevents unauthorized access.

    4. Database Commands: SQL operations demonstrate how to create, modify, and query data in a PostgreSQL database hosted on Hetzner.


Best Practices

  • Regular Backups: Use pg_dump or Hetzner's snapshot tools.
  • Monitor Performance: Employ tools like pgAdmin or Hetzner monitoring.
  • Optimize Queries: Use PostgreSQL indexing and query optimization for better performance.

All PostgreSQL Questions, Answers, and Code Snippets Collection.



Follow us on Facebook and Twitter for latest update.