Amazon Serverless Suite for Western Australia's Property Report Services
Dmitry Nefedov
23 June 2020
The Western Australian Government land information authority, Landgate, needed to implement a low-cost scalable solution for property reporting to provide statements about open and closed property transactions.
Landgate was required to report a property transfer to several government organisations and needed a single solution to provide all these reports in a cost-effective manner.
The Scenario
As part of Landgate’s digital strategy to adopt cloud-based solutions, Akkodis migrated of a range of applications and their underlying resources to the AWS Cloud in a secure and scalable fashion. Following this strategy, the solution to their requirements was to be cloud-based, secure, scalable and require minimal maintenance effort. Workloads could vary from zero usage, to a high number of requests and thus the solution needed to be auto-scalable, secure and low cost.
#The Solution
The Property Reporting Online solution uses a serverless suite of AWS Services. AWS API Gateway with AWS Lambda provided scalability, security, low maintenance and low cost. It requires no maintenance on servers running and scales out to the level required on a heavy load and back to zero when there are no requests.
- AWS API Gateway for SSL termination and authorisation using Custom Authoriser
- 7 AWS Lambda functions responsible for different parts of the system with more than 250,000 invocations per month
- Custom Authoriser connected to Single Sign On to authenticate and authorise a user
- AWS Lambda function provisions and then terminates an EC2 instance once a month for generating reports
- Uses a suite of serverless services within AWS: DynamoDB, SNS, API Gateway, AWS Lambda, AWS X-Ray, AWS Simple Storage Service (S3), AWS CloudFront
- Amazon Relational Database Services for a managed database feed and maintain the reports as it’s a part of different systems as well
- AWS X-Ray used for both API Gateway and Lambda to have a clear picture of requests within an application (request tracing in distributed systems)
- Each Lambda function has its own set of policies that enforces a minimal set of privileges
- Static website content stored on S3 Bucket, with a CloudFront Distribution (Content Delivery Network) used to serve it to end-users
- AWS CloudFormation to create and manage resources within AWS, enabling a repeatable DevOps approach for maintenance
- Deployment and configuration of the solution are fully automated using CI/CD pipelines. This allowed us to have a repeatable process and avoid user errors during deployment
The Challenges
There were challenges when developing and maintaining this application.
Initially, traceability of calls, errors or performance issues within the application was very low. As the solution consists of many microservices which are connected internally and with other services, it was tricky to trace the logs to debug and visualise if there were any issues. This has been resolved by using AWS X-Ray, which creates a visual trace tree of request propagation through distributed Lambda functions to identify any performance issues.
Using AWS X-Ray helped to identify that some functions make excessive calls to the RDS database, highlighting room for improvement. We were able to refactor queries and improve data allocation and indexing to successfully overcome this challenge and improve the end-user experience.
The Outcome
The solution allowed the application to be functioning without any overhead of spinning up, managing or patching the servers. It is flexible, requires low maintenance, auto-scales based on customer requests, and is integrated with existing Single Sign On and 3rd party services.
The entire production cloud services cost of this solution is less than US$10 per month, despite wildly unpredictable usage patterns. Akkodis service teams continue to maintain the workload ensuring the effective use of Cloud to deliver the best outcome for the customer.