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.

Description

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.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/PostgreSQL/snippets/postgresql-hetzner.php