0% found this document useful (0 votes)
10 views22 pages

AWS Storage Services Overview

The document provides detailed notes on AWS storage services, including Amazon S3, Elastic Block Store, ElastiCache, and structured storage solutions like RDS and SimpleDB. It covers key concepts, resource naming, access control, and advanced features of these services, emphasizing their functionalities and use cases. Additionally, it discusses AWS communication services, including Virtual Private Cloud (VPC), Direct Connect, Route 53, and messaging services like SQS, SNS, and SES.

Uploaded by

Adithi M D
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views22 pages

AWS Storage Services Overview

The document provides detailed notes on AWS storage services, including Amazon S3, Elastic Block Store, ElastiCache, and structured storage solutions like RDS and SimpleDB. It covers key concepts, resource naming, access control, and advanced features of these services, emphasizing their functionalities and use cases. Additionally, it discusses AWS communication services, including Virtual Private Cloud (VPC), Direct Connect, Route 53, and messaging services like SQS, SNS, and SES.

Uploaded by

Adithi M D
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Cloud Computing Notes By Prof. Usha, Dept.

Of CSE-AI&ML, MITM Subject Code: M23BCS505B

AWS Storage Services (Unit 4 continued)

9.1.2 Storage Services (S3, Elastic Block Store, Elasticache, Structured


Storage Solutions)
AWS offers a wide range of storage services designed for different types of data,
performance needs, and access patterns.

[Link] Amazon S3 (Simple Storage Service)

Amazon S3 (Simple Storage Service) is one of AWS’s most popular and foundational
services. Amazon S3 is a highly scalable, secure, and durable object storage service used to
store and retrieve any amount of data at any time.

Key Concepts (5)

 The storage is organized in a two-level hierarchy :


 Buckets (containers for data)
 Objects (actual data stored, optional metadata)

Buckets represent virtual containers in which to store objects. Objects represent the
content that is actually stored. Objects can also be enriched with metadata that can be
used to tag the stored content with additional information.

Buckets are flat i.e. they don’t contain real folders or subdirectories the way a file
system does. This means that it is not possible to create directories or other kinds of
physical groupings for objects stored in a bucket and all objects exist at the same level
inside the bucket.

 Stored objects cannot be manipulated like standard files :

Amazon S3 is designed to store objects that remain unchanged over time. As a


result, S3 does not support renaming, modifying, or relocating an existing object in
place. To update or move an object, you must create a new object (with the updated
content or key) and then delete the original one.

 Content is not immediately available to users: S3 does not update changes


everywhere immediately. This is called eventual consistency. S3 makes copies of
your data in many places to keep it safe and fast to access. Because of these copies,
there can be a delay before new or changed data is visible everywhere. This delay is
usually small, but it can be noticeable with large files or when accessing data from
different parts of the world.

 Requests will occasionally fail: S3 stores data across many servers, so changes may
take time to appear everywhere, and large files can experience delays. Occasionally,
requests can fail or return an error, but these small failures are normal and not
permanent.

[Type text]Page 1
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

 S3 is accessed through RESTful web services using HTTP requests like GET, PUT,
POST, DELETE, and HEAD. PUT and POST add data, GET and HEAD retrieve it,
and DELETE removes it.

Resource Naming

 Amazon S3 organizes data into buckets and objects, which are accessed through URIs
under the [Link] domain.
 Each bucket must have a unique name across all users, and objects are always
referenced within a specific bucket.
 Buckets can be addressed in three ways: if a bucket name is ‘myphotos’
o Canonical form ([Link]
o Subdomain form ([Link]
o Virtual hosting form ([Link]
 Objects inherit the addressing flexibility of their bucket, and their names follow the
bucket in the URI.

 Bucket Naming Rules: Length: Must be between 3 and 63 characters.

o Allowed characters: Only letters (a–z), numbers (0–9), periods (.), and dashes (-).
o Start and end: Must start with a letter or number.
o Letter requirement: Must contain at least one letter.
o Period/dash restrictions:
o No empty labels between periods (e.g., my..bucket is invalid).
o No label starting or ending with a dash (e.g., [Link] or my.-bucket is
invalid).
o Uniqueness: Must be globally unique across all S3 users.

Buckets

An Amazon S3 bucket is a flat storage container for objects that cannot be nested and is tied
to a specific geographic region. Users can create buckets with a PUT request, list their
contents with a GET request, and delete them with a DELETE request, but a bucket must be
empty before deletion. Buckets cannot be renamed or moved; to change these, they must be
deleted and recreated in the desired location.

Objects and Metadata

Objects in Amazon S3 are the content stored within buckets and are uniquely identified by a
name up to 1,024 bytes in UTF-8, allowing almost any character, including path separators to
emulate directories. Users create objects with a PUT request that specifies the bucket, object
name, content, and optional metadata, with a maximum size of 5 GB. Once created, objects
cannot be modified, renamed, or moved to another bucket, but they can be retrieved using
GET requests and deleted using DELETE requests. Objects can also have system- and user-
defined metadata, which can be accessed via GET or HEAD requests, with user metadata
stored as key-value pairs up to 2 KB per property.

[Type text]Page 2
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

Access Control and Security

Amazon S3 uses Access Control Policies (ACPs) to manage permissions for buckets and
objects, with each ACP expressed as an XML file containing up to 100 access rules.
Permissions include

o READ
o WRITE
o READ_ACP
o WRITE_ACP
o FULL_CONTROL

By default, a newly created resource grants full control only to its owner, but ACPs can be
modified using GET or PUT requests.

Advanced Features

o ?logging – Keeping Track of Who’s Looking

It keeps a record of who accessed your files, when, and what they did. By default, it is off,
you have to switch it ON by telling S3 where to store the “footage” (log files) and what to
name them. Later, you can check these logs to see all the activity in your bucket, which is
great for audits or figuring out what went wrong if something goes missing.

o ?torrent – Sharing Big Files the Easy Way

The ?torrent feature is like turning your S3 file into a BitTorrent file so lots of people can
download it efficiently at the same time. It’s perfect for really large files because instead of
everyone downloading directly from your bucket, they share pieces with each other. Just
make sure the file is publicly readable, and then anyone can grab it using a BitTorrent client.

[Link] Amazon Elastic Block Store

Amazon Elastic Block Store (EBS) is a service that gives EC2 virtual machines reliable,
long-term storage in the form of volumes that act like hard drives. These volumes can be up
to 1 TB, can be formatted however the user wants, and they keep their data even after the
EC2 instance is shut down because the contents are saved in Amazon S3. Users can clone
volumes, take snapshots, resize them, and attach multiple volumes to a single instance. For
best performance, EBS volumes usually stay in the same availability zone as the instance
using them, and data is loaded in the background as the operating system requests it, which
helps reduce unnecessary network traffic. Although a single volume can’t be shared by
multiple instances at the same time, copies can be made and used separately. Amazon charges
for the amount of storage allocated ($0.10 per GB per month) and for I/O requests ($0.10 per
million requests).

[Link] Amazon ElastiCache

Amazon ElastiCache is a managed, in-memory caching service built on clusters of EC2


instances that lets applications access data very quickly using a Memcached-compatible

[Type text]Page 3
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

protocol, so existing systems can migrate to it without needing changes. AWS handles much
of the operational work—including patching, failure detection, and recovering unhealthy
nodes—so users only need to scale their cache clusters up or down as demand changes.
Pricing is similar to standard EC2 instances, with a small extra cost for the caching software,
and various instance types are available. The pricing examples referenced in the text come
from AWS offerings in 2011–2012, with memory amounts reflecting usable memory after
system overhead.

[Link] Structured Storage Solutions (EC2 AMI, RDS, SimpleDB)

Enterprise applications usually need a reliable place to store and organize their data, run
searches, and perform analytics, and while traditional relational databases have filled this role
for many years, newer and more scalable options are now available. To meet these different
needs, Amazon offers three main types of structured storage: preconfigured EC2 AMIs that
let you run your own database, Amazon RDS for a fully managed relational database
experience, and Amazon SimpleDB for a lightweight, non-relational way to store structured
data.

Preconfigured EC2 AMI

Preconfigured EC2 AMIs are essentially ready-to-use templates that come with a specific
database system already installed, and you can attach an EBS volume to the instance to make
sure your data is stored safely and persistently. AWS offers a wide selection of these AMIs
including IBM DB2, Microsoft SQL Server, MySQL, Oracle, PostgreSQL, Sybase, and
Vertica and you pay for them using the standard hourly EC2 pricing.

Amazon RDS

Amazon RDS (Relational Database Service) is a managed database solution built on EC2 that
takes care of much of the heavy lifting for developers. With RDS, you don’t have to worry
about setting up storage for high availability, planning failover strategies, or keeping servers
patched and up-to-date. The service automatically handles backups, snapshots, point-in-time
recovery, and replication, all manageable through the AWS console or web services. It
supports MySQL and Oracle databases and offers advanced features like multi-AZ
deployments, which maintain synchronized standby copies for automatic failover, and read
replicas, which improve performance for applications that rely heavily on database reads.
Unlike EC2 AMIs, AWS manages all maintenance, scaling, and software updates, making
RDS a reliable, scalable, and low-maintenance choice for applications that need a robust
relational database.

Amazon SimpleDB

Amazon SimpleDB is a simple, flexible database service designed for applications that don’t
need the structure and complexity of a full relational database. Instead of strict tables and
fixed columns, SimpleDB stores data in “domains” which work like containers. Inside each
domain, you have items made up of key–value attributes, and every item can have a different
set of attributes. This makes it easy to store semi-structured data and quickly query large
amounts of information without worrying about managing servers, configurations, or high-
availability setups AWS handles all of that for you.

[Type text]Page 4
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

SimpleDB also supports powerful query options and conditional updates, which prevent
conflicts in multi-user environments. However, it is best suited for small, flexible data items
rather than large file storage services like Amazon S3 are cheaper and better for storing big
objects.

[Link] Amazon CloudFront

CloudFront is Amazon’s global content delivery network that speeds up the delivery of
websites, videos, and other online content. It works by storing copies of your content on
“edge servers” located in many parts of the world, so users receive data from a server nearest
to them. To use CloudFront, you simply create a distribution that points to your original
content source such as an S3 bucket, an EC2 instance, or even an external server. CloudFront
then automatically routes user requests to the nearest available edge location, reducing delays
and improving overall performance.

CloudFront supports both static content (like images and webpages) and streaming media.
You can control who accesses your content, decide which protocols to allow, and even
invalidate outdated files when needed. Its pricing is generally cheaper than Amazon S3
because CloudFront is optimized for distributing highly popular content to users around the
world.

9.1.3 Communication services (VPC, Messaging)

Amazon offers tools that help different applications and services within AWS communicate
smoothly. These tools fall into two main groups:

 Virtual Networking
 Messaging

Together, they make it easier to connect, manage, and exchange information between cloud-
based systems.

[Link] Virtual Networking (VPC, Direct Connect, Route53)

Virtual networking comprises a collection of services that allow AWS users to control the
connectivity to and between compute and storage services. They are,

i. Amazon Virtual Private Cloud (VPC): logically isolated virtual network.


ii. Amazon Direct Connect: provide connectivity solutions in terms of infrastructure.
iii. Route 53: facilitates connectivity in terms of naming.

(i)Amazon Virtual Private Cloud (VPC)

VPC is a logically isolated virtual network created inside AWS. Think of AWS VPC Pas
your own private neighbourhood inside the AWS cloud. It allows you to control networking
like IP addresses, subnets, routing, and security.

[Type text]Page 5
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

Key Components of VPC

1. Subnets: A subnet can be created by choosing your own IP address range that lets
you launch resources like EC2 instances. Each subnet must reside entirely within one
Availability Zone. Subnets are defined using CIDR notation (e.g., [Link]/24 for
IPv4). There are 2 types.
 Public Subnet: Has internet access.
 Private Subnet: No direct internet access.

2. Internet Gateway (IGW): Enables communication between VPC resources and the
internet.

3. NAT Gateway: Allows instances in private subnets to access the internet securely.

4. Route Table: Contains rules that decide how traffic moves within the VPC.

5. Security Group: It is a virtual firewall for EC2 instances which controls inbound and
outbound traffic. It acts as a firewall at instance level.

6. Load Balancers: distributes incoming traffic across multiple servers to ensure high
availability, reliability, and smooth performance i.e. shares incoming traffic across
many servers so no single server gets overloaded.

7. Network ACL (NACL): It acts as a firewall at the subnet level which controls traffic
going in and out of subnets.

8. VPC Peering: Connects two VPCs for private communication.

[Type text]Page 6
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

Overall, AWS VPC gives you a secure, isolated, and fully customizable environment where
you can run your cloud applications with full control over networking and traffic flow.

(ii)Amazon Direct Connect

Amazon Direct Connect lets users create a dedicated, private network connection between
their own office or datacenter and an Amazon Direct Connect location. This dedicated line
can be divided into smaller virtual connections and can access AWS services like EC2, S3,
and VPC. The main benefit of Direct Connect is that it provides more consistent and reliable
performance compared to normal internet-based connections, especially when large amounts
of data are transferred.

(ii)Amazon Route 53

1. Amazon Route 53 is a service that lets users reach AWS resources using their own
domain names instead of [Link].
2. It uses Amazon’s globally distributed DNS servers, allowing EC2 instances or S3
buckets to be accessed through user-owned domains.
3. Route 53 can dynamically update domain names to match EC2 instances or S3
buckets as they are created or terminated.
4. Users can manage up to 100 hosted zones, with costs including $1 per zone per month
and charges based on the number of DNS queries resolved.

[Link] Messaging (SQS, SNS, SES)

AWS offers messaging services to help applications communicate with each other efficiently.
The three main services are

i. Amazon SQS (Simple Queue Service)


ii. Amazon SNS (Simple Notification Service)
iii. Amazon SES (Simple Email Service)

(i)Amazon SQS (Simple Queue Service): SQS allows applications to communicate by


sending messages to queues, which are stored securely and redundantly for a limited time.
Users can control who can access the queues, and messages are temporarily locked while
being read to prevent duplicate processing. Applications can create unlimited queues and
process messages independently, making it suitable for distributed systems.

Eg: An e-commerce website can use SQS to send order details from the web server to a
payment system, ensuring each order is processed only once.

(ii)Amazon SNS (Simple Notification Service): SNS allows applications to publish messages
to a topic, and multiple subscribers receive these messages automatically. Subscribers are
notified instantly when new content is published, without the need to constantly check for
updates. SNS supports notifications via HTTP/HTTPS, email, or SQS queues.

Eg: A news website can use SNS to instantly notify subscribers about breaking news via
email, SMS, or connected applications.

[Type text]Page 7
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

(iii)Amazon SES (Simple Email Service): Amazon SES allows users to send emails using
AWS infrastructure, supporting both SMTP-compliant and raw emails with custom headers
and MIME types. Users must verify their email address to activate SES, start in a sandbox
environment for testing, and can request production access to send emails at scale. SES
queues emails for delivery, notifies users of failures, provides statistics to improve
campaigns, and charges based on usage with no minimum commitment.

Example: An online store can use SES to send order confirmations and promotional emails
to customers, track delivery success, and analyse open rates to improve communication.

9.1.4 Additional Services (CloudWatch, FPS)

Besides compute, storage, and communication services, AWS provides a collection of


services that allow users to utilize services in aggregation. They are,

i. Amazon CloudWatch
ii. Amazon Flexible Payment Service (FPS)

(i) Amazon CloudWatch: it is a service that helps developers monitor and understand how
their applications run on AWS. It collects data from services like EC2, S3, SimpleDB, and
CloudFront, giving detailed information about usage and performance. This helps developers
optimize their applications and save costs. CloudWatch used to require a subscription, but
now it is free for all AWS users.

(ii) Amazon Flexible Payment Service (FPS): it is a service that allows AWS users and
developers to sell products or services to other AWS customers using Amazon’s billing
system. This means developers don’t have to create their own payment processing system.
FPS supports different types of payments, such as one-time payments, recurring payments for
subscriptions, or usage-based charges. It can also handle multiple payments together, making
it easier to manage complex transactions.

9.2 Google AppEngine


Google App Engine (GAE) is a fully managed Platform as a Service (PaaS) offering from
Google Cloud Platform (GCP) that lets developers build and run web applications on
Google’s powerful cloud infrastructure without worrying about managing servers. It
automatically handles things like scaling, load balancing, and maintenance so developers can
focus on writing code. In simple terms, you just upload your code and Google takes care of
running it, scaling it, and keeping it online. You can build apps in Java, Python, or Go,
and Google takes care of running them efficiently and securely.

This platform is especially useful for applications that may grow or experience sudden traffic
spikes. Google’s systems automatically allocate more servers when needed and reduce them
when traffic decreases.

9.2.1 Architecture and core concepts

AppEngine is a platform for developing scalable applications accessible through the Web.

[Type text]Page 8
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

As shown in the above diagram, the platform is logically divided into four major
components:

 Infrastructure.
 Runtime environment.
 Storage.
 Scalable application services.

[Link] Infrastructure

The infrastructure is the backbone that runs your applications in Google’s datacenters.
When a user sends a request (like opening your website), the infrastructure decides:

 Which server should handle the request,


 Whether to allocate new servers if traffic increases, and
 How to balance the load among all servers.

A key idea behind this is that App Engine applications are stateless. This means each
request is handled independently, without assuming that data is stored from one request to the
next. Because of this design, Google can easily move requests between servers or spin up
new ones as needed. The infrastructure also monitors app performance and usage this data is
used for both optimization and billing.

[Link] Runtime environment

The runtime environment is where your application code actually runs. Each app runs
inside a sandbox, a controlled and isolated environment that:

 Keeps the app safe from other applications,


 Prevents the app from damaging the system, and
 Restricts so
 me potentially dangerous operations.

[Type text]Page 9
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

Sandboxing rules:

Apps cannot:

 Write to the server’s file system,


 Open arbitrary network connections (only through allowed services like Mail,
UrlFetch, or XMPP),
 Execute code outside of a request or scheduled job,
 Run for more than 30 seconds per request.

This design ensures security and scalability, even when thousands of apps are hosted on the
same infrastructure.

Supported Runtimes:

 Java Runtime: Supports Java 5/6, Java Servlets, and JSP. Developers can use
standard Java tools and libraries (with some sandbox restrictions).
 Python Runtime: Uses an optimized Python interpreter (2.5). Some modules that
allow unsafe operations are disabled. Developers can use frameworks like webapp or
Django.
 Go Runtime: Supports Google’s Go language (r58.1). Allows pure Go libraries and
integrates with App Engine services.

[Link] Storage

App Engine provides several ways to store data.

a. Static File Servers: Used to host files that don’t change often —like images, CSS,
JavaScript, and HTML files. These are served quickly because they’re optimized for static
content delivery.

b. DataStore: This is a non-relational (NoSQL) database built on top of Google Bigtable.


It’s designed for speed and scalability.

 Data is stored as entities (like records) that contain properties (like fields).
 Each entity has a key that uniquely identifies it.
 Entities of the same “kind” (similar to a table) don’t have to share the same properties.
 Queries can be made using filters and sort orders.
 Indexes are used to make queries faster. Developers define these indexes during
development.

DataStore also supports transactions (atomic operations) but with limits — only entities
within the same entity group can be updated together.

[Link] Application services (UrlFetch, MemCache, Mail and Insatant Messaging,


Account Management, Image Manipulation)

App Engine provides a number of built-in services to make web development easier. These
services simplify most of the common operations that are performed in Web applications:

[Type text]Page 10
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

access to data, account management, integration of external resources, messaging and


communication, image manipulation, and asynchronous computation.

a. UrlFetch: It is a service that allows web applications to fetch or retrieve resources from
remote servers using HTTP or HTTPS. In modern Web 2.0 applications, different parts of a
webpage often come from different servers, so UrlFetch helps collect these external pieces
even when they are outside the application’s domain. Since the sandbox environment does
not allow direct socket connections, UrlFetch provides a safe way for applications to make
synchronous or asynchronous web requests. Developers can also set deadlines for these
requests so they finish within a specific time or get cancelled if they take too long. This
feature is useful for loading external data in the background and for using remote web
services in service-oriented applications.

b. MemCache: AppEngine uses DataStore to give developers a reliable and long-term


storage system where data is saved safely and redundantly so it remains available even if
failures occur. Because it is designed for durability and scalability, DataStore may not always
be the fastest option for data that is accessed very frequently. To solve this, AppEngine
provides MemCache, a fast, in-memory caching service that temporarily stores frequently
used data. MemCache keeps quick-to-access copies of popular objects and automatically
removes items that are not used often. Developers can design their apps to check MemCache
first for data, and if it is not found, they can retrieve it from DataStore and then store it in
MemCache for faster access in the future.

c. Mail and instant messaging: Communication is important for Web applications, and
AppEngine supports it in two simple ways: Mail and XMPP. The Mail service lets the app
send emails to users, including attachments and multiple recipients, and it also alerts the
sender if the email fails. XMPP allows the app to send and receive chat messages through
chat services like Google Talk. Although chat is usually for people, XMPP can help the app
interact with chatbots or provide simple admin features.

d. Account management: Web applications need to store user details to give a personalized
experience. AppEngine makes this easy by using Google Accounts for login. Developers do
not need to create their own account or password system, users simply sign in with their
Google account. The app can then store and retrieve user settings linked to that account. The
only condition is that users must have a Google account. This is very useful in companies
using Google Apps, because everything works smoothly together.

e. Image manipulation: Web applications often need to display images and perform simple
edits, such as adding watermarks or applying basic filters. AppEngine supports this through
its Image Manipulation service, which allows fast and lightweight operations like resizing,
rotating, flipping, and enhancing images. This service is built for quick processing and is also
used in other Google products.

[Link] Compute services

Web applications usually respond to users immediately as they click and navigate pages.
However, some tasks take too long or need to run at a specific time, so they can't be
completed during a normal web request. To handle such cases, AppEngine provides Task
Queues and Cron Jobs, which help run work in the background.

[Type text]Page 11
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

Task Queues: let developers schedule long or heavy tasks to run later. Each task is treated
like a web request and processed by a handler. If a task fails, the queue tries again
automatically. This is useful for work that cannot finish within the normal request time.

Cron Jobs: are used when tasks must run at a specific time—for example, every night or
every hour. Unlike task queues, cron jobs do not retry tasks if they fail. They are commonly
used for maintenance work or sending regular notifications.

9.2.2 Application life cycle

AppEngine supports almost every stage in an application's life cycle, including development,
testing, deployment, and monitoring. Google provides SDKs that help developers with these
tasks. Currently, two SDKs are available for building applications: the Java SDK and the
Python SDK.

[Link] Application development and testing

Developers can use a local development server to build and test their web applications before
uploading them to Google App Engine. This server acts like a small version of the real App
Engine and provides tools to check how the app uses services like Datastore and Memcache.
It also watches all the queries the app makes so App Engine can create the right indexes later,
helping the app run faster when it is deployed.

Google App Engine provides two software kits, Java SDK and Python SDK that help
developers build and test their applications before deploying them to the cloud.

Java SDK

 The Java SDK allows developers to write AppEngine applications using the Java
programming language.

 It includes a local development server where you can run your Java app on your own
computer.

 This local server behaves like the real GAE environment, so you can test features such as
datastore, user accounts, and email without deploying.

 Once everything works correctly, you can deploy your Java app to GAE with simple
commands.

Python SDK

 The Python SDK allows developers to build applications using Python.

 Like the Java SDK, it provides a local testing environment that simulates AppEngine
services.

[Type text]Page 12
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

 Developers can check their Python code, database queries, and APIs locally before moving
the app online.

 After testing, the Python app can be easily deployed to GAE using the SDK tools.

***Please refer class notes for the steps to develop a web application in
Java/Python using GAE***

[Link] Application deployment and management

After building and testing an app, it can be deployed on AppEngine using a click or
command-line tool. Developers first need a unique application ID, which lets the app be
accessed at a URL like [Link] For commercial apps,
this ID can also be linked to a custom domain name. The ID is required for uploading and
updating the app, and developers can create it by logging into AppEngine and selecting
“Create application”.

Once the ID is ready, the app can be deployed using the launcher, plugins, or command-line
tools. AppEngine handles making the app available online. Developers can use the
administrative console to monitor CPU, bandwidth, and other resources, manage multiple app
versions, choose which version to release, and handle billing.

9.2.3 Cost model

App Engine follows a pay-per-use model, but every application gets a free daily quota.

Types of Quotas:

1. Billable Quotas: The amount you’re willing to pay for per day.
2. Free Quotas: The amount you get at no cost (resets every 24 hours).
3. Fixed Quotas: Limits set by Google to protect system stability.
4. Per-Minute Quotas: Prevent apps from using up their daily quota too quickly.

When you hit a limit, your app may temporarily stop accessing certain resources (for
example, returning an “HTTP 403” error). Quotas help ensure fair usage and cost control.

Module 4

[Type text]Page 13
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

Cloud Applications
Cloud computing has become very popular because it allows applications to be hosted and
delivered to users quickly and at low cost. This chapter looks at several case studies, showing
how different applications used cloud technologies. It covers applications from various fields,
including science, engineering, gaming, and social networking, and explains their architecture
and cloud usage.

a. Scientific Applications (ECG, GENE Expression Data Analysis, Satellite Image


Processing)
b. Business and consumer applications (CRM and ERP)
c. Social Networking (Facebook)
d. Media applications (Animoto, Maya Rendering with Aneka, Video encoding on the
cloud: [Link])

a. Scientific Applications

Scientists are using cloud computing more because it gives lots of computing power and
storage at lower cost than having their own systems. Clouds can run many types of scientific
applications like:

 HPC (High Performance Computing Application)


Programs that use supercomputers or large clusters to solve big, complex problems
very quickly by running many calculations at the same time.

 HTC (High Throughput Computing Application)


Programs designed to run many separate tasks or jobs over a long period of time,
focusing on completing a large number of tasks rather than running them very fast at
once.

 Data Intensive Applications


Programs that handle, process, or analyse very large amounts of data, often requiring
special tools to store and manage that data efficiently.

IaaS lets scientists run task-based applications on virtual machines with the needed software.
PaaS lets them use new programming models for complex problems. For example,
MapReduce is useful for processing large datasets, and platforms like Aneka let scientists use
MapReduce and other models to build cloud-based applications easily.

1. Healthcare: ECG analysis in the cloud

Healthcare uses computer technology for many purposes, from running hospitals to helping
doctors treat patients. One key use is cloud-based ECG monitoring, which lets doctors
check a patient’s heartbeat remotely.

ECG measures the heart’s electrical activity, and doctors can detect problems like irregular
heartbeats. With the cloud, patients can be watched continuously, and doctors or first-aid
teams are notified immediately if there is a danger.

[Type text]Page 14
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

The figure shows a cloud-based ECG monitoring system that allows doctors to monitor a
patient’s heartbeat remotely. Here’s how it works step by step:

1. User / Patient Side: The patient wears an ECG sensor that measures heart activity.
The sensor has a Bluetooth-enabled module to send data.
2. Data Transfer to Mobile Device: The ECG sensor communicates with the patient’s
mobile device (smartphone or tablet) via Bluetooth.
3. Sending Data to the Cloud: The mobile device sends the ECG data over a wireless or
3G network to the cloud for processing.
4. Cloud Processing (PaaS): The cloud uses a dynamically scalable platform to handle
the data, adjusting computing resources as needed. Security and runtime management
ensure safe and reliable operation.
5. Cloud Storage (IaaS): The ECG data is stored on cloud infrastructure like Amazon S3
and other web services.
6. Analysis and Results (SaaS): The cloud provides ECG data analysis as a service,
generating processed results (graphs, alerts, anomaly detection) for doctors or first-aid
personnel.

Advantages:

 Doctors or medical staff can access ECG results remotely, from anywhere.
 The system can handle many patients simultaneously, thanks to cloud scalability.
 Alerts are sent automatically if abnormal heart activity is detected.

2. Biology: gene expression data analysis for cancer diagnosis

Gene expression profiling measures the activity of thousands of genes at once. It helps
scientists understand how treatments affect cells and is important for designing new drugs.

It is also useful for cancer, which happens when cells grow uncontrollably due to mutated
genes. By analysing gene activity, doctors can classify tumors more accurately and choose
better treatments. Classifying gene data is challenging because there are many genes but only
a few samples. Machine learning systems like XCS can help, and an improved version called
[Type text]Page 15
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

CoXCS splits the data into smaller parts and processes them separately. Such a process is
computationally intensive but can be easily parallelized using Aneka to solve the
classification problem in parallel and compose their outcomes.

1. Datasets: The starting point is the gene expression data (microarray datasets) that need
to be analyzed.
2. Cloud-CoXCS (Task Orchestrator): This is the system controlled by the user. It splits
the datasets into smaller tasks called CoXCS tasks and manages their execution.
3. Aneka Cloud Platform: The CoXCS tasks are sent to Aneka, which is a cloud
middleware. Aneka distributes these tasks across multiple cloud servers.
4. Elastic Sizing (e.g., EC2): Aneka can automatically adjust the number of cloud
servers based on the computational load. If more tasks are running, it can add more
servers, and if fewer tasks remain, it can reduce servers.
5. Parallel Processing: Each CoXCS task processes a part of the dataset independently.
This allows large datasets to be processed much faster than if done on a single
machine.
6. Results: After all tasks are completed, Cloud-CoXCS collects and combines the
results to produce the final analysis.

In conclusion, Cloud-CoXCS breaks a big gene analysis problem into smaller tasks, sends
them to the cloud to run in parallel, and combines the results efficiently.

3. Geoscience: Satellite Image Processing

Geoscience applications collect and analyse huge amounts of geographic and non-geographic
data. As technology advances, more sensors and satellites are deployed, increasing the
amount of data that needs to be processed.

Geographic Information Systems (GIS) are key tools in geoscience. They capture, store,
manage, and analyze geo-referenced data, which is useful for applications like farming, civil
security, and natural resource management. Processing this large amount of data requires
powerful computing resources. Satellite Remote Sensing produces hundreds of gigabytes of
raw images. These images need to be processed, moved from local storage to compute
facilities, corrected, and transformed before they can be used in GIS applications (weather
forecasting websites). This requires both heavy computation and data transfer.

[Type text]Page 16
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

 Collect Data – Satellite sends data to a ground station.

 Store Locally – Data is temporarily saved in local storage.

 Archive in Cloud – Data is sent to Aneka (cloud platform) for storage and management.

 Process Data – Aneka uses either Private Cloud or Public Cloud (AWS) to process the
data.

 Distribute Data – Processed data is sent to users.

 Access via Portal – Users view and analyze data through a web portal (SaaS).

b. Business and Consumer Applications (CRM & ERP)

Cloud computing is very useful for businesses and people. It lets companies transform capital
costs into operational costs, which makes clouds an attractive option for all enterprises that
are IT-centric. Users can access data and services from anywhere, and it is flexible, so new
ideas can quickly become products or services that grow with demand. Because of this, cloud
computing is used for many applications like business management tools, productivity apps,
and social networking.

CRM and ERP ([Link], Microsoft dynamics CRM, NetSuite)

[Link]

[Link] is a popular CRM system used by over 100,000 customers. It offers


customizable applications and can connect with third-party features. It runs on the [Link]
cloud platform, which is fast, scalable, and able to handle many applications at once.

[Type text]Page 17
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

[Link] stores application rules and structure as metadata, while keeping the data separate.
Applications share the same database but work in isolated spaces. Users can customize apps
using a visual framework, APIs, or APEX, a Java-like programming language for creating
logic, processes, and data queries.

1. User Bases and Applications

 Different user groups use different applications (e.g., User-base 1 → Application 1,


User-base 2 → Application 2).
 Users access Salesforce over the cloud.
 Each application runs in its own virtual environment, even though they share the same
platform.

2. [Link] Platform

 Hosts all applications and manages their logic, metadata, and execution.
 Metadata Cache: Stores rules, data structures, and application logic for faster access.

3. Shared Database

 A single database is shared by multiple tenants (multitenancy).


 Data Tables: Store actual application data.
 Metadata Tables (UDD): Store structure, logic, and rules of applications.
 Pivot Tables: Support reports and analytics.
 Multitenancy keeps data logically isolated while sharing the same physical database.

[Type text]Page 18
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

4. Runtime and Processing Engines

 Runtime Application Generator: Executes application logic based on metadata.


 Bulk Processing Engine: Efficiently handles large-scale data operations.
 Multitenant-aware Query Optimizer: Optimizes queries for multitenant use.
 Full-text Search Engine: Provides fast search across large datasets.
 Indexes: Speed up data retrieval and searches.

5. Virtual Application Components

 Common Screens: Shared by all tenants.


 Tenant-specific Screens: Customized for each user group.
 Objects (Tables): Represent entities like Accounts, Contacts, etc.

Salesforce users share the same platform and database but operate in isolated “virtual
containers.” Metadata defines the structure and logic, while runtime engines execute
applications efficiently. This Multitenant architecture enables scalability, customization, and
effective data management.

Microsoft Dynamics CRM

It is a tool by Microsoft to manage customer relationships. It can be installed on a company’s


own servers or used online with a monthly subscription. The online version runs in Microsoft
datacenters, offers 99.9% uptime, and keeps each company’s data separate. It helps with
marketing, sales, and managing customer information.

Users can access Dynamics CRM through a web browser or connect it to other programs
using web services. The system can be customized with plug-ins for special tasks and can use
Windows Azure to add new features, making it flexible and easy to scale.

NetSuite

NetSuite offers a suite of applications to help businesses manage all aspects of their
operations. Its main products include NetSuite Global ERP, NetSuite Global CRM, and
NetSuite Global Ecommerce, while NetSuite OneWorld integrates all three into a single
solution. The services are hosted in two large datacenters in the U.S., connected with
redundant links, allowing NetSuite to guarantee 99.5% uptime and reliable performance for
customers.

In addition to prepackaged solutions, NetSuite provides a development environment for


creating customized applications. The NetSuite Business Operating System (NS-BOS)
supports building SaaS business apps, and developers can use SuiteFlex to integrate ERP,
CRM, and ecommerce capabilities into new web applications. These apps can then be
packaged and shared using SuiteBundler, ensuring flexibility and scalability, all while being
securely hosted in NetSuite datacenters.

[Type text]Page 19
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

c. Social Networking

Social networking applications like Twitter and Facebook have grown rapidly in recent
years to become some of the most popular sites on the Web. To handle millions of users
smoothly, these services use cloud computing, which allows them to add more capacity while
the system is running. This flexibility is essential as social networks continue to grow their
user base.

Facebook

Is is one of the largest social networking platforms, with over 800 million users. To support
this massive scale, it relies on two optimized data centers and a scalable infrastructure that
can continuously add capacity while maintaining high performance. The platform also
provides APIs for third-party applications, such as social games and quizzes, allowing them
to integrate seamlessly with Facebook’s core services.

The back-end is built on LAMP (Linux, Apache, MySQL, PHP), complemented by in-
house services handling search, news feeds, notifications, and other functionalities. User data
is stored in distributed MySQL clusters, mostly as key-value pairs, and cached for faster
access. Tools like Thrift enable cross-language service communication, while Scribe and
monitoring applications support logging, alerting, and system maintenance, ensuring a robust
and responsive platform.

d. Media Applications (Animoto, Maya Rendering with Aneka, Video encoding on the
cloud: [Link])

Media applications have greatly benefited from cloud computing technologies. Tasks like
video encoding, transcoding, composition, and rendering require a lot of computing
power, making them ideal for cloud environments where these operations can be efficiently
handled.

Animoto

It is a cloud-based app that helps users create videos from images, music, and video clips.
Users choose a theme, upload media, arrange it, and pick a song. A special AI engine
automatically adds effects and transitions. Videos can be re-rendered for a different result,
and paid users can create longer videos with more templates.

[Type text]Page 20
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

 Users upload media and submit a video request.

 Front-end EC2 instances send the request to AWS SQS.

 Video rendering EC2 instances pick up tasks from SQS, process the videos, and store them
in S3.

 When the video is ready, users are notified.

 RightScale continuously monitors and adjusts the number of EC2 instances to handle the
load.

In conclusion, a user upload photos, videos, and music through the web, and front-end servers
handle their requests. Video rendering tasks are sent to worker servers via a queue, processed,
and stored in Amazon S3. RightScale manages scaling, adding or removing servers as needed
to keep the system fast and reliable.

Maya rendering with Aneka

Media processing, like rendering 3D models, is widely used in engineering and the movie
industry. These tasks are very computationally demanding and need to be done quickly,
especially since designers often use visualizations repeatedly to improve their designs. Cloud
computing provides the power needed to perform these tasks faster.

The GoFront engineering department (part of China Southern Railway) designs high-speed
trains, metro cars, and other vehicles. Their prototypes require high-quality 3D images to
detect design problems. Rendering these images can take a long time, especially for many
frames. To speed up the process, GoFront turned its local network of desktops into a private
cloud using Aneka. Engineers submit rendering tasks via a specialized client, which
distributes the work across all machines. By using desktops during off-peak hours, GoFront
reduced rendering time from days to hours.

[Type text]Page 21
Cloud Computing Notes By Prof. Usha, Dept. Of CSE-AI&ML, MITM Subject Code: M23BCS505B

In the above diagram,

 Train Design in Maya: Engineers create 3D train models using Maya software.

 Aneka MayaRender: The designs are sent to the Aneka system, which prepares the
rendering tasks.

 Private Cloud (Networked LAN): Aneka distributes the rendering tasks to all the
computers connected in the local network (private cloud).

 Render Files Returned: Once the tasks are done, the rendered images/files are sent back
and collected for visualization.

 Result: Engineers get high-quality 3D images faster, allowing them to check and improve
their designs.

Video encoding on the cloud: [Link]

Video encoding and transcoding are very demanding tasks because they need a lot of
computing power and storage. With more people using mobile devices and the internet, there
are many requests for videos in different formats. Traditional hardware and software can be
expensive and inflexible. Cloud computing solves this by providing on-demand services that
can handle video conversion easily.

[Link] is a cloud-based service for video transcoding. It uses cloud resources from
Amazon Web Services and Rackspace to provide the computing power and storage needed.
Users can upload videos, choose the format they want, and get the converted video back. The
service also allows adding thumbnails, watermarks, and logos, and can convert audio and
images. It offers flexible pricing, including monthly fees, pay-as-you-go, or special rates for
large volumes. [Link] has over 2,000 customers and has processed more than 10
million videos.

[Type text]Page 22

You might also like