Ashlesha International Case Study on AWS
About the company
Ashlesha International is an organization that was established with the sole purpose to empower women in Nepal. The company provides training to women and help them to sell the products manufactured in the Nepalese market. Ashlesha international operates its business through a facebook page called “Potestore” and sells products online nationally and internationally. Furthermore, Ashlesha international makes a small amount of profit from their sales commission.
Problem Statement
Ashlesha international had their attendance system hosted at their on-premise server. As a small organization, they had to allocate substantial financial resources to set up and maintain their servers. They were using 4 core VCPU, 8Gb Ram, 250 Gb SSD storage and data transfer of 10 TB. The organization was growing day by and were expecting a steep rise in data storage which would lead to a heavy increment in operational costs. As they have an employee to make sales outside the country, they were complaining the website was not responding well, sometimes failed to load the site and were not able to attend themselves. The information of the employee is one of the most valuable assets of the organization and Ashlesha international was failing to keep the daily record which might create a problem for them in the future.
Our Proposal
As an advanced consulting partner of AWS, The Genese Solution proposed a solution to facilitate their overall infrastructure and primary storage of their system in the AWS cloud.
The following options were proposed for primary storage in the AWS cloud.
- Amazon S3:
- Use of Amazon Simple Storage Service (S3) for storing static files and documents with proper security implementation to store data at rest as well as in transit.
- We proposed the options to configure fine-grained control of access of S3 resources using Bucket and object-level policies along with IAM policies.
- We proposed the options to configure fine-grained control of access of S3 resources using Bucket and object-level policies along with IAM policies.
- We proposed the options to configure fine-grained control of access of S3 resources using Bucket and object-level policies along with IAM policies.
- Use of S3 storage class applying Lifecycle management policies for proper management of objects in S3 for cost optimization.
Proposed the use of versioning in S3 buckets to keep multiple versions of objects when modified or deleted.
- Amazon DynamoDb:
- Suggested the use of No SQL database.
- Suggested to use point in time recovery.
- Monitoring of the performance of the table using Cloudwatch metrics.
- Amazon CloudFront:
- Suggested to use the Cloudfront for the fast and secure delivery of data to their global customers.
- Suggested the Cloudfront for handling the response as demand increases or decreases.
Solution
The main focus of Ashlesha International was to reduce costs with efficient and effective service. Genese Solution provided a cost-effective solution by proposing AWS serverless. For this particular problem, different lambda functions, DynamoDb tables, API gateway, S3, Cognito for authorization, and Cloudfront for fast distribution was created.
AWS S3 is used for hosting the Front end of the Ashlesha international attendance system. Similarly, API gateway has been used for interacting with the frontend and backend (AWS lambda) of the website. When AWS lambda gets triggered by API then it will write data to the AWS Dynamodb and also then triggers AWS Cognito for the authentication of the user. As a software developer and service provider, Genese has also integrated a separate lambda function for Slack, so whenever there is entry and exit is done from the system it can be easily monitored from the superior.
There was a Cloudfront set up to take the user request and response from the server within a seconds from the nearest Cloudfront POP in terms of latency which then routes the user to the Edge location. The advantage of using the Cloudfront was that it could be easily carried even at peak times due to its capacity to take many requests in a second.
The website has been hosted in the AWS S3. The S3 static host domain has been pointed in the Cloudfront origin which takes every request comes to it. We have implemented Signed-Urls in the Cloudfront which gives the dashboard access to the HR of Ashlesha via a pre-signed URL. After authentication, the HR of Ashlesha will get redirected to the attendance monitoring page.
The POC was successfully concluded within one month after the environment was completely implemented in AWS.
Results
The environment was deployed to AWS and during the POC period, there were no performance disruptions at any stage. After the deployment, the client was pleased with the heavy reduction in costs and server management. Ashlesha International has a total of 200 MB data transfer with a 1.2 K number of requests for the month of August.
Ashlesha has been saving more than $800 monthly in comparison to On-premise. The Genese Solution did the performance testing as per the client’s requirement of the Cloudfront and the following result was achieved and could be observed in the table below.
No of users | No of Request | Minimum response | Max response | Number of Failed request | Error | Total TimeTaken | Received kb/s | Sent Kb/s |
500 | 0 | 702 | 73546 | 0 | 0.00% | 2:45 | 1653.913 | 9.75 |
1000 | 4,000 | 719 | 1140685 | 10 | 0.26% | 19:03 | 370.997 | 2.19 |
1500 | 12,000 | 506 | 671702 | 57 | 0.48% | 12:36 | 605.86 | 3.48 |
2000 | 20000 | 738 | 644202 | 110 | 0.65% | 15:35 | 592.36 | 2.75 |
During the load testing, the highest demand designated by the client was 20000 hit in the Cloudfront and the tolerable error rate was 1%, which we successfully achieved and the maximum error rate was 0.65%.