## 2 Literature Review
### Serverless Cloud Computing Platforms
#### 2.2.2 AWS App Runner  
AWS App Runner is a fully managed service that helps to build, deploy, and run containerized web applications and API services without prior infrastructure or container experience [32]. It provides a high-level abstraction over the underlying infrastructure, allowing one to focus on the application code. App Runner supports a variety of programming languages and frameworks, including Node.js, Python, Java, Go, and.NET. It also supports a variety of container images, including Docker and Amazon ECS. App Runner also provides a number of features that make it easy to manage applications, including the following:_Automatic Scaling_: App Runner's autoscale feature can help users to improve the performance, reliability, and cost-effectiveness of the application. App Runner automatically scales one's application up or down based on demand, so users only pay for the resources that they use [32; 33]. App Runner can also automatically scale one's application to handle spikes in traffic, so one's users always have a good experience. Additionally, App Runner can automatically recover from failures by scaling one's application back up. Users can provide an auto-scaling configuration to customize the scaling behavior. If one does not provide one, App Runner provides a default configuration with recommended values. Users can share a single auto-scaling configuration across multiple App Runner services to ensure that they have the same auto-scaling behavior. Unlike Google Cloud Run, AWS App Runner does not allow the scale down to zero option. _Health Checks_: App Runner automatically performs health checks on one's application. If an application fails a health check, App Runner will automatically restart it [33]. _Logging and Monitoring_: App Runner provides detailed logs and metrics for an application. This helps users to troubleshoot problems and identify performance bottlenecks [33]. _Automatic Deployments_: With App Runner, one can easily build and deploy one's application in a matter of minutes. Simply connect App Runner to the code repository or container image registry to get started. App Runner will then monitor the repository for any updates to the source code or container image. Once an update is detected, App Runner will automatically build and deploy the new version of the application [33]. This feature is an efficient way to keep one's application up to date, reducing the time it takes to deploy new features and bug fixes while improving the overall reliability of the application. _Security and Privacy_: App Runner employs AWS's shared responsibility model, which involves the security and compliance responsibilities/requirements between AWS and customers [34]. Customers can determine their responsibilities by assessing the requirements using frameworks like the NIST Cybersecurity Framework (CSF) and International Organization of Standardization (ISO), reviewing service documentation for security configurations, and evaluating security and compliance services. To protect data and privacy, account credentials are enforced by IAM, which only grants access to users with the permissions required for specific roles. For additional protection, multi-factor authentication (MFA), TLS for communication, and AWS encryption with built-in security controls are utilized. _Load Balancing_: App Runner offers the important capability of automatically balancing traffic across multiple containers [33]. This feature is highly significant in managing unexpected surges in traffic while ensuring optimal performance and availability. Toward this, AWS's Application Load Balancer operates at the request level, routing traffic to targets such as containers and IP addresses. Given this, it proves to be a viable option for applications that require a robust traffic capacity and dependable availability. _Networking_: App Runner provides users with the flexibility to tailor the interaction between their service, applications, and resources.