AWS Elastic Beanstalk and AWS Lambda: A Practical Guide & CCP Exam

Prashant Malge 02 Feb, 2024 • 10 min read

Introduction 

In cloud computing, we face different services designed for specific purposes. AWS (Amazon Web Services) is a formidable force in this landscape. Choosing exemplary service is a notable task, as missteps can lead to higher bills. Once you navigate the complexities, two services, AWS Elastic Beanstalk and AWS Lambda, often become vital concerns. The question arises: What distinguishes these services, and how do they integrate into the broader AWS ecosystem?

In this discussion, we delve into AWS Elastic Beanstalk and AWS Lambda, unraveling their distinct features, use cases, and practical applications. Additionally, we explore multiple-choice questions relevant to the AWS Certified Cloud Practitioner (CCP) exam. By the end of our exploration, you will not only understand the differences between these services but even gain insights into creating them using the AWS console and discern how pricing varies.

Learning Objectives

  • Learn the features of AWS Elastic Beanstalk and AWS Lambda and differentiate between these two services.
  • Understand how to create these two services and how to deploy web applications with Elastic Beanstalk, as well as build serverless functions with Lambda.
  • Practice multiple-choice questions for the CCP exam to gain insight into how questions are designed for specific aspects of these services.
  • In the last part, we discussed how to charge for these services.

This article was published as a part of the Data Science Blogathon.

AWS Elastic Beanstalk

AWS Elastic Beanstalk

AWS Elastic Beanstalk is a fully managed service with the main role of simplifying the deployment and management of applications in the realm of the cloud. Users can directly use this service to manage their web applications. This may lead to confusion, as EC2 instances are also used for deploying applications. Let’s address the pricing and your requirements below. Additionally, we’ll highlight some characteristics to remember about Beanstalk:

  • Platform as a Service (PaaS): Beanstalk is a PaaS and is mainly focused on writing code rather than managing servers.
  •  Easy Application Deployment: It provides a clear and streamlined process for deploying applications, supporting a variety of programming languages and frameworks.
  •  Automatic Scaling: Beanstalk automatically handles the load of the website. The answer is a load balancer. Using a load balancer allows us to handle the website traffic automatically.
  •  Environment Management: Environments can be easily created, configured, and managed, allowing for different instances for development, testing, and production.
  •  Built-In Monitoring and Health Checks: Elastic Beanstalk includes tools for monitoring the health of the application and performs automatic health checks, allowing proactive issue detection.

Prerequisites

  • Access to AWS Console
  • IAM Roles:
    • AWSElasticBeanstalkWebTier
    • AWSElasticBeanstalkRoleWorkerTier

Creating IAM Roles

  • Go to the AWS Console.
  • Search for IAM and click the first link.
  • In the IAM UI, click on the “Roles” option highlighted in the red rectangle.
IAM Dashboard
  • After opening the Roles UI, first, observe the Trusted entity section. Don’t edit anything in this section; proceed to the bottom where I marked it in a red rectangle. Under “Use case (imp),” select the option based on your requirements. In this case, you want roles related to EC2, so choose the service “EC2.”
Select trusted entity
  • After adding permissions specific to the current use as mentioned in the prerequisites section,
Add permissions
  • Give the role a name.
  • On the right side, at the bottom, click “Create role.”

Creating Step-By-Step Elastic Beanstalk

Step 1: Log in to the AWS Console. check the login or sign-up procedure.

Step 2: Search in the search box for Elastic Beanstalk and open the UI of the Beanstalk service. and click the Create environment.

Step 3: After completing Step 2, provide the application name and check the environment; this name is automatically generated, so there’s no need to worry about it.

AWS Elastic Beanstalk

Step 4: Select the platform; since we are deploying a sample Python page, choose the desired language. Check compatibility, including the version. For the application code, if you want to use your code, choose the “Upload your code” option; otherwise, select the sample page provided by AWS.

AWS Elastic Beanstalk

Step 5: Configure Service Access

  • Choose the service role:
    • For the first time, select “Create and use a new service role.”
  • In the “EC2 key pair” option:
    • Choose an existing EC2 key pair if you have one.
    • Alternatively, create a new key pair manually.
  • For “EC2 instance profile”:
    • Select the IAM role created in the above steps.
    • The role should be automatically available when created for the first time.
AWS Elastic Beanstalk

Step 6: Set up networking, database, and tags (optional). In this section, if you want to add a VPC, you can click “Edit,” but keep in mind that VPC setup can be complex. Since this is an optional step, you can leave it as is and move on to the next step.

Step 7: In this step, configure instance traffic and scaling. Select the EC2 group for traffic; for example, deploy using HTTP (you can choose the EC2 groups). For scaling, load the load balancer.

Load Balancer

Step 8: In this step, configure updates, monitoring, and logging (optional). Optionally, add your email for notifications. This step is not mandatory.

Step 9: After completing all the steps, go to the home page and click on the left-side option “Go to environment” or “Domain name.” Once you click on the domain name, you should see the deployed Python page.

Output

AWS Lambda

AWS Lambda

AWS Lambda is a serverless computing service provided by Amazon Web Services (AWS). Lambda follows a Function-as-a-Service (FaaS) model, allowing developers to write code directly and test the results without managing servers. It proves beneficial in large-scale code development scenarios, especially when making small changes to code, making it a desired service for such tasks. Here are some key characteristics of AWS Lambda:

  • Function as a Service (FaaS): Lambda provides a serverless architecture, allowing developers to write separate functions that are performed in response to events or triggers.
  • Event-Driven: Lambda functions are started by events such as changes in data, HTTP requests, or messages from other AWS services. This event-driven model makes it suitable for a different range of applications.
  • Automatic Scaling: Lambda automatically scales to handle the number of API calls(incoming requests).
  • Pay-per-Use Pricing: So the main aspect is pricing, The lambda function delivers us pay for the compute time consumed by the function.
  • Multi-Language Support: lambda function supports different programming languages like Node.js, Python, Java, C#, and more.

Creating Step-By-Step AWS Lambda

Step 1: Log in to the AWS Console. check the login or sign-up procedure.

Step 2: Search in the search box for AWS Lambda and open the UI of the Lambda service.

Step 3:

  • Write a descriptive function name.
  • Select the runtime environment based on your coding preferences (e.g., Node.js, Python, Java).
  • Adjust additional options according to specific requirements or leave them as default.
AWS Lambda

Step 4: After creating the function, explore trigger options (events that can invoke the function) and view the function name layer in the AWS Lambda dashboard.

AWS Lambda

Step 5: Scroll down slightly to view the coding environment setup. Click the “Test” option highlighted in a yellow rectangle. This option provides the testing capability for your code, making Lambda a powerful tool for development and debugging.

AWS Lambda

Step 6: After clicking the test, give it a name, and check the result in JSON format. You can reuse or share test configurations for convenience.

Step 7: Click the “Deploy” option and check the output of the test case. You can see the response in the body section, and also check the status, such as “succeed.” Additionally, I’ve highlighted two options: “Function logs” and “Request Id.

AWS Lambda

Difference Between Beanstalk vs Lambda

Feature AWS Elastic Beanstalk AWS Lambda
Service Type Platform-as-a-Service (PaaS) Function-as-a-Service (FaaS)
Use Case Deploying and managing applications Running individual-functions in a serverless environment
Deployment Deploy entire applications with dependencies Deploy independent functions (code)
Scaling Automatic capacity-provisioning, load balancing, and auto-scaling Auto-scales based on the number of loads (requests or events)
Server Management More control over server configurations Fully managed service; no need to manage servers
Billing Based on resources provisioned (e.g., EC2 instances) Pay-per-execution model, billed for compute time used
Architecture Suited for traditional web-applications Ideal for event-driven, stateless functions and microservices
Flexibility More control over infrastructure configuration Focuses on individual functions with less control over infrastructure

Pricing Difference Between Beanstalk vs Lambda

Aspect AWS Lambda AWS Elastic Beanstalk
Pricing Model Pay-per-request and duration-based pricing Pay-as-you-go, based on underlying AWS resources
Granularity Granular, based on function execution and memory Variable, influenced by EC2 instances, bandwidth
Additional Costs Ephemeral storage, Provisioned Concurrency (if used) Variable, depends on EC2 instances, resources
Upfront Commitments No minimum fees, pay-as-you-go model No minimum fees, pay-as-you-go model
Use Case Focus Event-driven, serverless computing Web application deployment and management
Suitability Ideal for microservices, event-driven architectures Suitable for web applications with varying loads

MCQ AWS Certified Cloud Practitioner (CCP)

  • The AWS Certified Cloud Practitioner (CCP) exam is an entry-level certification designed for individuals with a foundational understanding of AWS Cloud services.
  • It validates basic cloud knowledge, including AWS Cloud concepts, services, security, architecture, pricing, and billing.
  • The exam is suitable for people with non-technical and technical backgrounds who seek an overall understanding of AWS Cloud.
  • Key exam domains include Cloud Concepts, Security and Compliance, Technology, Billing and Pricing, and Support Plans.
  • The exam consists of multiple-choice questions (MCQs) and must be completed within a specified time frame.

Sample Questions

1. Which of the following use container-technologies? (Select TWO.) 

A. Docker 

B. Kubernetes 

C. Lambda 

D. Lightsail 

A. Docker, B. Kubernetes

Docker and Kubernetes are container technologies and other lamnda is serveless cloud computing service and lightseail cloud service for devlopers.

2. What role can the Python programming language play in AWS Lambda? 

A. Python cannot be used for Lambda. 

B. It is the primary language for API calls to administrate Lambda remotely. 

C. It is used as the underlying code driving the service. 

D. It can be set as the runtime environment for a function. 

D. It can be set as the runtime environment for a function.

In this blog we created a lambda using Python we can choose the Python runtime environment.

3. What is the maximum time a Lambda function may run before timing out? 

A. 15 minutes 

B. 5 minutes 

C. 1 minute 

D. 1 hour

A. 15 minutes

The maximum timeout for an AWS Lambda function is 15 minutes.

4. Which AWS services simplify the process of bringing web applications to deployment? (Select TWO.) 

A. Elastic Block Store 

B. Elastic Compute Cloud 

C. Elastic Beanstalk 

D. Lightsail 

C. Elastic Beanstalk
D. Lightsail

Elastic Beanstalk and Lightsail are services specifically designed to simplify the deployment of web applications. Elastic Block Store (EBS) and Elastic Compute Cloud (EC2) are more foundational AWS services.

5. Which of the following services bills at a flat rate regardless of how it’s consumed? 

A. Lightsail 

B. Elastic Beanstalk 

C. Elastic Compute Cloud 

D. Relational Database Service 

A. Lightsail

Lightsail bills at a flat rate, providing a simple and predictable pricing model, unlike services such as Elastic Compute Cloud (EC2) that charge based on usage.

6. Which of these stacks are available from Lightsail Blueprints? (Select TWO.) 

A. Ubuntu 

B. Gitlab 

C. WordPress 

D. LAMP 

A. Ubuntu
C. WordPress

Lightsail blueprints include predefined application stacks for commonly used scenarios. Ubuntu and WordPress are examples of stacks available in Lightsail blueprints.

7. Which of these AWS services use primarily EC2 resources under the hood? (Select TWO.) 

A. Elastic Block Store 

B. Lightsail 

C. Elastic Beanstalk 

D. Relational Database Service 

B. Lightsail
C. Elastic Beanstalk

Lightsail and Elastic Beanstalk use primarily EC2 resources under the hood. Elastic Block Store (EBS) and Relational Database Service (RDS) are more specific services providing storage and database solutions, respectively.

8. Which of the following AWS services are designed to let you deploy Docker containers? (Select TWO.) 

A. Elastic Container Service 

B. Lightsail 

C. Elastic Beanstalk

D. Elastic Compute Cloud 

A. Elastic Container Service
C. Elastic Beanstalk

Both AWS Elastic Container Service (ECS) and Elastic Beanstalk support the deployment of Docker containers. Lightsail and Elastic Compute Cloud (EC2) are not specifically designed for Docker container management.

9. Which AWS service is suitable for quickly provisioning virtual private servers with pre-configured templates?

A. Elastic Beanstalk

B. AWS Lambda

C. Amazon EC2

D. AWS Fargate

C. Amazon EC2

Amazon Elastic Compute Cloud (EC2) is the AWS service that allows you to quickly provision virtual private servers (instances) with pre-configured templates.

10. In AWS, which service allows you to securely control access to AWS resources by creating and managing IAM users and roles?

A. AWS Key Management Service (KMS)

B. AWS Identity and Access Management (IAM)

C. AWS Security Hub

D. AWS Directory Service

B. AWS Identity and Access Management (IAM)

Conclusion

We explored AWS Elastic Beanstalk and Lambda in this blog. AWS Elastic Beanstalk enables web application deployment on the cloud, while Lambda offers server-less configurations. We also discussed the characteristics of AWS Elastic Beanstalk and Lambda. Additionally, we provided a step-by-step practical demonstration to help users use these services according to their requirements. The blog also covered AWS Certified Cloud Practitioner exam topics, reinforcing foundational knowledge. By understanding these services and concepts, readers can understand AWS comprehensively, facilitating effective cloud computing practices.

Key Takeaways

  • Streamlining the deployment of web applications on the cloud, this solution offers an efficient and straightforward infrastructure management process.
  • Enabling serverless computing, this platform allows developers to effortlessly execute code without the hassle of managing underlying infrastructure complexities.
  • Success in the AWS Certified Cloud Practitioner exam hinges on a comprehensive understanding of crucial concepts, including AWS Elastic Beanstalk and Lambda.
  • Follow a detailed, step-by-step guide for setting up AWS Lambda and Elastic Beanstalk instances, ensuring a hassle-free deployment experience.

Resources for Further Learning

  • AWS Documentation of Elastic Beanstalk: Link
  • AWS Documentation of Lambda: Link
  • AWS Exam UI: Link

The media shown in this article is not owned by Analytics Vidhya and is used at the Author’s discretion.

Prashant Malge 02 Feb 2024

Frequently Asked Questions

Lorem ipsum dolor sit amet, consectetur adipiscing elit,

Responses From Readers