You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -55,119 +55,93 @@ The goal was understanding **why production infrastructure is designed the way i
55
55
- Built entirely using Terraform
56
56
- Production-inspired AWS Networking
57
57
- Infrastructure as Code
58
-
- Kubernetes (k3s) based Deployments
58
+
-Self-managed Multi-Node Kubernetes (k3s) Cluster
59
59
- Docker Image Pipeline
60
60
- GitHub Actions CI/CD
61
-
- Auto Scaling Groups
62
-
- External & Internal Load Balancers
63
-
- Bastion Host
61
+
- Dedicated Kubernetes Control Plane
62
+
- Auto Scaling Worker Nodes
63
+
- External Application Load Balancer
64
+
- Kubernetes Ingress
64
65
- Amazon RDS PostgreSQL
66
+
- Redis StatefulSet
65
67
- CloudWatch Monitoring
66
68
- Remote Terraform State
67
69
- Automated EC2 Bootstrapping using User Data
68
-
-Kubernetes ConfigMaps
69
-
-Kubernetes Deployments
70
-
-Redis StatefulSet
70
+
-SSM-based Cluster Join Automation
71
+
-Separate Frontend & Backend Deployments
72
+
-Namespace Isolation
71
73
- Resource Requests & Limits
72
74
- Liveness & Readiness Probes
73
-
- Namespace Isolation
74
-
- Multi Availability Zone deployment
75
75
76
76
---
77
77
78
78
# 🏗 Architecture
79
79
80
80
```
81
-
Internet
82
-
│
83
-
▼
84
-
External Application Load Balancer
85
-
│
86
-
┌──────────────┴──────────────┐
87
-
▼ ▼
88
-
Frontend ASG Frontend ASG
89
-
│
90
-
k3s Cluster
91
-
│
92
-
Frontend Deployment
93
-
│
94
-
External Service
95
-
│
96
-
────────────────────────────────────────────
97
-
98
-
Internal Application Load Balancer
99
-
100
-
────────────────────────────────────────────
101
-
│
102
-
k3s Cluster
103
-
│
104
-
Backend Deployment
105
-
│
106
-
Redis StatefulSet
107
-
│
108
-
Amazon RDS PostgreSQL
81
+
Internet
82
+
│
83
+
▼
84
+
External Application Load Balancer
85
+
│
86
+
▼
87
+
Kubernetes Ingress
88
+
│
89
+
▼
90
+
Multi-Node Kubernetes (k3s) Cluster
91
+
│
92
+
┌────────────┴────────────┐
93
+
▼ ▼
94
+
Frontend Deployment Backend Deployment
95
+
│ │
96
+
└───────────┬─────────────┘
97
+
▼
98
+
Redis StatefulSet
99
+
│
100
+
▼
101
+
Amazon RDS PostgreSQL
109
102
```
110
103
111
-
Every component is deployed inside a custom VPC distributed across multiple Availability Zones.
112
-
113
-
> **Current Version (v2.0):** Frontend and Backend are deployed in separate Kubernetes (k3s) clusters to preserve compatibility with the existing three-tier infrastructure. A future release will consolidate workloads into a single multi-node Kubernetes cluster before migrating to Amazon EKS.
114
-
115
-
---
116
-
117
104
# ☁ Infrastructure Components
118
105
119
106
| Service | Purpose |
120
107
|----------|----------|
121
108
| VPC | Network Isolation |
122
-
| Public Subnets | Load Balancers & Bastion |
123
-
| Frontend Subnets | Frontend Instances |
124
-
| Backend Subnets | Backend Instances |
109
+
| Public Subnets | Load Balancer & Bastion |
110
+
| Application Subnets | Worker Nodes |
125
111
| Database Subnets | PostgreSQL |
126
112
| Internet Gateway | Public Connectivity |
127
-
| NAT Gateway | Outbound Internet for Private Instances |
128
-
| Route Tables | Traffic Routing |
113
+
| NAT Gateway | Private Internet Access |
129
114
| Security Groups | Network Security |
130
-
| Bastion Host | Secure SSH Access |
131
-
| Launch Templates | Instance Configuration |
132
-
| Auto Scaling Groups | High Availability |
133
-
| External ALB | Internet Traffic |
134
-
| Internal ALB | Backend Communication |
135
-
| Target Groups | Health Monitoring |
136
-
| IAM Roles | Secure AWS Permissions |
137
-
| CloudWatch | Monitoring |
138
-
| RDS PostgreSQL | Persistent Database |
139
-
| k3s | Kubernetes Distribution |
140
-
| Kubernetes Deployments | Stateless Workloads |
141
-
| StatefulSets | Persistent Workloads |
142
-
| ConfigMaps | Runtime Configuration |
143
-
| Services | Internal & External Networking |
115
+
| Bastion Host | Secure SSH |
116
+
| External ALB | Public Entry |
117
+
| Control Plane | Kubernetes API |
118
+
| Worker ASG | Kubernetes Workers |
119
+
| IAM | Secure AWS Permissions |
120
+
| SSM Parameter Store | Cluster Join Token |
121
+
| RDS PostgreSQL | Database |
122
+
| Redis | Cache |
123
+
| Kubernetes | Orchestration |
124
+
| Ingress | Traffic Routing |
125
+
| ConfigMaps | Runtime Config |
144
126
145
127
---
146
128
147
129
# 🚀 Features
148
130
149
131
- Infrastructure as Code
150
132
- Automated Infrastructure Provisioning
151
-
- Kubernetes-based Application Deployment
133
+
- Self-managed Kubernetes Cluster
134
+
- Auto Scaling Workers
152
135
- Docker Image Automation
153
-
- Automated EC2 Bootstrapping
154
-
- Auto Scaling
155
-
- Internal Load Balancing
156
-
- External Load Balancing
157
-
- Bastion Host
158
-
- Private Networking
159
-
- PostgreSQL Database
160
-
- Kubernetes ConfigMaps
161
-
- Kubernetes Deployments
136
+
- GitHub Actions CI/CD
137
+
- Kubernetes Ingress
138
+
- Frontend & Backend Deployments
162
139
- Redis StatefulSet
140
+
- PostgreSQL
141
+
- ConfigMaps
163
142
- Namespace Isolation
164
-
- Resource Requests & Limits
165
-
- Health Checks (Readiness & Liveness)
166
-
- GitHub Actions Pipelines
167
-
- Remote Terraform Backend
143
+
- Health Checks
168
144
- CloudWatch Monitoring
169
-
- Production-inspired Folder Structure
170
-
- Infrastructure Automation
171
145
172
146
---
173
147
@@ -179,12 +153,11 @@ Every component is deployed inside a custom VPC distributed across multiple Avai
The initial three-tier AWS architecture was inspired by publicly available cloud architecture tutorials. This repository represents my own implementation, debugging process, infrastructure decisions, Kubernetes integration, and continuous evolution into a production-oriented platform.
263
+
The initial AWS architecture was inspired by publicly available cloud architecture tutorials. The Kubernetes architecture, automation, debugging, design decisionsand production evolution represent my own implementation.
0 commit comments