Real bricks: Making high-quality real estate investing accessible to everyone.
Category: Real Estate. eCommerce
Services: DevOps, Cloud Architecture Design and Review.
- Reduced infrastructure provisioning time by 66%.
- Fast and error-free deployments with CI/CD pipeline and IaC.
- We ensured that the uptime was 99%.
Problem statement
Problem 1: Infrastructure Management
The client faced difficulty in creating and managing four environments, namely Dev, UAT, Stage, and Production, with AWS console. This process consumed a lot of time and resources, leading to inefficiencies.
Problem 2: Limited Functionality of Lambda for Cron Job
The client’s cron job involved creating statements and sending them via email to all users on a specific date of every month. However, using Lambda for this task posed a problem as it can only run for 15 minutes. With a vast client database, this functionality would take more time, potentially creating future problems.
Proposed Solution & Architecture
Solution 1
To address the client’s infrastructure management problem, we proposed using AWS CloudFormation infrastructure as code. This solution enabled us to create a new environment within two-three hours, significantly reducing the deployment time for large infrastructure projects. Additionally, we implemented a seamless CI/CD pipeline for fast and efficient infrastructure deployment.
Solution 2
To resolve the issue of time-consuming cron jobs, we recommended using an ECS scheduled task triggered by an EventBridge rule. This solution allowed us to create statements and send them via email to thousands of users every month without any issue. We also suggested deploying the client’s backend APIs using ECS Fargate service, which can spawn new containers quickly in the event of failure and scale up or down based on traffic load, providing efficient and cost-effective management of resources.
Metrics for success
- Reduced infrastructure provisioning time to 2 hours from the manual time of 6-7 hours with AWS CloudFormation and CI/CD pipeline.
- We reduced the burden of managing servers by implementing serverless services such as ECS Fargate and Lambda, enabling us to focus on the application’s functionality.
Architecture diagram
AWS Services
- AWS Lambda: Utilized to run a cron job for generating a daily payment scheduler.
- Amazon RDS: Used to store relational data and we also leveraged multi-AZ (Availability Zone) feature to achieve high availability.
- Amazon CloudWatch: Utilized for log generation, creating metrics and alarms for service utilization, and setting up email alerts for third-party API services.
- Amazon CloudFront: Utilized to serve static front-end contents, resulting in low latency, and quick data access at minimal cost.
- Amazon ECS Fargate: Utilized as container technology for application deployment.
- Amazon S3: Used for storing user data such as images and PDF documents.
- Application Load Balancer (ALB): Used as a service load balancer.
- AWS Auto Scaling: Used to scale containers up and down based on incoming traffic.
- AWS CloudFormation: Used for infrastructure as code (IAC) to reduce provisioning time.
- AWS WAF: Used to protect against common web exploits that can damage availability and security.
- AWS CodePipeline: Used for continuous integration and deployment (CI/CD) automation to release new features faster.
- AWS Certificate Manager: Used to manage security certificates like SSL and TLS, removing the time-consuming process of purchasing and renewing certificates.