**YouTube Title:**
*How to Connect a Django App to AWS RDS PostgreSQL Database | Step-by-Step Guide*
---
**YouTube Description:**
**Learn How to Connect a Django App to AWS RDS PostgreSQL Database!**
In this tutorial, I’ll guide you through **setting up an AWS RDS PostgreSQL database** and connecting it to your **Django application**. If you're developing a **scalable Django app** and need a **managed PostgreSQL database**, this is the perfect solution!
---
### **What You’ll Learn:**
How to **create a PostgreSQL database on AWS RDS**
How to **configure security groups for remote access**
How to **install and configure PostgreSQL in Django**
How to **connect Django to AWS RDS PostgreSQL**
How to **migrate Django models to RDS**
---
### **Prerequisites:**
A **Django project** set up on your local machine
An **AWS account** ([Sign up here](https://aws.amazon.com/))
Basic understanding of **PostgreSQL and Django databases**
---
## **Step 1: Create a PostgreSQL Database on AWS RDS**
1⃣ **Log in to AWS Console** → Navigate to **RDS Service**
2⃣ Click **Create database**
3⃣ Select **Standard create**
4⃣ Choose **PostgreSQL** as the database engine
5⃣ Set up database details:
- **DB instance identifier**: `mydb-instance`
- **Master username**: `admin`
- **Master password**: `yourpassword`
6⃣ Under Connectivity, **enable Public Access** (for development)
7⃣ Select a security group that **allows inbound PostgreSQL connections (port 5432)**
8⃣ Click **Create database** and wait for it to be available
---
## **Step 2: Install PostgreSQL Client on Your System**
To connect Django to AWS RDS, install the PostgreSQL client:
**On Ubuntu/Linux:**
```bash
sudo apt update
sudo apt install postgresql-client
```
**On macOS:**
```bash
brew install postgresql
```
**On Windows:**
[Download PostgreSQL](https://www.postgresql.org/download/) and install it.
Verify installation with:
```bash
psql --version
```
---
## **Step 3: Install PostgreSQL Adapter for Django**
Inside your **Django project** folder, activate your virtual environment and install `psycopg2`:
```bash
pip install psycopg2-binary
```
---
## **Step 4: Configure Django Settings for AWS RDS PostgreSQL**
In your Django **settings.py**, update the `DATABASES` section:
```python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'your-db-name', # Replace with your AWS RDS database name
'USER': 'your-username', # AWS RDS username
'PASSWORD': 'your-password', # AWS RDS password
'HOST': 'your-db-endpoint.rds.amazonaws.com', # AWS RDS endpoint
'PORT': '5432', # Default PostgreSQL port
}
}
```
Replace **`your-db-name`**, **`your-username`**, **`your-password`**, and **`your-db-endpoint.rds.amazonaws.com`** with actual values from your RDS instance.
---
## **Step 5: Run Database Migrations**
Once the settings are updated, apply migrations to set up the database schema:
```bash
python manage.py makemigrations
python manage.py migrate
```
This will create necessary Django tables in **AWS RDS PostgreSQL**.
---
## **Step 6: Test the Connection**
Run the Django development server:
```bash
python manage.py runserver
```
If everything is set up correctly, Django should connect to your AWS RDS PostgreSQL database .
To confirm, open **PostgreSQL CLI** and check if the tables are created:
```bash
psql -h your-db-endpoint.rds.amazonaws.com -U your-username -d your-db-name
```
Then, run:
```sql
SELECT datname FROM pg_database;
\c your-db-name;
\dt;
```
---
## **Step 7: Secure Your Connection (Optional but Recommended)**
**Use environment variables** instead of hardcoding credentials in `settings.py`:
```python
import os
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.getenv('DB_NAME'),
'USER': os.getenv('DB_USER'),
'PASSWORD': os.getenv('DB_PASSWORD'),
'HOST': os.getenv('DB_HOST'),
'PORT': '5432',
}
}
```
Then, store credentials in a `.env` file:
```
DB_NAME=your-db-name
DB_USER=your-username
DB_PASSWORD=your-password
DB_HOST=your-db-endpoint.rds.amazonaws.com
```
Use **python-dotenv** to load them:
```bash
pip install python-dotenv
```
And add this to `settings.py`:
```python
from dotenv import load_dotenv
load_dotenv()
```
---
#Django #AWS #PostgreSQL #AWSRDS #DjangoAWS #CloudComputing #WebDevelopment #Python #Database #DjangoPostgres #AWSCloud #DjangoTutorial