Serverless Compute in 2023: Top Trends, Challenges & Adoption Patterns in AWS, Google Cloud and Azure

In the ever-evolving landscape of computing, serverless has undeniably established itself as a central pillar. The driving force behind this transition is the growing availability of serverless offerings from major cloud providers such as Amazon Web Services (AWS), Google Cloud, and Azure, along with emerging platforms like Vercel and Cloudflare.

This report provides a comprehensive analysis of how over 20,000 organizations are utilizing serverless technologies in their operations, exploring significant trends and insights drawn from real-world applications of this transformative technology.

Shift Toward Serverless Adoption

Significant growth has been observed in serverless adoption among organizations operating on Azure and Google Cloud, with AWS also showing positive development. For instance, 70% of the AWS customers and 60% of Google Cloud customers now use serverless solutions. Azure isn’t far behind, with 49% of its customers embracing serverless offerings.

This upswing can be attributed to the expanding suite of serverless tools, ranging from FaaS solutions to serverless edge computing, offered by these cloud providers to meet their customers’ unique needs.

The Rise of Container-Based Serverless Computing

Google Cloud, since its launch of Cloud Run in 2019, has led in fully managed container-based serverless adoption. However, this year AWS saw a rise to 26% of serverless organizations running containerized Lambda functions and AWS App Runner. Azure also experienced considerable year-over-year growth, propelled by the launch of Azure Container Apps.

Container-based serverless compute platforms are gaining traction as they facilitate serverless adoption and migration by enabling organizations to deploy existing container images as microservices. Apart from that, these platforms offer wider language support and larger application sizes.

Serverless Platforms: Beyond The Major Providers

While major providers dominate the serverless space, frontend development and Content Delivery Network (CDN) platforms like Vercel, Netlify, Cloudflare, and Fastly also equip developers with specialized serverless compute capabilities. Interestingly, 7% of organizations monitoring serverless workloads in a significant cloud are also running workloads on one or more of these emerging platforms.

Choice of Languages for AWS Lambda

Node.js and Python are the languages of choice for most AWS Lambda developers, with over half of invocations being written in these languages. The rising popularity of custom runtimes indicates a growing interest in serverless containers, which allow developers to work with languages not natively supported by Lambda.

The Challenge of Cold Starts

Cold starts, where a new execution environment is created to serve a request, remain a significant concern. This is especially true for Java-based Lambda functions, which showcase the longest cold start times due to the JVM and Java libraries’ loading time.

The Adoption of AWS Lambda on ARM

The usage of AWS Lambda on ARM has doubled in the past year, primarily due to its combined benefits of faster execution times and lower costs.

Deployment Tools for AWS Lambda

Infrastructure as Code (IaC) tools like the Serverless Framework and Terraform greatly simplify the deployment and configuration of Lambda functions and other resources. As organizations mature and scale, the preference for IaC tools shifts. Larger organizations positively inclined towards Terraform for multi-cloud support and flexibility.

Connection of AWS Lambdas to a Virtual Private Cloud (VPC)

The complexity of integrating serverless functions across the existing infrastructure has led many organizations to connect their Lambda functions directly to the VPCs. According to recent statistics, 65% of Datadog customers have at least five Lambda functions connected to a dedicated VPC in their AWS account.

Serverless technologies today are making developer’s lives easier by being more secure, cost-effective, flexible, and efficient. The prominence of serverless in modern application building is only expected to surge further in the coming years.

Tags: #Serverless #AWSLambda #GoogleCloud #Azure #Terraform #Containerization #VPC #Nodejs #Python #ARM

Reference Link

Troubleshooting Access Denied (403 Forbidden) errors in Amazon S3

Introduction

When working with Amazon S3, it is not uncommon to encounter Access Denied (403 Forbidden) errors. These errors can occur due to various reasons, such as incorrect permissions, misconfigured policies, or other issues. In this blog post, we will discuss common causes for these errors and provide troubleshooting steps to help you resolve them.

Bucket Policies and IAM Policies

One of the common causes of Access Denied errors in Amazon S3 is misconfigured bucket policies or IAM policies. These policies control access to S3 resources at the bucket and object levels. Here are some steps to troubleshoot this issue:

  1. Review Bucket Policy: Check if your bucket has a bucket policy in place. If not, the bucket implicitly allows requests from any IAM identity in the bucket-owning account. Ensure that the bucket policy includes at least one explicit Allow statement and does not have any explicit Deny statements for the requester.

  2. Review IAM Policies: Make sure that the IAM user or role associated with the request has the necessary permissions to perform the desired operation. Check the IAM policies to ensure that there are no explicit Deny statements that would block the access.

  3. Simulate IAM Policies: To further troubleshoot IAM policies, you can use the IAM policy simulator to test the policies and evaluate the possible results for different scenarios.

Amazon S3 ACL Settings

Access Control Lists (ACLs) in Amazon S3 are another aspect to review when troubleshooting Access Denied errors. ACLs are used to grant permissions to objects in the bucket. Consider the following steps:

  1. Review ACL Permissions: Check the ACL permissions for the bucket and the specific object related to the access request. Ensure that the ACLs are properly configured and not conflicting with the bucket policy or IAM policies.

  2. Object Ownership: Verify the ownership of the object. If the object is owned by an external account, access can only be granted through object ACLs.

S3 Block Public Access Settings

S3 Block Public Access settings provide an additional layer of security to prevent public access to buckets and objects. Here’s what you can do:

  1. Check Block Public Acls Setting: If the request includes public ACLs, make sure that the BlockPublicAcls setting is not preventing the request. This setting rejects calls that include public ACLs.

  2. Verify Block Public Policy Setting: If the bucket policy allows public access, check the BlockPublicPolicy setting to ensure it is not rejecting the request.

  3. Review Restrict Public Buckets Setting: The RestrictPublicBuckets setting can reject cross-account calls and anonymous calls to buckets with public policies. Make sure this setting is not causing the Access Denied error.

Amazon S3 Encryption Settings

Encryption settings in Amazon S3 ensure the security of your data. Improperly configured encryption settings can lead to Access Denied errors. Follow these steps:

  1. Check Server-Side Encryption: Verify whether server-side encryption is enabled for your bucket. Ensure that the encryption method (SSE-S3, SSE-KMS, SSE-C) is properly configured.

  2. Review Permissions Requirements: Each encryption method has specific permissions requirements. Make sure the necessary permissions are granted for each encryption type. Refer to the AWS documentation for more information on the required permissions.

S3 Object Lock Settings

S3 Object Lock provides an additional layer of protection by allowing you to apply retention periods or legal holds to objects. Access Denied errors may occur when deleting objects protected by Object Lock. Troubleshoot as follows:

  1. Verify Object Lock Status: Check whether Object Lock is enabled for your bucket. If Object Lock is enabled, protected objects may be inaccessible for deletion.

  2. Review Retention Periods and Legal Holds: If the object version is protected by a retention period or legal hold, permanent deletion may result in an Access Denied error. Make sure to understand the lock information for the object before attempting to delete it.

VPC Endpoint Policy

If you are accessing Amazon S3 through a VPC endpoint, ensure that the VPC endpoint policy is not blocking access to S3 resources. By default, VPC endpoint policies allow all requests to Amazon S3. However, you can configure the policy to restrict certain requests.

AWS Organizations Policies

In the case of an AWS account belonging to an organization, AWS Organizations policies can impact access to S3 resources. Check the organization’s policies to ensure they are not blocking access to S3 buckets.

Access Point Settings

Access points provide a more secure and simplified way to access S3 resources. If you encounter Access Denied errors when making requests through access points, consider the following:

  1. Review Access Point Configurations: Verify the configurations of your access points. Ensure that the network origin is correctly set to either Internet or VPC, depending on your requirements.

  2. Check Custom Block Public Access Settings: If you have configured custom Block Public Access settings for your access points, ensure that they are not causing the Access Denied errors.

Conclusion

Access Denied (403 Forbidden) errors in Amazon S3 can occur due to various reasons, including misconfigured permissions, policies, or settings. By following the troubleshooting steps outlined in this blog post, you can identify and resolve these errors, allowing the necessary access to your S3 resources.

Tags: Amazon S3, Access Denied, Troubleshooting, Bucket Policies, IAM Policies, ACL Settings, Block Public Access, Encryption, S3 Object Lock, VPC Endpoint, AWS Organizations, Access Points

[Reference Link](!https://docs.aws.amazon.com/AmazonS3/latest/userguide/troubleshoot-403-errors.html)