This project aimed to efficiently connect service providers with those in need. The platform placed a high priority on service requests by considering accumulated points, highlighting the importance of providing quality service in the long run. With the goal of improving user experience, Helpers decided to transition its current infrastructure to the cloud. This involved implementing a comprehensive solution that seamlessly combined various tools and services such as Bitbucket, AWS CodeBuild, AWS ECR, ECS, RDS, IAM, and CloudWatch.
Regarding the Customer
This project allowed service providers and seekers to engage effortlessly. The platform optimized service prioritization by awarding points for services rendered. The standout aspect was the ability to establish service prices in advance, removing the need for the conventional bidding system and giving users direct access to verified helper accounts.
Summary of the Project
The project required a thorough architectural revamp. The migration involved setting up a pipeline to transfer code from Bitbucket to AWS ECR using AWS CodeBuild. The application was deployed on an ECS container, and RDS was placed in a private subnet. Additionally, an Application Load Balancer was implemented to direct traffic on port 443. Users and roles were carefully created, and CloudWatch was used for effective monitoring of the cloud infrastructure.
Technical Project Plan – Scope of Work
Building Infrastructure Using Terraform
During the migration, the cloud infrastructure was carefully designed using Terraform. This guaranteed an environment that could easily grow, was well-managed, and could be replicated. CodeBuild efficiently handled the pipeline between Bitbucket and AWS ECR, ensuring seamless transitions.
ECS Container Deployment
ECS was used to execute tasks for web and mobile applications. The ECR repository stored the application image, which was then pulled by the ECS cluster to execute tasks. For optimal resource allocation, the cluster was equipped with an Application Load Balancer that listened on port 44329 and redirected to port 443.
DNS Management and ACM Integration
The DNS name of the Application Load Balancer was registered with a DNS provider as a CNAME, allowing for the convenient utilization of a sub-domain. The web application’s frontend was hosted using the Application Load Balancer DNS name and was secured with an ACM certificate for sub-domains.
RDS and EC2 Bastion Host
The database backend was powered by RDS, which ran Microsoft SQL Server Standard Edition in a private subnet. Containerized applications sent queries through an EC2 instance, which was deployed as a bastion host to ensure secure and controlled access to the database.
Cloud Monitoring using CloudWatch
CloudWatch was utilized to monitor the cloud infrastructure and ensure the reliability and performance of each service. The ECS cluster gained significant advantages from container insights, offering comprehensive monitoring capabilities. IAM users and roles followed the principle of least privilege, which helped to strengthen security measures.
In Conclusion
The migration to a cloud-native architecture demonstrated a strong dedication to delivering a dependable and scalable service platform. Optimizing resource utilization, enhancing security, and ensuring a seamless experience for both service providers and seekers was a key aspect of this solution. This transformation showcased Helpers as a platform that was always looking ahead, prepared to adapt to the changing needs of its users.