{"id":4944,"date":"2021-04-27T08:41:45","date_gmt":"2021-04-27T08:41:45","guid":{"rendered":"https:\/\/www.aqbsolutions.com\/?p=4944"},"modified":"2025-07-18T14:14:34","modified_gmt":"2025-07-18T14:14:34","slug":"serverless-architecture-in-aws","status":"publish","type":"post","link":"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/","title":{"rendered":"Serverless Architecture in AWS"},"content":{"rendered":"\r\n<h2 style=\"text-align: left;\"><span style=\"color: #000000;\"><strong>Business Case Example of Serverless Architecture<\/strong><\/span><\/h2>\r\n\r\n\r\n\r\n<p>Here we try to describe a business case where we experienced performance issues with ec2\/RDS combination and optimized it by deploying AWS Serverless Architecture.<\/p>\r\n\r\n\r\n\r\n<p>We run a medical fitness app on AWS cloud \u2013 mainly app code is on ec2 and database is hosted on AWS RDS. Before the covid-19 pandemic, the web traffic was regular and predictable. We faced minimal disruption and downtime. But during the lockdown, we observed that during a certain time of the day there was a sudden huge spike in web traffic which resulted in service downtime in that particular period.<\/p>\r\n\r\n\r\n\r\n<p>In detail, the sudden spike in traffic was observed regularly during morning time (6-9 am), after that for the rest of the day the traffic was minimal, less than one-tenth of the morning traffic. During that morning time, the ec2 and RDS service became overwhelmed. The ec2 was a t2 instance, its CPU burst credit was quickly exhausted and thereafter the performance degraded. Same for RDS service. It became unresponsive. As a result, there was regular business downtime during peak traffic. So we were searching for a solution that would be scalable instantly and cost-effective at the same time. We found that going Serverless would fit the bill.<\/p>\r\n\r\n\r\n\r\n<p>We explain in detail the steps that were taken to optimize the architecture.<\/p>\r\n\r\n\r\n\r\n<p>We modified our entire stack with AWS Fargate, API Gateway, AWS Lambda, and Aurora Serverless.<\/p>\r\n\r\n\r\n\r\n<ul>\r\n<li>In place of the ec2 server, we used AWS Fargate with Docker images pulled from AWS ECR. It provides a couple of advantages, we can schedule multiple Fargate tasks during peak web traffic. Also, AWS automatically provisioned the infrastructure in the background and we can scale the number of tasks during minimal traffic. So we only pay for the time the tasks are executed instead of provisioning multiple ec2 instances which run all the time and also maintaining them. Here AWS takes care of the server and the app code is securely pulled from the private ECR repo using IAM authentication. So there is minimal maintenance cost.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>We used API Gateway and lambda to provide API key-based authentication and also a usage plan so only authenticated users access the specified APIs. For example, customers access the front-end API\u2019s and admin users access the admin API. So in case of a particular API traffic spike that alone can be throttled in isolation instead of all APIs going down in case of ec2. It is also cost-effective as it is pay per request and we can also use a usage plan and request quota to throttle the API in cases the usage limit is breached. One can also use AWS WAF (Web Application Firewall) to protect against SQL injection attacks, DDOS attacks, etc. And also geolocation-based access to particular APIs. But it is not cheap.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul>\r\n<li>We deployed lambda because of its ability to scale automatically to millions of invocations instantly during peak traffic. We can also use reserved and provisioned concurrency in case there is sudden unanticipated web traffic. It is cost-effective as it is pay per request and duration-based.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<ul>\r\n<li>In place of normal RDS, we used Aurora Serverless. The biggest advantage of Aurora Serverless is that it can automatically scale up or down depending on workload, which would require time-consuming capacity adjustments using Amazon RDS. With Aurora Serverless, the database can be configured to quickly and automatically increase or decrease capacity as needed. So it is a good fit for applications with steep and unpredictable spikes in usage as it automagically provisions whenever there are requests and shut down in idle, so we can pay per request and not for idle time. We also do not need to worry about maintenance.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>So we see that in our business app, deploying AWS Serverless services helped us in cost-effective, scalability, and performance on demand.<\/p>\r\n\r\n\r\n\r\n<h2 style=\"text-align: left;\"><span style=\"color: #000000;\"><strong>Building a Serverless Back-end with AWS<\/strong><\/span><\/h2>\r\n\r\n\r\n\r\n<p>In this demo, we are going to use AWS services like Amazon Aurora serverless, Lambda function, API Gateway, and SNS topic.<\/p>\r\n\r\n\r\n\r\n<h3><span style=\"color: #000000;\"><strong>Step 1: First we are going to create Aurora serverless database<\/strong>.<\/span><\/h3>\r\n\r\n\r\n\r\n<p>\u00a01.1\u00a0 \u2013\u00a0\u00a0 Open AWS console and navigate to the Amazon RDS database. Select on Create database.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4946\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.2 \u00ad- On the Database engine, select Amazon Aurora.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4947\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/2.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.3 \u2013 For the edition select Amazon Aurora with PostgreSQL compatibility.<\/p>\r\n\r\n\r\n\r\n<p>1.4 \u2013 On Database features select Serverless.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4948\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/3.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.5 \u2013 Type a name for your DB cluster, database-1.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4949\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/4.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.6 \u2013 Next select a username and password for your database.<\/p>\r\n\r\n\r\n\r\n<p>1.7 \u2013 After that for maximum Aurora capacity unit select 2.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4950\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/7.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.8 \u2013 Next select the VPC for where you want to create the database.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4951\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/5.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.9 \u2013 After that click on Additional connectivity configuration.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4952\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/6.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.10 \u2013 Select default value for Subnet group<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4953\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/7-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.11 \u2013 On the VPC security group Click on create new and in the name box type aurora-tutorial<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4954\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/8.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.12 \u2013 Next enable the Data API<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4955\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/9.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.13 \u2013 Next click on Additional configuration. On Enable deletion protection, uncheck this.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4956\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/10.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.14 \u2013 After that click on Create database.<\/p>\r\n\r\n\r\n\r\n<p>Now we need to retrieve the Cluster ARN. For this \u2013<\/p>\r\n\r\n\r\n\r\n<p>1.15 \u2013 Go to the RDS console and select your database and click on your database name.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4957\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/11.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.16 \u2013 In the configuration tab copy the ARN and keep it in a safe place.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4958\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/12.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Now we will go to connect our database.<\/p>\r\n\r\n\r\n\r\n<p>1.17 \u2013 Click on Query Editor.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4959\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/13.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.18 \u2013 Select the database-1, enter Postgres as the database username and input the database password you created earlier, then type Postgres for the database name.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4960\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/14.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.19 \u2013 Next click Connect to the database.<\/p>\r\n\r\n\r\n\r\n<p>1.20 \u2013 After that create a database tutorial with the query &#8211; CREATE DATABASE tutorial;<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4961\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/15.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.21 \u2013 Next click on Change database.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4962\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/16.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.22 \u2013 Change the database to a tutorial that we just created.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4963\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/22.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.23 \u2013 After that create a table with this query :<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4964\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/23.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>CREATE TABLE sample_table(received_at TIMESTAMP, message VARCHAR(255));<\/p>\r\n\r\n\r\n\r\n<p>Next, we have to copy the secret ARN. For that go to AWS Secret Manager.<\/p>\r\n\r\n\r\n\r\n<p>1.24 \u2013 Click on the Secret name.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4966\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/24.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>1.25 \u2013 Copy the Secret ARN and need to keep in our hand.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4968\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/25.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<h3><br \/><span style=\"color: #000000;\"><strong>Step 2: Now we will create our Lambda Function.<\/strong><\/span><\/h3>\r\n\r\n\r\n\r\n<p>2.1 \u2013 Go to the Lambda dashboard and click on Create function.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4969\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/1-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>2.2 \u2013 Next inside our Lambda dashboard select Author from scratch, enter a name to our Function, and in Runtime select language Python 3.8.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4971\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/2-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>2.3 \u2013 After that In the permissions tab, click on Change default execution role and select Create a new role with basic Lambda permissions. And click on Create function.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4972\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/3-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>2.4 \u2013 After create the function replace by the sample code.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4973\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/4-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>2.5 \u2013 Replace the cluster_arn and secret_arn values with the Cluster ARN and Secret ARN values from the previous steps.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4975\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/5-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>2.6 \u2013 Next, click on File and Save.<\/p>\r\n\r\n\r\n\r\n<p>2.7 \u2013 And after that deploy your Lambda function by clicking on Deploy button.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4976\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/7-2.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<h3><span style=\"color: #000000;\"><strong>Step 3: Create an Amazon SNS topic<\/strong><\/span><\/h3>\r\n\r\n\r\n\r\n<p>3.1 \u2013 In a new tab go to the SNS Dashboad. In Topic name enter your SNS topic name and click on Next step.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4979\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/1-2.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>3.2 \u2013 Leave all the fields default and click on Create topic<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4980\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/2-2.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>3.3 \u2013 After Creating the topic copy the SNS ARN and keep it in your hand.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4981\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/3-2.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<h3><span style=\"color: #000000;\"><strong>Step 4: Configure Elastic Container Service and create Fargate<\/strong><\/span><\/h3>\r\n\r\n\r\n\r\n<p>4.1 \u2013 Go to ECS dashboard. Click on Clusters and then Create Cluster.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4982\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/1-3.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>4.2 \u2013 Select your Cluster template Networking only Powered by AWS Fargate.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4983\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/2-3.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>4.3 \u2013 Give your Cluster a name. And in networking in Create VPC check the box and click on Create<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4984\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/3-3.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>4.4 \u2013 After creating the Cluster the dashboard looks like this.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4985\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/4-2.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>4.5 \u2013 Next select Tasks bar and click on Run new Task<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4986\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/5-2.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>4.6 \u2013 In your Run Task dashboard select Launch type FARGATE and leave all sections default.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4987\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/6-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>4.7 \u2013 In VPC and security groups select your default VPC and Subnets.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4988\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/7-3.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>4.8 \u2013 Next in Auto-assign public IP select ENABLED and click on Run Task.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4989\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/8-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>4.9 \u2013 After creating the task select Repositories from left panel<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4990\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/9-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>4.10 \u2013 In the Repositories click on Create repository<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4991\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/10-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>4.11 \u2013 Next in General settings select Visibility settings Private and give your repository a name.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4992\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/11-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>4.12 \u2013 Next leave all the section and click on Create repository.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4993\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/12-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<h3><span style=\"color: #000000;\"><strong>Step 5: Create API Gateway<\/strong><\/span><\/h3>\r\n\r\n\r\n\r\n<p>5.1 \u2013 Go to your API Gateway dashboard and click on Create API<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4994\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/1-4.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.2 \u2013 Next select REST API, click on Build.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4995\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/2-4.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.3 \u2013 Next give your API a name and then click Create API.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4996\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/3-4.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.4 \u2013 After creating the API click on Actions on the top and select create method.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4997\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/4-3.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.5 \u2013 Next select GET method from the drop down menu.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4998\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/5-3.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.6 \u2013 After that in Integration type check on Lambda Function, select your Lambda region, and provide your Lambda Function name which you created earlier. And then click on save.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-4999\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/6-2.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.7 \u2013 After that it looks like this.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5000\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/7-4.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.8 \u2013 Next on the left panel click on Usage Plans.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5001\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/8-2.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.9 \u2013 Click on Create<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5002\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/9-2.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.10 \u2013 Next give your usage plans a name, uncheck Throttling and Quota and Click on Next.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5003\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/10-2.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.11 \u2013 Next click on Add API Stage<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5004\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/11-2.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.12 \u2013 Select your API and Stage that you have created earlier. Next click on add button and click Next.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5006\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/12-3.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.13 \u2013 Next click on API Keys from left panel.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5007\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/13-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.14 \u2013 Click on Actions and select Create API key. Give your API Key a name and check API Key Auto Generate. And click Save.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5008\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/14-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.15 \u2013 You can see your API key.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5009\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/15-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.16 \u2013 Next click on Add to Usage Plan. And select your Usage plan. Click on add.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5010\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/16-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.17 \u2013 You can see this<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5011\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/17.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.18 \u2013 Whenever you change in your API Gateway console you need to deploy your API every time. Now need to Deploy the API.<\/p>\r\n\r\n\r\n\r\n<p>5.19 \u2013 Go to Resources in left panel and click on Actions and select Deploy API.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5013\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/18-1.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>5.20 \u2013 Next click on Deployment stage drop down menu and select your Deployment stage and then click on Deploy button.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5014\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/20.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<h3><span style=\"color: #000000;\"><strong>Step 6: Subscribe AWS Lambda Function Amazon SNS topic<\/strong><\/span><\/h3>\r\n\r\n\r\n\r\n<p>6.1 \u2013 Go to the Lambda dashboard and click on your Lambda function.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5015\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/1-5.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>6.2 \u2013 Click on Add trigger<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5016\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/2-5.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>6.3 \u2013 Type SNS and and select your SNS topic from drop down menu and paste your SNS ARN in SNS topic box.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5017\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/3-5.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>6.4 \u2013 Enable the trigger and click on Add button.<\/p>\r\n\r\n\r\n\r\n<h3><span style=\"color: #000000;\"><strong>Step 7: Add API Gateway to Lambda Function.<\/strong><\/span><\/h3>\r\n\r\n\r\n\r\n<p>7.1 \u2013 Go to Lambda Function Dashboard And click on Add trigger.<\/p>\r\n\r\n\r\n\r\n<p>7.2 \u2013 From the drop-down menu select API Gateway.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5019\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/2-7.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>7.3 \u2013 Next Select your Existing API, Deployment stage &gt; dev, in Security select API key.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5020\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/3-6.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>7.4 \u2013 Next click on Add button.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5021\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/4-4.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>7.5 \u2013 You can see your triggered SNS topic and API Gateway from the Lambda console.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5022\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/5-4.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<h3><span style=\"color: #000000;\"><strong>Now our setup is done.<\/strong><\/span><\/h3>\r\n\r\n\r\n\r\n<p>We use a Fargate Task to deploy a docker container where the docker image is pulled from AWS ECR.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5023\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/a.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>This image contains a PHP code.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5024\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/b.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>This image calls a GET request to the API Gateway with an API key which we created earlier in API Gateway section.<\/p>\r\n\r\n\r\n\r\n<p>Now we are showing the final output. Go to the ECS console &gt; Clusters &gt; Select your Cluster &gt; Tasks &gt; Click on your Tasks &gt; Copy Public IP.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5025\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/c.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Now copy the Public IP and paste it in your local machine. You will see the following output.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" class=\"wp-image-5026\" src=\"https:\/\/www.aqbsolutions.com\/wp-content\/uploads\/2021\/04\/d.png\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p class=\"has-text-align-left\"><strong>Thank You.<\/strong><\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>Business Case Example of Serverless Architecture Here we try to describe a business case where we experienced performance issues with ec2\/RDS combination [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":6206,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29,9],"tags":[78,79,80,81],"class_list":["post-4944","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","category-web-services","tag-api-gateway","tag-aurora-serverless","tag-aws-fargate","tag-aws-lambda"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Serverless Architecture in AWS<\/title>\n<meta name=\"description\" content=\"The Blog is all about a business case where we fixed an optimized a performance issues by deploying AWS Serverless Architecture.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Serverless Architecture in AWS\" \/>\n<meta property=\"og:description\" content=\"The Blog is all about a business case where we fixed an optimized a performance issues by deploying AWS Serverless Architecture.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-04-27T08:41:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-18T14:14:34+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/aqbsolutions.com\/blog\/wp-content\/uploads\/2021\/04\/Serverless-Architecture-in-AWS.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"780\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"aQbSolutions\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"aQbSolutions\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/\"},\"author\":{\"name\":\"aQbSolutions\",\"@id\":\"https:\/\/aqbsolutions.com\/blog\/#\/schema\/person\/7f8c6dcba99e9b5a7c24a525f8365952\"},\"headline\":\"Serverless Architecture in AWS\",\"datePublished\":\"2021-04-27T08:41:45+00:00\",\"dateModified\":\"2025-07-18T14:14:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/\"},\"wordCount\":1734,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/aqbsolutions.com\/blog\/wp-content\/uploads\/2021\/04\/Serverless-Architecture-in-AWS.jpg\",\"keywords\":[\"API Gateway\",\"Aurora Serverless\",\"AWS Fargate\",\"AWS Lambda\"],\"articleSection\":[\"DevOps\",\"Web Services\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/\",\"url\":\"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/\",\"name\":\"Serverless Architecture in AWS\",\"isPartOf\":{\"@id\":\"https:\/\/aqbsolutions.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/aqbsolutions.com\/blog\/wp-content\/uploads\/2021\/04\/Serverless-Architecture-in-AWS.jpg\",\"datePublished\":\"2021-04-27T08:41:45+00:00\",\"dateModified\":\"2025-07-18T14:14:34+00:00\",\"author\":{\"@id\":\"https:\/\/aqbsolutions.com\/blog\/#\/schema\/person\/7f8c6dcba99e9b5a7c24a525f8365952\"},\"description\":\"The Blog is all about a business case where we fixed an optimized a performance issues by deploying AWS Serverless Architecture.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/#primaryimage\",\"url\":\"https:\/\/aqbsolutions.com\/blog\/wp-content\/uploads\/2021\/04\/Serverless-Architecture-in-AWS.jpg\",\"contentUrl\":\"https:\/\/aqbsolutions.com\/blog\/wp-content\/uploads\/2021\/04\/Serverless-Architecture-in-AWS.jpg\",\"width\":1200,\"height\":780,\"caption\":\"Serverless Architecture in AWS\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/aqbsolutions.com\/blog\/#website\",\"url\":\"https:\/\/aqbsolutions.com\/blog\/\",\"name\":\"Aqbsolutions Blog\",\"description\":\"Blogs | IT Services in USA and Canada | aQb Solutions\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/aqbsolutions.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/aqbsolutions.com\/blog\/#\/schema\/person\/7f8c6dcba99e9b5a7c24a525f8365952\",\"name\":\"aQbSolutions\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/aqbsolutions.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d37e12c5e93bdf3f02abdb5c8a89bad8841bd4743b3b2ea558914abbb60c7414?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d37e12c5e93bdf3f02abdb5c8a89bad8841bd4743b3b2ea558914abbb60c7414?s=96&d=mm&r=g\",\"caption\":\"aQbSolutions\"},\"url\":\"https:\/\/aqbsolutions.com\/blog\/author\/aqbsolutions\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Serverless Architecture in AWS","description":"The Blog is all about a business case where we fixed an optimized a performance issues by deploying AWS Serverless Architecture.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/","og_locale":"en_US","og_type":"article","og_title":"Serverless Architecture in AWS","og_description":"The Blog is all about a business case where we fixed an optimized a performance issues by deploying AWS Serverless Architecture.","og_url":"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/","og_site_name":"Blog","article_published_time":"2021-04-27T08:41:45+00:00","article_modified_time":"2025-07-18T14:14:34+00:00","og_image":[{"width":1200,"height":780,"url":"http:\/\/aqbsolutions.com\/blog\/wp-content\/uploads\/2021\/04\/Serverless-Architecture-in-AWS.jpg","type":"image\/jpeg"}],"author":"aQbSolutions","twitter_card":"summary_large_image","twitter_misc":{"Written by":"aQbSolutions","Est. reading time":"23 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/#article","isPartOf":{"@id":"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/"},"author":{"name":"aQbSolutions","@id":"https:\/\/aqbsolutions.com\/blog\/#\/schema\/person\/7f8c6dcba99e9b5a7c24a525f8365952"},"headline":"Serverless Architecture in AWS","datePublished":"2021-04-27T08:41:45+00:00","dateModified":"2025-07-18T14:14:34+00:00","mainEntityOfPage":{"@id":"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/"},"wordCount":1734,"commentCount":0,"image":{"@id":"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/#primaryimage"},"thumbnailUrl":"https:\/\/aqbsolutions.com\/blog\/wp-content\/uploads\/2021\/04\/Serverless-Architecture-in-AWS.jpg","keywords":["API Gateway","Aurora Serverless","AWS Fargate","AWS Lambda"],"articleSection":["DevOps","Web Services"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/","url":"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/","name":"Serverless Architecture in AWS","isPartOf":{"@id":"https:\/\/aqbsolutions.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/#primaryimage"},"image":{"@id":"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/#primaryimage"},"thumbnailUrl":"https:\/\/aqbsolutions.com\/blog\/wp-content\/uploads\/2021\/04\/Serverless-Architecture-in-AWS.jpg","datePublished":"2021-04-27T08:41:45+00:00","dateModified":"2025-07-18T14:14:34+00:00","author":{"@id":"https:\/\/aqbsolutions.com\/blog\/#\/schema\/person\/7f8c6dcba99e9b5a7c24a525f8365952"},"description":"The Blog is all about a business case where we fixed an optimized a performance issues by deploying AWS Serverless Architecture.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/aqbsolutions.com\/blog\/2021\/04\/27\/serverless-architecture-in-aws\/#primaryimage","url":"https:\/\/aqbsolutions.com\/blog\/wp-content\/uploads\/2021\/04\/Serverless-Architecture-in-AWS.jpg","contentUrl":"https:\/\/aqbsolutions.com\/blog\/wp-content\/uploads\/2021\/04\/Serverless-Architecture-in-AWS.jpg","width":1200,"height":780,"caption":"Serverless Architecture in AWS"},{"@type":"WebSite","@id":"https:\/\/aqbsolutions.com\/blog\/#website","url":"https:\/\/aqbsolutions.com\/blog\/","name":"Aqbsolutions Blog","description":"Blogs | IT Services in USA and Canada | aQb Solutions","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/aqbsolutions.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/aqbsolutions.com\/blog\/#\/schema\/person\/7f8c6dcba99e9b5a7c24a525f8365952","name":"aQbSolutions","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/aqbsolutions.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d37e12c5e93bdf3f02abdb5c8a89bad8841bd4743b3b2ea558914abbb60c7414?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d37e12c5e93bdf3f02abdb5c8a89bad8841bd4743b3b2ea558914abbb60c7414?s=96&d=mm&r=g","caption":"aQbSolutions"},"url":"https:\/\/aqbsolutions.com\/blog\/author\/aqbsolutions\/"}]}},"_links":{"self":[{"href":"https:\/\/aqbsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/4944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aqbsolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aqbsolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aqbsolutions.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/aqbsolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=4944"}],"version-history":[{"count":2,"href":"https:\/\/aqbsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/4944\/revisions"}],"predecessor-version":[{"id":5582,"href":"https:\/\/aqbsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/4944\/revisions\/5582"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aqbsolutions.com\/blog\/wp-json\/wp\/v2\/media\/6206"}],"wp:attachment":[{"href":"https:\/\/aqbsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=4944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aqbsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=4944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aqbsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=4944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}