This project was developed as part of the Cloud Computing Fundamentals module at CCT College Dublin.
The objective of the assignment was to complete a series of hands-on cloud computing tasks using Amazon Web Services (AWS).
The project focuses on building and configuring a cloud-based infrastructure environment including:
- Cloud storage using Amazon S3
- Compute resources using Amazon EC2
- Auto Scaling infrastructure
- Application Load Balancer configuration
- Cloud monitoring with CloudWatch
- Database hosting with Amazon RDS
- Web application deployment using Elastic Beanstalk
- Containerisation using Docker
Through this project, a complete workflow of deploying and managing cloud infrastructure was implemented and documented.
The assignment aimed to develop practical skills in cloud computing by completing several infrastructure tasks.
The main objectives included:
- Creating cloud storage using AWS S3
- Configuring Auto Scaling Groups
- Deploying a website on Amazon EC2
- Implementing Application Load Balancing
- Monitoring infrastructure using CloudWatch
- Hosting a SQL database in the cloud
- Deploying applications using Elastic Beanstalk
- Containerising a web application using Docker
These tasks simulate real-world responsibilities of cloud engineers and DevOps professionals.
The first task involved creating and configuring an Amazon S3 bucket.
- Created a new S3 bucket
- Uploaded website files
- Configured bucket permissions
- Enabled public access
- Applied a bucket policy
- Verified that objects could be accessed from the browser
The DigiTech website files stored in the bucket could be accessed directly through the public URL.
This task demonstrated the use of cloud storage for hosting static web content.
The second task involved implementing Auto Scaling infrastructure.
The following scaling configuration was created:
Minimum instances: 2
Desired instances: 3
Maximum instances: 4
This configuration ensures that the system automatically adjusts server capacity depending on workload demand.
- Amazon EC2
- Auto Scaling Groups
- Security Groups
- AWS CloudWatch
CloudWatch was used to monitor:
- CPU usage
- Network activity
- Instance health
- System performance metrics
This allowed basic infrastructure monitoring and performance analysis.
In this task a virtual machine was created in AWS.
Instance name:
DigiZilla
Configuration:
- Amazon Linux server
- Public IP enabled
- Security groups configured
The DigiTech website was uploaded using FileZilla FTP client.
Steps included:
- Connecting to the EC2 instance via SSH
- Uploading website files to
/var/www/html - Configuring file permissions
- Verifying that the website loads via the public IP address
This task demonstrated manual deployment of a web application on a cloud server.
A Load Balancer was created to distribute traffic across multiple servers.
- 5 Amazon Linux EC2 instances
- Target group created
- Health checks configured
- Application Load Balancer deployed
The User Data feature was used to automatically configure servers during startup.
Bootstrapping allows:
- automatic server configuration
- automatic software installation
- faster environment provisioning
This improves scalability and infrastructure automation.
This task demonstrated how to host a database in the cloud using Amazon RDS.
Steps performed:
- Created a database instance
- Configured database credentials
- Generated database endpoint
- Connected using MySQL client
Amazon RDS provides:
- automated backups
- high availability
- automatic patching
- simplified database management
This allows developers to focus on applications instead of infrastructure maintenance.
The DigiTech web application was deployed using AWS Elastic Beanstalk.
Elastic Beanstalk simplifies application deployment by automatically handling:
- server provisioning
- scaling
- load balancing
- monitoring
- infrastructure configuration
This platform is ideal for developers who want to deploy applications quickly without managing infrastructure manually.
The final challenge involved containerising the DigiTech website using Docker.
- Navigated to the project directory
- Created a Dockerfile
- Defined base image and configuration
- Built the Docker image
docker build -t digitech-web-app .
Ran the container
docker run -p 4000:80 --name digitech-container -d digitech-web-app
Accessed the application via:
The DigiTech web application successfully ran inside a Docker container.
This demonstrates containerised deployment, which enables applications to run consistently across environments.
- Amazon Web Services (AWS)
- Amazon S3
- Amazon EC2
- Auto Scaling Groups
- Application Load Balancer
- Amazon RDS
- Elastic Beanstalk
- CloudWatch
- Docker
- FileZilla
- Linux command line
- SSH
This project demonstrates practical experience with:
- Cloud infrastructure deployment
- AWS resource management
- Web application hosting
- Load balancing
- Auto scaling systems
- Cloud monitoring
- Containerisation
- DevOps deployment workflows
These skills are essential for careers in:
- Cloud Engineering
- DevOps
- Infrastructure Engineering
- Site Reliability Engineering
This project was developed by Thiago Goncalves da Costa as part of the Bachelor of Science in Computing and Information Technology at CCT College Dublin.
During my studies, I used the institutional GitHub account associated with my student email:
Since institutional accounts and student emails may be deactivated after graduation, this repository was migrated to my personal GitHub account:
https://github.com/ThiagoGoncos
This ensures long-term preservation of the project, commit history, and academic work completed during the degree program.