Project Image
Repository

The deployment begins by developing the Django application and integrating it with AWS S3 for managing static files like CSS/JS and storing user-uploaded media. The app is containerized using Docker, and the image is tested locally to ensure smooth runtime. After successful testing, the Docker image is pushed to AWS Elastic Container Registry (ECR). A custom domain is purchased via AWS Route 53, and an SSL certificate is issued through AWS Certificate Manager. To validate the domain and enable HTTPS, CNAME records are added to the hosted zone. Next, an Application Load Balancer (ALB) is created to manage incoming traffic. It is configured with target groups, listeners, and appropriate inbound security rules to ensure safe and accurate routing. The ALB’s DNS name is mapped via Alias records in Route 53, seamlessly connecting the domain to the application. A custom task definition is authored, defining the container configuration for Fargate, which allows the application to run without provisioning EC2 instances or manually specifying CPU and memory. Once the ECS service is launched using the Fargate launch type, AWS automatically handles the infrastructure provisioning, offering a truly serverless container deployment model. Finally, sticky sessions are enabled at the target group level to ensure users consistently connect to the same task during their session, improving the overall user experience. This setup delivers a secure, scalable, and low-maintenance architecture using modern AWS services.