Answer - A and C.
AWS Lambda can be used to host the code, and the API gateway can be used to access the API's which point to AWS Lambda.
Alternatively, you can create your own API service, host it on an EC2 Instance, and then use the AWS Application Load balancer to do path-based routing.
Option B is incorrect since AWS CloudFront is not the correct service to host an application or create RESTful API.
ELB is a load-balancing solution.
Option D is incorrect since AWS SQS is a queuing service.
For more information on an example with RESTful API's, please refer to the below URL-
https://aws.amazon.com/getting-started/projects/build-serverless-web-app-lambda-apigateway-s3-dynamodb-cognito/module-4/
The correct options for the given scenario are A. AWS Lambda and AWS API Gateway, and C. AWS EC2 and Application Load Balancer.
Explanation:
RESTful API service allows clients to access and manipulate data over the HTTP protocol. AWS offers several services for developing and hosting RESTful APIs.
A. AWS Lambda and AWS API Gateway: AWS Lambda is a serverless compute service that allows developers to run code without provisioning or managing servers. AWS API Gateway is a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale. These services can be used together to develop and host RESTful APIs. Lambda functions can be used to create the API endpoints, and API Gateway can be used to manage the API, handle authentication and authorization, and provide throttling, caching, and other features.
C. AWS EC2 and Application Load Balancer: Amazon Elastic Compute Cloud (EC2) is a web service that provides resizable compute capacity in the cloud. An Application Load Balancer (ALB) is a fully managed service that routes traffic to EC2 instances. These services can be used together to develop and host RESTful APIs. EC2 instances can be used to create the API endpoints, and ALB can be used to load balance the traffic, handle SSL termination, and provide other features.
B. AWS CloudFront and Application Load Balancer: AWS CloudFront is a content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally. It can be used to accelerate the delivery of RESTful APIs. However, it cannot be used alone to develop and host RESTful APIs. An Application Load Balancer (ALB) can be used with CloudFront to load balance the traffic, handle SSL termination, and provide other features.
D. AWS SQS and CloudFront: AWS Simple Queue Service (SQS) is a fully managed message queuing service that enables decoupling and scaling of microservices, distributed systems, and serverless applications. It cannot be used alone to develop and host RESTful APIs. AWS CloudFront can be used with SQS to deliver messages to clients, but it is not a suitable option for developing and hosting RESTful APIs.
Therefore, the correct options for developing and hosting RESTful APIs are A. AWS Lambda and AWS API Gateway, and C. AWS EC2 and Application Load Balancer.