
This project demonstrated how to deploy a lightweight Nginx web server on Amazon ECS using the Fargate launch type and integrate it with AWS monitoring and logging services. The main objective was to provision a containerized application that could be publicly accessed while streaming performance metrics and logs to Amazon CloudWatch for real‑time visibility.
I adopted a serverless container deployment model using ECS Fargate to remove the need for EC2 management, combined with CloudWatch dashboards for live monitoring. A properly scoped execution role was configured to allow the ECS task to publish metrics and logs directly to CloudWatch. The network configuration made the container accessible while ensuring the design could be replicated for other workloads with minimal overhead.
I created a new ECS task definition configured for the Fargate launch type, using the official nginx container image from Docker Hub. The container was set to expose port 80, with 1 vCPU and 1,024 MiB memory allocated to provide sufficient performance for the test scenario.

I assigned an IAM execution role with the CloudWatchLogsFullAccess policy to the task definition, ensuring the running container could stream logs and metrics directly to CloudWatch without additional manual integration.
I launched a new ECS service from this task definition, placing it in a public subnet of the default VPC and enabling Auto‑assign public IP so that the container would have a routable IP for external access.

After confirming the task was running, I navigated to its public IP address in a browser and verified the Nginx welcome page, confirming network accessibility and service functionality.
In the CloudWatch console, I created a new dashboard and added two widgets: one for CPUUtilization and one for MemoryUtilization, each pointing to the ECS service’s metrics. This allowed real‑time tracking of resource consumption from a single view.

The deployment successfully demonstrated how a containerized workload on ECS Fargate can be paired with CloudWatch to provide both performance monitoring. With the IAM role in place, telemetry flowed seamlessly from the ECS task to CloudWatch without additional configuration. This setup can be scaled to production‑grade workloads, providing operations teams with immediate insight into container health and performance while keeping the infrastructure footprint minimal.