Business Use Case
Book your Stay Company (http://book-yourstay.com/) has a global presence and a growing customer base. To provide the best experience to its customers, the company decided to move its business operations on AWS cloud that would help to scale the server infrastructure in no time without accumulating a heavy cost. Also, it will provide a scalable infrastructure based on business requirement with continuous server availability with higher security and data durability.
Business Process Flow
The proposed template of the solution and data pipeline for rental management would look as shown in the below diagram.
Below is the brief summary of the AWS services used in the architecture diagram depicted above.
Amazon Route 53 is a highly available and scalable cloud Domain Name System (DNS) web service implemented to distribute the user requests according to the Geo Location access through CloudFront, which helps for future business expansion globally.
Implemented WAF services for external protection for our web application “book-yourstay.com” against the variety of attacks such as SQL injections, web exploits, http floods etc.
Amazon Cognito services implemented for authentication and authorisation of users in the application portal “book-yourstay.com”.
In our application, we integrated CloudFront with S3 as origins to deliver data and rental property videos securely to customers globally with low latency and high transfer speeds.
ReactJS is used for client-side UI code to provide functionality like login/signup, search and confirmation pages, also to send search requests, Search responses to and from AWS Lambda. Amplify UI Component is used for AWS Cognito connectivity for authentication and authorisation.
Amazon S3 services used to configure and host the static website.
Amazon API Gateway
API Gateway service to create RESTful APIs to enable real-time two-way communication between Client-side code and AWS Lambda functions.
Lambda is used for serverless computing platform to implement business logic such as search and reserve vacation rental. Also used to trigger data transfer automatically from DynamoDB to Glacier using Kinesis Firehose for data archival.
EMR & Apache Hive
Amazon Elastic Map Reduce tool used for providing real-time analytic capabilities such as reports and dashboards for enhancing business productivity
Kinesis Data Firehose used to archive data from dynamo DB to S3 glacier invoked thru lambda services.
Amazon S3 Glacier to store data backup and archiving data as an extremely low-cost storage solution, which is durable, secure and flexible.
AWS Backup Services
Used AWS Backup managed services to automate both DB and application backups to trigger at regular intervals like Daily, monthly and on-demand backups.
Business and Technical Challenges
CloudFront connectivity issues in Route53 due to of DNS CNAME configuration glitches
- Identified the problem with the certificate and deleted old CloudFront entries at Route53 and recreated new certificate with right record entries, and deployed.
CloudFront URL was not working after enabled the WEB ACL configuration
- In WAF ACL configuration, identified the problem with “Default web ACL action for requests that don’t match to any rules set to denied which were modified to “Allow”
Kinesis unable to write data into S3 bucket
- Updated the internal policy of the S3 bucket to access Kinesis.
DynamoDB table entries archiving issues due to TTL.
- TTL attribute should be in the ‘EPOCH’ time format of UNIX OS otherwise the system would not recognise the expired data from the table.
Issues with Billing Alarm
- Need to login to the root account to set the billing alarm, IAM user login with full privileges of billing role assignment will not allow it to configure. In addition, please be aware that billing services are only available to certain regions.
- Learned to set up automatic archiving of table data from DynamoDB to Glacier using AWS Lambda and Amazon Kinesis Firehose.
- Define database policy to schedule daily/Monthly and On-demand backup and restore using AWS managed backup service.
- Learned to design and deploy lambda for Dynamo dB Read and write Operation.
- Built EMR Cluster and configured Hive to execute SQL queries for business users reporting and analytical purposes.
- Configure Route53 and WAF to protect application domain ‘book-yourstay.com’ from web exploits and distribute user requests according to Geo Locations.
- Configured Cognito for user authentication, sign up and sign-in services.
About The Authors
Jignesh Soni – Works as Senior SAP consultant at NTT DATA. He has more than 12 years of experience in SAP ABAP and Hana Development. He is interested in learning Cloud security.
Vinod Kumar Thammana is working as SAP Basis/HANA Consultant at NTT DATA Americas with over 12 years of experience and leading complex technical projects in a variety of businesses and industry sectors.
Avani Soni – Avani works as a Sr. Software Engineer at Multiplan Inc. She has over 10 years of experience in designing, developing and leading various projects in web development, web services, API and interactive UI. She is interested in cloud computing and machine learning.
Bheem Avula – Bheem is working as an SAP Basis consultant with NTT DATA Services, USA and has 11 years of experience in SAP Basis role, along with SAP O/s DB migration certification.
If you wish to upskill yourself in the cloud computing domain, check out Great Learning’s PG Program in Cloud Computing.2