Logo

dev-resources.site

for different kinds of informations.

Cómo instalar PostgreSQL en una instancia EC2 con Amazon Linux 2023

Published at
1/5/2025
Categories
aws
cloud
postgres
beginners
Author
briansuarezsantiago
Categories
4 categories in total
aws
open
cloud
open
postgres
open
beginners
open
Author
19 person written this
briansuarezsantiago
open
Cómo instalar PostgreSQL en una instancia EC2 con Amazon Linux 2023

Si necesitas un servidor de base de datos robusto y confiable, PostgreSQL es una excelente opción.

En este tutorial, te guiaré paso a paso para instalar y configurar PostgreSQL en una instancia EC2 utilizando Amazon Linux 2023.


Paso 1: Actualizar el sistema

Asegúrate de que tu sistema esté actualizado antes de instalar cualquier paquete. Para ello, ejecuta el siguiente comando:

sudo dnf update -y
Enter fullscreen mode Exit fullscreen mode

Paso 2: Instalar PostgreSQL

Amazon Linux 2023 incluye PostgreSQL 15 en su repositorio predeterminado, por lo que no necesitas agregar repositorios adicionales. Para instalar PostgreSQL (cliente y servidor), ejecuta:

sudo dnf install postgresql15.x86_64 postgresql15-server -y
Enter fullscreen mode Exit fullscreen mode

💡 Tip: Si necesitas otra versión, verifica las disponibles con:

sudo dnf list postgresql*

Paso 3: Inicializar la base de datos

Inicializa el clúster de la base de datos PostgreSQL utilizando el siguiente comando:

sudo postgresql-setup --initdb
Enter fullscreen mode Exit fullscreen mode

Paso 4: Iniciar y habilitar el servicio de PostgreSQL

1. Inicia el servicio:

sudo systemctl start postgresql
Enter fullscreen mode Exit fullscreen mode

2. Habilita el servicio para que inicie automáticamente al arrancar el sistema:

sudo systemctl enable postgresql
Enter fullscreen mode Exit fullscreen mode

3. Verifica el estado del servicio:

sudo systemctl status postgresql
Enter fullscreen mode Exit fullscreen mode

📸 Aquí tienes un ejemplo de cómo debería verse el estado del servicio:

Estado del servicio PostgreSQL


Paso 5: Configurar PostgreSQL

1. Establecer contraseñas para el usuario postgres

Cambia la contraseña del usuario de sistema y del administrador de la base de datos:

sudo passwd postgres
su - postgres
psql -c "ALTER USER postgres WITH PASSWORD 'your-password';"
exit
Enter fullscreen mode Exit fullscreen mode

⚠️ Recomendaciones al configurar la contraseña

Cumple con los requisitos de seguridad:

  • Al menos una letra mayúscula y una minúscula.
  • Al menos un número.
  • Al menos un símbolo especial (.!@#$%^&*()).
  • Longitud mínima de 8 caracteres.

2. Configurar postgresql.conf

Crea un respaldo del archivo de configuración principal y luego edítalo:

sudo cp /var/lib/pgsql/data/postgresql.conf /var/lib/pgsql/data/postgresql.conf.bck
sudo vi /var/lib/pgsql/data/postgresql.conf
Enter fullscreen mode Exit fullscreen mode

Si necesitas que PostgreSQL escuche en todas las direcciones IP, cambia:

listen_addresses = '*'
Enter fullscreen mode Exit fullscreen mode

3. Configurar autenticación en pg_hba.conf

Crea un respaldo del archivo de autenticación y edítalo:

sudo cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.bck
sudo vi /var/lib/pgsql/data/pg_hba.conf
Enter fullscreen mode Exit fullscreen mode

Cambia ident a md5 para permitir conexiones con autenticación por contraseña:

host    all    all    0.0.0.0/0    md5
Enter fullscreen mode Exit fullscreen mode

4. Reinicia el servicio para aplicar los cambios:

sudo systemctl restart postgresql
Enter fullscreen mode Exit fullscreen mode

5. Crear un usuario y base de datos

Conéctate al servidor PostgreSQL como usuario postgres y ejecuta los siguientes comandos:

sudo -i -u postgres psql
CREATE USER yourusername WITH PASSWORD 'password';
CREATE DATABASE database_name;
GRANT ALL PRIVILEGES ON DATABASE database_name TO yourusername;
exit
Enter fullscreen mode Exit fullscreen mode

Para listar las bases de datos disponibles:

\l
Enter fullscreen mode Exit fullscreen mode

Paso 6: Acceso a la base de datos

Puedes conectarte a PostgreSQL localmente con:

psql -h localhost -U username -d database_name
Enter fullscreen mode Exit fullscreen mode

Para conexiones remotas, asegúrate de que el puerto 5432 esté permitido en el grupo de seguridad de tu instancia EC2.


⚠️ Configuraciones importantes de PostgreSQL

Como recordatorio, estas son algunas configuraciones clave de PostgreSQL que debes conocer:

Elemento de configuración Valor
Puerto predeterminado de PostgreSQL 5432
Usuario predeterminado postgres
Ubicación del archivo postgresql.conf /var/lib/pgsql/data
Ubicación del archivo pg_hba.conf /var/lib/pgsql/data
Base de datos predeterminada postgres
Directorio de datos predeterminado /var/lib/pgsql/data

¡Listo! 🎉

¡Eso es todo! Ahora tienes un servidor PostgreSQL configurado en tu instancia EC2 con Amazon Linux 2023.

Si tienes preguntas o necesitas ayuda para personalizar tu configuración, ¡déjalo en los comentarios! 👇🏻

postgres Article's
30 articles in total
Favicon
Developing a project using Java Spring Framework, JSON, JPA and PostgreSQL
Favicon
PostgreSQL plan_cache_mode
Favicon
Deploy laravel application using vercel : Amazing
Favicon
Diesel vs SQLx in Raw and ORM Modes
Favicon
TimescaleDB in 2024: Making Postgres Faster
Favicon
Primeiros Passos no PostgreSQL: Um Guia Completo para Iniciantes
Favicon
What are the benefits of using bounded quantifiers in regex
Favicon
Tutorial: How We Built a Reverse Video Search System Directly in PostgreSQL
Favicon
Building a Semantic Search Engine with OpenAI, Go, and PostgreSQL (pgvector)
Favicon
TOAST: PostgreSQL's Secret Sauce for Handling Big Data 🍞
Favicon
Simplifying PostgreSQL User Management: Two Methods
Favicon
Change data capture com AWS RDS e PostgreSQL
Favicon
Creating a Multi-Tenant Application with Laravel and Neon
Favicon
Node.js Meets PostgreSQL and MongoDB in Docker: Docker Diaries
Favicon
Understanding JWT: The Backbone of Modern Web Authentication and Authorization
Favicon
Index Filtering in PostgreSQL and YugabyteDB (Index Scan instead of Index Only Scan)
Favicon
Choosing the Right Time Series Database for Your Use Case
Favicon
On the Andy Pavlo's DB review
Favicon
Steps to Add a New Column with Sequelize Migrations
Favicon
🚀 Building a RESTful API in Go: A Practical Guide
Favicon
What is pgAdmin?
Favicon
Master Test Data Generation With dbForge Studio for PostgreSQL
Favicon
Salvaging a Corrupted Table from PostgreSQL
Favicon
Monitoring AWS RDS Postgres Parameter Changes
Favicon
PostgreSQL table partitioning
Favicon
[Boost]
Favicon
Managing MQTT User Information with PostgreSQL in a Separate Container
Favicon
Made FOSS for simplifying NextJS dev with OAuth And Postgres
Favicon
Big Discovery - lowCalAlt_update 7
Favicon
Cómo instalar PostgreSQL en una instancia EC2 con Amazon Linux 2023

Featured ones: