**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