CC LabWorkbook Modified 22-09
CC LabWorkbook Modified 22-09
2023-2024
Section: A
Distribution List:
Prepared by : Updated by :
3) Sign : 3) Sign :
1) Name : 1)Name :
2) Sign : 2) Sign :
3) Design : 3) Design :
4) Date : 4) Date :
Approved by (HOD) :
2) Sign : 3) Date :
CERTIFICATE
This is to certify that Mr. / Miss ___________________________________
Head Faculty
Dept. of CSE In-charge
4
Install the simple Notification Service on Ubuntu.
5 Use Amazon Cloud front to create Distribution and Use Amazon Route53
to create a domain (example: .com, .in).
6
Study and Implement Cloud Security management by VPC
7 Building a “Hello world” app for the cloud by using AWS Lambda.
8 Installing and configuring python/java/PHP platform by using Google App
Engine.
Additional Programs
1 Study on Cloud Security Management. CO5 PO1,PO2,PO4,
PO5,PO6,PO9,
PO11,PO12
2. To provide graduates with analytical and problem solving skills to design algorithms, other
hardware / software systems, and inculcate professional ethics, inter-personal skills to work in
a multi-cultural team.
3. To facilitate graduates to get familiarized with the art software / hardware tools, imbibing
creativity and innovation that would enable them to develop cutting-edge technologies of
multi-disciplinary nature for societal development.
PO 2: Problem analysis: Identify, formulate, review research literature, and analyze complex
engineering problems reaching substantiated conclusions using first principles of mathematics,
natural sciences, and engineering sciences.
PO 6: The engineer and society: Apply reasoning informed by the contextual knowledge to
assess societal, health, safety, legal and cultural issues and the consequent responsibilities
relevant to the professional engineering practice.
PO 8: Ethics: Apply ethical principles and commit to professional ethics and responsibilities
and norms of the engineering practice.
PO 11: Project management and finance: Demonstrate knowledge and understanding of the
engineering and management principles and apply these to one’s own work, as a member and
leader in a team, to manage projects and in multidisciplinary environments.
PO 12:Life-long learning: Recognize the need for, and have the preparation and ability to
engage in independent and life-long learning in the broadest context of technological change.
Develop ability to
CO1: Distinguish different types of Distributed Computing models and Identify different cloud
computing models and services provided by cloud providers.
CO1.Distinguish different
types of Distributed
Computing Models and 2,3,4,5,
Identify different cloud 2 3 1 1 3 1 2 1 - - 2 3 2 3
computing models and 6,7,8,9
services provided by
cloud providers.
CO3.Demonstrate 1,2
Virtualization of clusters
and data centers. 2 3 3 2 3 1 2 1 - - 2 3 2 3
1. Observation book and lab records submitted for the lab work are to be checked and
signed before the next lab session.
2. Students should be instructed to switch ON the power supply after the connections are
checked by the lab assistant / teacher.
3. The promptness of submission should be strictly insisted by awarding the marks
accordingly.
4. Ask viva questions at the end of the experiment.
5. Do not allow students who come late to the lab class.
6. Encourage the students to do the experiments innovatively.
7. Fill continuous Evaluation sheet, on regular basis.
8. Ensure that the students are dressed in formals
1. Create Virtual machines using Open source software: VM Ware/ Oracle Virtual Box.
2. Use Amazon EC2 to create a Virtual machine.
3. Use Amazon S3 to create bucket and upload objects.
4. Install the Simple Notification Service on Ubuntu.
5. Use Amazon Cloud front to create Distribution and Use Amazon Route53 to create a domain
(example: .com, .in).
6. Study and Implement Cloud Security management by VPC.
7. Building a “Hello world” app for the cloud by using AWS Lambda
Scheme of Lab Exam Evaluation:
Create a Virtual Machines using Open source software: VM Ware/Oracle virtual Box.
Objective:
Student will able to create a virtual machine using VM Ware/Oracle virtual Box.
Outcome:
Student gains the ability to launch a virtual machine using VM Ware/Oracle virtual Box.
Theory:
The techniques and features that Virtual Box provides are useful for several scenarios:
Objective:
Students will able to create virtual machine by using Amazon EC2.
Outcome:
Student gains the ability to create a virtual machine using Amazon EC2.
Steps
Step 1:
You can easily terminate the Windows Server VM from the Amazon EC2 console. In fact, it is a
best practice to terminate instances you are no longer using so you don’t keep getting charged for
them.
a. Back on the EC2 Console, select the box next to the instance you created. Then click
the Actions button, navigate to Instante State, and click Terminate.
Objective:
Outcome:
Student gains the ability to develop java program using Amazon S3.
Description:
The Java API for Amazon Web Services is provided by the AWS SDK.3
Create an S3 client. S3 access is handled by the class AmazonS3Client instantiated with the
account
The access and the secret keys can be found on the user’s AWS account homepage
Buckets:
Bucket names must be globally unique, hence, it is advisable to check first to see whether the
name exists:
s3.doesBucketExist("bucket_name");
This function returns “true” if the name exists and “false” otherwise. Buckets can be created and
deletedeither directly from the AWS Management Console or programmatically as follows:
s3.createBucket("bucket_name");
s3.deleteBucket("bucket_name");
To upload an object in a bucket, we can use the AWS Management Console or,
programmatically,
a file local_ f ile_namecan be uploaded from the local machine to the bucket bucket_nameunder
the key keyusing
Batch upload/download:
Batch upload requires repeated calls of s3.putObject() while iterating over local files.
Objective:
Student will able to install simple Notification Service on Ubuntu.
Outcome:
Student gains the ability to install simple Notification Service on Ubuntu.
Description:
To install the SNS client the following steps must be taken:
1. Install Java in the root directory and then execute the commands:
3. Start the AWS Management Console and go to Security Credentials. Check the Access Key ID
and
the Secret Access Key and create a text file /root/credential.txt with the following content:
sns.cmd
If the installation was successful, the list of SNS commands will be displayed.
Note
Alternatively, if you plan to create your CloudWatch alarm using the AWS Management
Console, you can skip this procedure because you can create the topic through the Create Alarm
Wizard.
Objective:
Verify permissions
Before you can use Amazon VPC, you must have the required permissions. For more
information, see Identity and access management for Amazon VPC and Amazon VPC policy
examples.
As you choose a size for your VPC, consider how many IP addresses you'll need across your
AWS accounts and VPCs. Ensure that the IP address ranges for your VPCs don't overlap with
the IP address ranges for your own network. If you need connectivity between multiple VPCs,
you must ensure that they have no overlapping IP addresses.
IP Address Manager (IPAM) makes it easier to plan, track, and monitor the IP addresses for
Production environment
For a production environment, we recommend that you select at least two Availability Zones and
deploy your AWS resources evenly in each active Availability Zone.
For a development or test environment, you might choose to save money by deploying your
resources in only one Availability Zone.
If your application will receive traffic from the internet, the VPC must have an internet
gateway. Attaching an internet gateway to a VPC does not automatically make your
instances accessible from the internet. In addition, the subnet route table must include a
route to the internet gateway, which turns the subnet from a private subnet to a public
subnet. The instances must also have a public IP address and be associated with a security
group with a rule that allows traffic from the internet over specific ports and protocols.
Alternatively, register your instances with an internet-facing load balancer. The load
balancer receives traffic from the clients and distributes it across the registered instances
in one or more Availability Zones.
Production environment
For a production environment, you can use one of the following services to deploy servers in
multiple Availability Zones, configure scaling so that you maintain the minimum number of
servers required by your application, and register your servers with a load balancer to distribute
traffic evenly across your servers.
For a development or test environment, you might choose to launch a single EC2 instance.
Topics
Prerequisites
Step 1: Create a topic
Step 2: Create a subscription to the topic
Step 3: Publish a message to the topic
Step 4: Delete the subscription and topic
Prerequisites
Before you begin, complete the steps in Setting up access for Amazon SNS.
4. In the Message body section, choose Identical payload for all delivery protocols, and then
enter a message body, such as:
Building a ”Hello World” app for the cloud by using AWS Lambda
Enter Lambda Console
When you click here, the AWS Management Console will open in a new browser
window, so you can keep this step-by-step guide open. In the top navigation bar, search
for Lambda and open the AWS Lambda Console.
Note: The console shows this page only if you do not have any Lambda functions
created. If you have created functions already, you will see the Lambda >
Functions page. On the list page, choose Create a function to go to the Create
function page.
a. You will now enter Basic information about your Lambda function.
Basic information:
Name: You can name your Lambda function here. For this tutorial,
enter hello-world-python.
Role: You will create an IAM role (referred to as the execution role) with the
necessary permissions that AWS Lambda can assume to invoke your
Lambda function on your behalf. Select Create a new role from AWS policy
templates.
Role name: type lambda_basic_execution.
In this section, you can review the example code authored in Python.
a. Select Configure Test Event from the drop-down menu called Test.
b. The editor pops up so you can enter an event to test your function.
Select Create.
Objective
Outcome
Building a “Hello world” app for the cloud by using AWS Lambda.
Objective
Outcome
Student will able to learn about Installing and configuring python/java/PHP platform by using
Google App Engine
Outcome
Student gains the ability to install and configuring python/java/PHP platform by using Google
App Engine.
The App Engine standard environment is based on container instances running on Google's
infrastructure. Containers are preconfigured with one of several available runtimes.
The standard environment makes it easy to build and deploy an application that runs reliably
even under heavy load and with large amounts of data.
Go
Java
Node.js
PHP
Python
Ruby
Instance classes
The instance class determines the amount of memory and CPU available to each instance, the
amount of free quota, and the cost per hour after your app exceeds the free quota.
To override the default instance class, use the instance_class setting in your app's app.yaml file.
The second generation runtimes that use this specification are: Python 3, Java 11, Node.js, PHP
7, Ruby, and Go 1.12+.
Note: The Go 1.11 runtime has the same instance class specifications as the second generation runtimes.
The Python 3 runtime is the software stack responsible for installing your web service's code and
its dependencies and running your App Engine service.
The Python 3 runtime for App Engine in the standard environment is declared in
the app.yaml file:
Python 3 versions
The Python 3 runtime supports Python 2.7, Python 3.7, Python 3.8, Python 3.9, Python 3.10, and
Python 3.11 and uses the latest stable release of the version that is specified in your app.yaml file.
App Engine automatically updates to new patch release versions, but it will not automatically
update the minor version.
For example, your application might be deployed at Python 3.7.0 and later automatically updated
to Python 3.7.1, but it will not be automatically updated to the next minor version Python 3.8.0.
If you're new to Google Cloud, create an account to evaluate how App Engine performs in real-
world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
App Engine runs Python 3 apps in a container secured by gVisor on an up-to-date Ubuntu Linux
distribution.
Dependencies
During deployment, App Engine uses the Python package manager pip to install dependencies
defined in the requirements.txt metadata file located in your project's root directory. You do not
need to upload dependencies as App Engine performs a fresh install.
Dependency specification using the Pipfile/Pipfile.lock standard is currently not supported and
your project must not have these files present.
Application startup
The runtime starts your app by running the command you specify in the entrypoint field in
your app.yaml file. The entrypoint should start a web server that listens on the port specified by
the PORT environment variable. For example:
The web framework that your app uses is responsible for routing requests to the appropriate
handlers in your app.
If your app meets the following requirements, App Engine will start your app with
the gunicorn web server if you don't specify the entrypoint field:
The root of your app directory contains a main.py file with a WSGI-compatible object called app.
Your app does not contain Pipfile or Pipfile.lock files.
App Engine will also automatically add the gunicorn to your requirements.txt file if you don't
specify the entrypoint field.
Note: The default timeout of gunicorn is 30 seconds when the entrypoint field is specified. Workers silent
for more than this many seconds are killed and restarted. If your handler takes more than 30 seconds, you
may face [CRITICAL] WORKER TIMEOUT error. To ensure that the request successfully completes,
based on your use-case, you can use the -- timeout flag in the entrypoint field to increase the timeout.
F1 2
F2 4
F4 8
F4_1G 8
B1 2
B2 4
B4 8
B4_1G 8
B8 8
This guidance serves as a starting point for selecting the number of workers. You may need to
use a different number of workers depending on your app's performance characteristics. The
example below shows an App Engine deployment that uses two gunicorn workers for serving
apps:
We recommend that you configure your web server to listen and respond to HTTP requests on
the port specified by your $PORT environment variable. Using the default port 8080 prevents
App Engine from using its NGINX layer to compress HTTP responses. Note that if you use
port 8080, warnings about port 8080 and NGINX will show in your app's log files.
In addition to Django and Flask, you can use other web frameworks with App Engine, such
as uwsgi and Tornado. The following example shows how to use uwsgi with App Engine:
appengine/standard_python3/custom-server/app.yaml
View on GitHub
runtime: python39
entrypoint: uwsgi--http-socket :$PORT --wsgi-file main.py --callable app --master --processes 1 --threads 2
appengine/standard_python3/custom-server/requirements.txt
View on GitHub
uwsgi==2.0.21
flask==2.1.0
Environment variables
GAE_APPLICATION The ID of your App Engine application. This ID is prefixed with 'region
code~' such as 'e~' for applications deployed in Europe.
GAE_SERVICE The service name specified in your app.yaml file. If no service name is
specified, it is set to default.
NODE_ENV (Only available in the Set to production when your service is deployed.
Node.js runtime)
You can define additional environment variables in your app.yaml file, but the above values
cannot be overridden, except for NODE_ENV.
App Engine terminates HTTPS connections at the load balancer and forwards requests to your
application. Some applications need to determine the original request IP and protocol. The user's
IP address is available in the standard X-Forwarded-For header. Applications that require this
information should configure their web framework to trust the proxy.
Filesystem
The runtime includes a full filesystem. The filesystem is read-only except for the location /tmp,
which is a virtual disk storing data in your App Engine instance's RAM.
Each instance of your application can use the App Engine metadata server to query information
about the instance and your project.
You can access the metadata server through the following endpoints:
http://metadata
http://metadata.google.internal
Requests sent to the metadata server must include the request header Metadata-Flavor: Google.
This header indicates that the request was sent with the intention of retrieving metadata values.
The following table lists the endpoints where you can make HTTP requests for specific
metadata:
/computeMetadata/v1/instance/service-
accounts/default/aliases
/computeMetadata/v1/instance/service- Lists all the default service accounts for your project.
accounts/default/
/computeMetadata/v1/instance/service- Lists all the supported scopes for the default service
accounts/default/scopes accounts.
The Project name is the display name for this project's participants. It is a character string not used by Google
APIs. You can update it at any time.
The Project ID is unique across all Google Cloud projects and is immutable (cannot be changed after it has
been set). The Cloud Console auto-generates a unique string; usually you don't care what it is. In most
codelabs, you'll need to reference the Project ID (it is typically identified as PROJECT_ID). If you don't like the
generated ID, you may generate another random one. Alternatively, you can try your own and see if it's
available. It cannot be changed after this step and will remain for the duration of the project.
For your information, there is a third value, a Project Number which some APIs use. Learn more about all
three of these values in the documentation.
If you've never started Cloud Shell before, you're presented with an intermediate screen (below the fold)
describing what it is. If that's the case, click Continue (and you won't ever see it again). Here's what that one-
time screen looks like:
This virtual machine is loaded with all the development tools you need. It offers a persistent 5GB home
directory and runs in Google Cloud, greatly enhancing network performance and authentication. Much, if not
all, of your work in this codelab can be done with simply a browser or your Chromebook.
Once connected to Cloud Shell, you should see that you are already authenticated and that the project is
already set to your project ID.
2. Run the following command in Cloud Shell to confirm that you are authenticated:
gcloudauth list
Command output
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
Command output
[core]
project = <PROJECT_ID>
Command output
Let's get started by creating a new folder in your $HOME directory for the application:
mkdir ~/helloworld
cd ~/helloworld
touch main.py
Edit the file with your preferred command line editor (nano, vim, or emacs) or by clicking the Cloud Shell
Editor button:
To directly edit the file with Cloud Shell Editor, use this command:
main.py
import flask
# If `entrypoint` is not defined in app.yaml, App Engine will look for an app
# called `app` in `main.py`.
app=flask.Flask(__name__)
@app.get("/")
def hello():
"""Return a friendly HTTP greeting."""
Note: This web app is a simple web service responding to HTTP GET requests with the
message Hello World!.
touch requirements.txt
To edit the file with Cloud Shell Editor, use this command:
requirements.txt
# https://pypi.org/project/Flask
Flask==2.2.3
From the terminal, create and edit the app.yaml file in the root directory of your project:
touchapp.yaml
To edit the file with Cloud Shell Editor, use this command:
app.yaml
runtime: python311
ls
Please choose the region where you want your App Engine application
located:
[1] asia-east2
...
[7] australia-southeast1
[8] europe-west
[9] europe-west2
...
[12] northamerica-northeast1
[13] southamerica-east1
...
[19] us-west4
...
Please enter your numeric choice:
descriptor: [~/helloworld/app.yaml]
source: [~/helloworld]
target project: [PROJECT_ID]
target service: [default]
First, retrieve your web app hostname with the gcloud app describe command:
Test your web app with this simple HTTP GET request:
curl https://$APPENGINE_HOSTNAME
Hello World!
Note: Your web app can be served via a custom domain, such as example.com, instead of the
default appspot.com address. See Mapping Custom Domains.
To edit the file with Cloud Shell Editor, use this command:
Note: Flask's request context object is used here to handle an optional parameter in the HTTP
GET request.
Note: The --quiet flag disables the interactive prompt, which directly launches the deployment.
Test the new version of your web app, exactly as you did previously:
curl https://$APPENGINE_HOSTNAME
Hello World!
Objective
Student will able to learn the importance of cloud security management from application point of
view.
Outcome
Student gains the ability to know importance of cloud security management for different
applications.
Theory:
Cloud computing security is the set of control-based technologies and policies designed to
adhere to regulatory compliance rules and protect information, data applications and
infrastructure associated with cloud computing use. Because of the cloud's very nature as a
shared resource, identity management, privacy andaccess control are of particular concern. With
more organizations using cloud computing and associated cloud providers for data operations,
proper security in these and other potentially vulnerable areas have become a priority for
organizations contracting with a cloud computing provider.
Cloud computing security processes should address the security controls the cloud provider will
incorporate to maintain the customer's data security, privacy and compliance with necessary
regulations. The processes will also likely include a business continuity and databackup plan in
the case of a cloud security breach.
Physical security
Cloud service providers physically secure the IT hardware (servers, routers, cables etc.) against
unauthorized access, interference, theft, fires, floods etc. and ensure that essential supplies (such
as electricity) are sufficiently robust to minimize the possibility of disruption. This is normally
achieved by serving cloud applications from 'world-class' (i.e. professionally specified, designed,
constructed, managed, monitored and maintained) data centers.
Personnel security
Various information security concerns relating to the IT and other professionals associated with
cloud services are typically handled through pre-, para- and post-employment activities such as
security screening potential recruits, security awareness and training programs, proactive security
monitoring and supervision, disciplinary procedures and contractual obligations embedded in
employment contracts, service level agreements, codes of conduct, policies etc.
Cloud Computing Lab Page 78
Application security
Cloud providers ensure that applications available as a service via the cloud (SaaS) are secure by
specifying, designing, implementing, testing and maintaining appropriate application security
measures in the production environment. Note that - as with any commercial software - the
controls they implement may not necessarily fully mitigate all the risks they have identified, and
that they may not necessarily have identified all the risks that are of concern to customers.
Consequently, customers may also need to assure themselves that cloud applications are
adequately secured for their specific purposes, including their compliance obligations.
Procedure:
Security using MFA(Multi Factor Authentication) device code:
1) Goto aws.amazon.com
2) Click on "My Account"
3) Select "AWS management console" and click on it
4) Give Email id in the required field if you are registering first time then select "I am a new
user" radio button.
5) Click on "sign in using our secure server" button
6) Follow the instruction and complete the formalities
(Note: do not provide any credit card details or bank details) sign out from
7) Again goto "My Account" select "AWS management console" and click on it Sign in again
by entering the user name and valid password ( Check "I am returning user and my password is"
radio button)
Now you are logged in as a Root User
All AWS project can be viewed by you, but you can’t make any changes in it or you can’t create
new thing as you are not paying any charges to Amazon (for reason refer step:6)
To create the user in a root user follow the steps mentioned below:
1) Click on "Identity and Access Management" in security and identity project
2) Click in "Users" from dashboard
It will take you to "Create New Users"
Result:
Step 2 : Click on "My Account". Select "AWS management console" and click on it. Give Email
id in the required field
Description
Getting Started Using Elastic Beanstalk
The following tasks help you get started with AWS Elastic Beanstalk to create, view, deploy, and
update your application, and edit and terminate your environment. You use the AWS
Management Console, a point-and-click web-based interface, to complete these tasks.
Sections
If you're not already an AWS customer, you need to sign up. Signing up enables you to
access Elastic Beanstalk and other AWS services that you need, such as Amazon Elastic
Compute Cloud (Amazon EC2), Amazon Simple Storage Service (Amazon S3), and Amazon
Simple Notification Service (Amazon SNS).
Next, you create and deploy a sample application. For this step, you use a sample application that
is already prepared.
Elastic Beanstalk is free to use, but the AWS resources that it provides are live (and not running
in a sandbox). You incur the standard usage fees for these resources until you terminate them in
the last task in this tutorial. The total charges are minimal (typically less than a dollar). For
information about how you might minimize any charges, see AWS Free Tier.
To run a sample application on AWS resources, Elastic Beanstalk takes the following actions.
These take about five minutes to complete:
After you create the Elastic Beanstalk application, you can view information about the
application you deployed and its provisioned resources by going to the environment dashboard in
the AWS Management Console. The dashboard shows the health of your application's
environment, the running version, and the environment's platform version (configuration).
While Elastic Beanstalk creates your AWS resources and launches your application, the
environment is in a Pending state. Status messages about launch events are displayed in the
environment's dashboard.
At the top right corner of the dashboard, next to the Actions menu, you can find the
environment's URL. This is the URL of the web application that the environment runs. Choose
this URL to get to the application's Congratulations page.
On the left side of the console is a navigation pane that links to other pages, which contain more
detailed information about your environment and provide access to additional features. Explore
the following pages to see the current state of your environment:
You can deploy a new version of your application at any time, as long as no other update
operations are currently in progress on your environment.
The application version you are running now is labeled Sample Application.
1. Download one of the following sample applications that match the configuration for your
environment:
Single Container Docker – docker-singlecontainer-v1.zip
Multicontainer Docker – docker-multicontainer-v2.zip
Preconfigured Docker (Glassfish) – docker-glassfish-v1.zip
Preconfigured Docker (Python 3) – docker-python-v1.zip
Preconfigured Docker (Go) – docker-golang-v1.zip
Go – go-v1.zip
Java SE – java-se-jetty-gradle-v3.zip
Tomcat (default) – java-tomcat-v3.zip
Tomcat 7 – java7-tomcat7.zip
.NET – dotnet-asp-v1.zip
Node.js – nodejs-v1.zip
PHP – php-v1.zip
Python – python-v1.zip
6. The console automatically fills in the Version label based on the name of the archive that
you uploaded. For future deployments, you must type a unique version label if you use a
source bundle with the same name.
7. Choose Deploy.
Elastic Beanstalk now deploys your file to your Amazon EC2 instances. You can view the status
of your deployment on the environment's dashboard. The Environment Health status turns gray
while the application version is updated. When the deployment is complete, Elastic Beanstalk
performs an application health check. The status returns to green when the application responds
to the health check. The environment dashboard will show the new Running Version as Sample
Application Second Version (or whatever you provided as the Version label).
You can customize your environment to better suit your application. For example, if you have a
compute-intensive application, you can change the type of Amazon EC2 instance that is running
your application.
Some configuration changes are simple and happen quickly. Some changes require Elastic
Beanstalk to delete and recreate AWS resources, which can take several minutes. Elastic
Beanstalk will warn you about possible application downtime when changing configuration
settings.
In this task, you edit your environment's capacity settings. You configure a load-balanced,
automatically scaling environment that has between two and four instances in its Auto Scaling
group, and then verify that the change occurred. Two Amazon EC2 instances get created and are
associated with the environment's load balancer. These instances replace the single instance that
Elastic Beanstalk created initially.
5. In the Auto Scaling Group section, change Environment type to Load balanced.
The environment update might take a few minutes. When the environment is ready, you can go
to the next task to verify your changes.
You will see the event successfully deployed new configuration to environment in the
events list. This confirms that the Auto Scaling minimum instance count has been set to
2. A second instance is launched automatically.
The information shows that two instances are associated with this load balancer,
corresponding to the increase in EC2 instances.
Congratulations! You have successfully deployed a sample application to the cloud, uploaded a
new version, and modified its configuration to add a second Auto Scaling instance. To ensure
that you're not charged for any services you don't need, delete any unwanted applications and
environments from Elastic Beanstalk and AWS services.