In this part we will create the frontend part of the application by using a react-based app deployed to AWS Amplify. Starting by checking out the code from github, examine the code, and we will continue to upload and configure it on AWS Amplify.
In this part we will create the frontend part of the application by using a react-based app deployed to AWS Amplify. Starting by checking out the code from github, examine the code, and we will continue to upload and configure it on AWS Amplify.
In this part, we are going to expose our Lambda functions via API gateway as REST endpoints to allow external applications interact via HTTP requests. In essence, API gateway is the main door for our serverless endpoints while it provides unified interface for all API requests and security with its built-in authentication, authorization, and rate limiting.
Now we are going to create the core components of our serverless application that consists of 2 parts: the Lambda layer and the Lambda functions. The purposes of using Lambda layers are to reduce package size as it share common dependencies across functions while being cacheable to avoid any redeployment.
IAM role is the mechanism we are using for this project to enable the centralized security while giving flexible yet temporary credentials for our lambda functions. It’s the implementation of principle of least privilege where lambda functions will get necessary permissions only.
Performance efficiency pillar focuses on using computing resources efficiently to meet system requirements and maintaining that efficiency as demand changes. This pillar is about delivering the right level of performance without over-provisioning or under-utilizing resources. In this project, we will develop a lightweight (REST API for CRUD functionalities) order management using AWS Lambda, API Gateway, DynamoDB, IAM, and CloudWatch to demonstrate a secure, scalable, and cost-efficient architecture that aligns with performance efficiency pillar.
In this final part, we will build a monitoring dashboard for the Chat Support team which is already using the Slack workspace as part of the daily operation. CloudFront will be used as the Infrastructure as Code (IaC) which help the consistent setup with easy rollback and update.
As we have previously configured the role for our role chatbot with AWS Lambda full access, then in this part we’ll setup a simple Lambda function to allow Slack users to trigger a command.
After setup and integrate Slack with Amazon Q (Chatbot) configuration successfully, we’ll setup the CloudWatch alarm which detects high CPU usage on an EC2 instance. Thus, the key part of this phase it to ensure AWS send real-time alerts to our Slack channel.
Operational excellence focuses on running and monitoring systems to deliver business value. This pillar is about how we operate our systems day-to-day, which makes it the foundation upon which everything else builds. In this project, we will integrate the AWS dashboard capabilities into Slack in real-time. This will help the efficiency of support teams just to work using Slack channels in fixing the issues instead of switching around the AWS console, CloudWatch, and various dashboard that can lead to error-prone human-error steps in handling the incident tickets.
Our highly available and fault-tolerant web application infrastructure so far needs some final validation to ensure it works as expected. Now we’ll simulate failure cases, check recover behavior, and confirm if DNS has failed.