This project demonstrates how to deploy a scalable, production-style web application on Microsoft Azure using Terraform.
The infrastructure includes networking, security, and compute resources, all defined as code.
Components:
- Terraform: Infrastructure as code tool managing all Azure resources.
- Azure Virtual Network (VNet) and Subnet: Isolate resources and manage network traffic.
- Network Security Group (NSG): Firewall that allows HTTP traffic only on port 80.
- VM Scale Set (VMSS): Ensures high availability, scalability, and consistent configuration of multiple Linux VMs.
- Node.js Web Application: Serves HTTP requests, demonstrating a real-world workload.
- Terraform for IaC
- Microsoft Azure cloud platform
- Azure VM Scale Sets for scalable compute
- Azure Networking (VNet, Subnet, NSG)
- Linux (Ubuntu) as the operating system
- Node.js for the web application
- Terraform provisions networking (VNet, Subnet) and security (NSG).
- VM Scale Set is created with Linux instances.
- Each VM installs Node.js and starts the web application automatically using startup scripts.
- Public traffic is routed through NSG rules to the VM instances.
- The application is accessible via a public IP.
To deploy the project, ensure that you have the Azure CLI configured and authenticated. Then run:
terraform init
terraform plan
terraform apply
After deployment, you can access the live application at: http://108.143.65.125/