Module 2 - 3
Module 2 - 3
Parameters of
Abstraction Virtualization
comparison
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Parameters of
Abstraction Virtualization
comparison
It makes it possible for modifications Virtual machines allow for the division
to be made in the backend without or molding of computer resources by
Importance having an impact on the functions of concurrently running several
the apps that are located in the environments. These environments are
abstraction layer. referred to as "virtual machines."
Types Of Virtualization
In cloud computing, virtualization is a key technology that allows for the abstraction and efficient
management of physical resources. There are several types of virtualization, each serving different
purposes and use cases:
1. Server Virtualization:
o Full Virtualization: Uses a hypervisor to create virtual machines (VMs) that run
complete operating systems. The hypervisor sits between the hardware and the VMs,
emulating the hardware for each VM.
o Para-Virtualization: The guest operating systems are modified to be aware of the
virtualization, which can improve performance but requires changes to the guest OS.
o Hardware-Assisted Virtualization: Uses hardware features (e.g., Intel VT-x or
AMD-V) to improve the performance of virtual machines by providing better support
for virtualization.
2. Storage Virtualization:
o Block-Level Storage Virtualization: Abstracts physical storage devices to present
them as a single, unified storage pool. This improves management and can enhance
performance and scalability.
o File-Level Storage Virtualization: Aggregates multiple file storage systems into a
single namespace, allowing for easier management of file storage resources.
3. Network Virtualization:
o Network Function Virtualization (NFV): Virtualizes network functions such as
firewalls, load balancers, and routers. This decouples network functions from
physical hardware, allowing them to run on standard servers.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
o Software-Defined Networking (SDN): Separates the network control plane from the
data plane, allowing for centralized control and management of network resources
through software.
4. Desktop Virtualization:
o Virtual Desktop Infrastructure (VDI): Hosts desktop operating systems on virtual
machines in a data center. Users access their desktops remotely, which centralizes
management and improves security.
o Remote Desktop Services (RDS): Provides remote access to a shared desktop
environment or applications hosted on a server, as opposed to full desktop
virtualization.
5. Application Virtualization:
o Application Containerization: Encapsulates applications and their dependencies
into containers, which can run consistently across different computing environments.
Docker is a popular example of containerization technology.
o Application Streaming: Delivers applications to end-users without installing them
locally. The application runs on a server, and only the user interface is transmitted to
the client device.
6. Data Virtualization:
o Data Virtualization Platforms: Provide a unified view of data from various sources,
abstracting the underlying data storage and retrieval mechanisms. This allows users to
access and analyze data without worrying about its physical location or format.
7. Hardware Virtualization:
o Logical Partitioning (LPAR): Used primarily in mainframe environments to create
isolated partitions within a single physical machine, each running its own operating
system.
o Virtual Machines (VMs): Created and managed by hypervisors, VMs emulate
hardware to allow multiple operating systems to run on a single physical machine.
Load Balancing :
Load balancing in cloud computing is a crucial technique used to distribute workloads and network
traffic across multiple servers or resources to ensure optimal performance, reliability, and availability
of applications and services. Here’s an overview of how load balancing works in cloud environments
and its various components:
1. Concepts of Load Balancing:
Traffic Distribution: Distributes incoming network traffic or application requests across
multiple servers or resources to prevent any single server from becoming a bottleneck or point
of failure.
Scalability: Allows the system to scale horizontally by adding more instances or resources as
demand increases.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
High Availability: Enhances fault tolerance by redirecting traffic away from failed or
overloaded servers to healthy ones.
2. Types of Load Balancing:
DNS Load Balancing:
o Uses Domain Name System (DNS) to distribute traffic across multiple IP addresses.
DNS records can be configured with multiple A or AAAA records, and DNS
responses can be rotated or weighted to balance the load.
Global Load Balancing:
o Distributes traffic across data centers or cloud regions worldwide, improving latency
and ensuring high availability by directing users to the nearest or most appropriate
location.
Local Load Balancing:
o Balances traffic within a single data center or cloud region. This can be done at
various layers:
Layer 4 (Transport Layer): Balances traffic based on IP address and
TCP/UDP port.
Layer 7 (Application Layer): Balances traffic based on application-specific
attributes like URL, HTTP headers, or cookies.
3. Load Balancing Algorithms:
Round Robin: Distributes requests sequentially across a list of servers. Each server gets an
equal number of requests in order.
Least Connections: Sends traffic to the server with the fewest active connections. This
method is useful when server load is proportional to the number of connections.
Least Response Time: Directs traffic to the server with the lowest response time. This can
help in scenarios where response time is a critical performance metric.
Weighted Load Balancing: Assigns different weights to servers based on their capacity or
performance. Servers with higher weights receive a larger proportion of the traffic.
IP Hashing: Uses a hash function to map incoming requests to specific servers based on
client IP addresses. This can help in maintaining session persistence.
4. Load Balancing Techniques in Cloud Environments:
Cloud Provider Load Balancers: Many cloud providers offer integrated load balancing
services, such as:
o Amazon Web Services (AWS): Elastic Load Balancing (ELB) with options like
Application Load Balancer (ALB), Network Load Balancer (NLB), and Gateway
Load Balancer (GWLB).
o Google Cloud Platform (GCP): Google Cloud Load Balancing with options like
Global HTTP(S) Load Balancing, TCP/UDP Load Balancing, and Internal Load
Balancing.
o Microsoft Azure: Azure Load Balancer and Azure Application Gateway.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Auto-Scaling Integration: Load balancers often work in conjunction with auto-scaling
groups. As demand increases, auto-scaling can add new instances, and the load balancer will
automatically distribute traffic to these new instances.
Content Delivery Networks (CDNs): CDNs use edge servers to cache content closer to users
and can also balance traffic by directing requests to the nearest edge location.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Method: Distributes incoming requests sequentially across a pool of servers. Each server is
assigned a request in turn.
Use Case: Simple and effective for evenly distributed workloads.
b. Least Connections:
Method: Sends traffic to the server with the fewest active connections. This method helps
balance the load based on current server usage.
Use Case: Useful when servers have varying capacities or when connections are long-lived.
c. Least Response Time:
Method: Directs traffic to the server with the lowest response time. It helps in reducing
latency by choosing the most responsive server.
Use Case: Beneficial when performance and response time are critical factors.
d. Weighted Load Balancing:
Method: Assigns different weights to servers based on their capacity or performance. Servers
with higher weights receive a larger share of the traffic.
Use Case: Ideal when servers have different performance characteristics or capabilities.
e. IP Hashing:
Method: Uses a hash function to map incoming requests to specific servers based on client IP
addresses. This ensures that requests from the same IP address are consistently directed to the
same server.
Use Case: Useful for session persistence or sticky sessions.
3. Network Topologies and Components
a. Global Load Balancers:
Function: Distribute traffic across multiple geographic locations or data centers. They help
manage global traffic and improve performance by directing users to the nearest or most
appropriate server.
Examples: AWS Global Accelerator, Cloudflare Load Balancer.
b. Local Load Balancers:
Function: Balance traffic within a single data center or region. They manage traffic among
servers within a specific network segment.
Examples: AWS Application Load Balancer, Google Cloud Internal Load Balancer.
c. Content Delivery Networks (CDNs):
Function: Distribute content across a network of edge servers located closer to end-users.
CDNs offload traffic from origin servers and enhance content delivery speed and reliability.
Examples: Akamai, Cloudflare, Amazon CloudFront.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
4. Health Checks and Monitoring
Health Checks: Regularly assess the health and performance of servers to ensure they are
capable of handling traffic. Unhealthy servers are automatically removed from the pool of
available resources.
Monitoring Tools: Provide real-time insights into traffic patterns, server performance, and
load balancing effectiveness.
Examples: Prometheus, Grafana, Datadog, Nagios.
5. High Availability and Fault Tolerance
Failover Mechanisms: Ensure that traffic is redirected to healthy servers in the event of a
failure or outage. Load balancers often have built-in failover capabilities.
Redundancy: Deploy multiple load balancers in an active-passive or active-active
configuration to ensure continuous availability.
6. Security Considerations
DDoS Protection: Load balancers can provide Distributed Denial of Service (DDoS)
protection by absorbing and mitigating malicious traffic.
SSL/TLS Termination: Offload SSL/TLS decryption from backend servers to the load
balancer, reducing the processing burden on servers.
Virtual Machine:
Virtual Machine can be defined as an emulation of the computer systems in computing. Virtual
Machine is based on computer architectures. It also gives the functionality of physical computers. The
implementation of VM may consider specialized software, hardware, or a combination of both.
Types of Virtual Machine
There are distinct types of VM available all with distinct functionalities:
o System virtual machines: These types of virtual machines are also termed as
full virtualization VMs. It facilitates a replacement for an actual machine. These VMs offers
the functionality required for executing the whole operating system (OS). A hypervisor
applies native execution for managing and sharing hardware. It permits for more than one
environment that is separated from each other while exists on a similar physical machine.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Novel hypervisor applies virtualization-specific hardware and hardware-assisted virtualization
from various host CPUs primarily.
o Process virtual machines: These Virtual Machines are created for executing several
programs of the computer within the platform-independent environment.
Advantages of VM
o Virtual Machine facilitates compatibility of the software to that software which is executing
on it. Hence, each software specified for a virtualized host would also execute on the VM.
o It offers isolation among distinct types of processors and OSes. Hence, the processor OS
executing on a single virtual machine can't change the host of any other host systems and
virtual machines.
o Virtual Machine facilitates encapsulation. Various software present over the VM could be
controlled and modified.
o Virtual machines give several features such as the addition of new operating system. An
error in a single operating system will not affect any other operating system available on the
host. It offers the transfer of many files between VMs, and no dual booting for the multi-OS
host.
o VM provides better management of software because VM can execute a complete stack of
software of the run legacy operating system, host machine, etc.
o It can be possible to distribute hardware resources to software stacks independently. The VM
could be transferred to distinct computers for balancing the load.
Mobility patterns (P2V, V2V, V2P, P2P, D2C, C2C, C2D, D2D)
1. P2V (Physical to Virtual)
Definition: Refers to the process of converting a physical machine or environment into a
virtual machine (VM). This is common in virtualization and cloud migration, where physical
servers are virtualized to run within a cloud environment.
Use Case: Migrating an on-premises physical server to a cloud-based virtual machine.
2. V2V (Virtual to Virtual)
Definition: Describes interactions or migrations between virtual machines or environments.
This can involve moving a VM from one host to another within a cloud or between different
cloud providers.
Use Case: Live migration of VMs in cloud environments for load balancing or disaster
recovery.
3. V2P (Virtual to Physical)
Definition: Refers to the process of moving a virtual machine back to a physical server or
environment. This might be done for performance reasons or when transitioning back to an
on-premises infrastructure.
Use Case: Restoring a VM to a physical machine for specialized hardware requirements.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
4. P2P (Peer to Peer)
Definition: Describes a decentralized communication model where each participant (peer)
acts as both a client and a server. P2P is common in file-sharing networks, distributed
computing, and blockchain technology.
Use Case: BitTorrent file-sharing, where files are distributed across multiple peers.
5. D2C (Device to Cloud)
Definition: Refers to communication or data transmission from a device directly to the cloud.
This pattern is common in IoT, where sensors or edge devices send data to a cloud service for
storage, processing, or analysis.
Use Case: IoT sensors sending temperature data to a cloud-based monitoring system.
6. C2C (Cloud to Cloud)
Definition: Involves interactions or data exchange between two cloud environments. This can
happen within a multi-cloud strategy or when integrating services from different cloud
providers.
Use Case: Synchronizing data between AWS and Google Cloud for redundancy or load
balancing.
7. C2D (Cloud to Device)
Definition: Describes communication from a cloud service to a device. This is common in
scenarios where cloud applications send updates, commands, or notifications to connected
devices.
Use Case: A cloud-based smart home system sending commands to turn on lights in a
connected home.
8. D2D (Device to Device)
Definition: Refers to direct communication between devices without involving a central cloud
or server. This is often used in IoT networks, ad-hoc mobile networks, or edge computing,
where devices communicate directly with each other.
Use Case: Smart appliances in a home network sharing data directly to coordinate actions,
like a smart thermostat adjusting based on data from a motion sensor.
Advanced load balancing (including Application Delivery Controller and Application Delivery
Network)
Advanced load balancing is a critical component of modern cloud and data centre environments,
ensuring efficient distribution of network or application traffic across multiple servers, resources, or
data centres. It enhances the availability, reliability, and scalability of applications. The use of
Application Delivery Controllers (ADCs) and Application Delivery Networks (ADNs) is integral to
implementing advanced load balancing strategies. Here's a breakdown of these concepts:
1. Load Balancing
Basic Load Balancing: This involves distributing incoming traffic evenly across a group of
servers to prevent any single server from becoming overwhelmed. Basic techniques include
round-robin, least connections, and IP hash methods.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Advanced Load Balancing: Goes beyond basic techniques by incorporating more intelligent
traffic management strategies based on a variety of factors such as server performance,
application type, user location, and more. Advanced load balancers often include features like
SSL offloading, DDoS protection, and content caching.
2. Application Delivery Controller (ADC)
Definition: An ADC is a network device that performs advanced load balancing, ensuring that
application traffic is efficiently distributed across servers based on real-time conditions. It can
also include other functionalities like web application firewall (WAF), SSL offloading, and
application acceleration.
Key Features:
o Layer 7 Load Balancing: Operates at the application layer, allowing decisions based
on HTTP/HTTPS headers, cookies, and content, enabling more granular control over
traffic distribution.
o SSL Offloading: Terminates SSL/TLS connections, reducing the load on application
servers by handling the encryption and decryption processes.
o Application Acceleration: Uses techniques like caching, compression, and TCP
multiplexing to improve application performance and reduce latency.
o Web Application Firewall (WAF): Protects applications from common web threats,
such as SQL injection and cross-site scripting (XSS).
3. Application Delivery Network (ADN)
Definition: An ADN is an architecture or framework that optimizes the delivery of
applications over a network. It typically includes ADCs and additional technologies to
enhance application performance, security, and availability across distributed networks.
Components:
o Load Balancers/ADCs: The core components that manage traffic distribution and
application delivery.
o WAN Optimization: Improves the efficiency of data transfer across wide-area
networks (WANs), reducing latency and bandwidth consumption.
o Content Delivery Networks (CDNs): Distribute content to edge locations closer to
end-users to reduce latency and improve load times.
o Network Performance Monitoring: Provides insights into network performance,
enabling proactive management and troubleshooting.
Key Benefits:
o Global Traffic Management: Directs user requests to the most appropriate data center
or server based on location, server load, and network conditions.
o Application Security: Integrates security measures to protect against DDoS attacks,
data breaches, and other threats.
o Scalability and Availability: Ensures that applications remain available and
responsive even during traffic spikes or server failures.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
4. Advanced Load Balancing Strategies
Global Server Load Balancing (GSLB): Distributes traffic across multiple geographically
distributed data centers, improving redundancy and disaster recovery capabilities.
Health Monitoring: Continuously checks the health of servers and services, directing traffic
only to those that are functioning optimally.
Content-based Routing: Directs traffic based on the type of content requested. For example,
dynamic content might be served from a powerful server, while static content is served from a
cache.
Multi-cloud Load Balancing: Distributes traffic across multiple cloud providers, reducing the
risk of vendor lock-in and improving resilience.
5. Use Cases
E-commerce Websites: Ensuring high availability and fast response times during peak traffic
periods, such as Black Friday.
SaaS Applications: Maintaining consistent performance for users across different regions by
leveraging global traffic management.
Financial Services: Enhancing security and performance for online banking applications with
SSL offloading and application acceleration.
6. Benefits of Advanced Load Balancing with ADCs and ADNs
Improved User Experience: By optimizing the delivery of applications, users experience
faster load times and fewer disruptions.
Enhanced Security: Protects against a wide range of threats while ensuring secure application
access.
Increased Availability: Minimizes downtime by automatically redirecting traffic away from
failed or slow servers.
Better Resource Utilization: Ensures that servers and resources are used efficiently, reducing
operational costs.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Hypervisor: The key component that enables virtualization. It’s a software layer that creates
and manages VMs by abstracting and partitioning the underlying physical hardware. There
are two types of hypervisors:
o Type 1 (Bare-metal Hypervisor): Runs directly on the host's hardware, providing high
efficiency and performance. Examples include VMware ESXi, Microsoft Hyper-V,
and Xen.
o Type 2 (Hosted Hypervisor): Runs on top of a host operating system, providing more
flexibility but typically with lower performance. Examples include VMware
Workstation, Oracle VM VirtualBox, and Parallels Desktop.
2. Types of Virtual Machines
Virtual machines can be broadly categorized into two main types based on their use and the level of
abstraction:
A. System Virtual Machines
Definition: These VMs provide a complete environment that emulates a full physical
machine, including the OS. They allow the user to run multiple OS instances on the same
physical hardware.
Examples:
o Windows VM on a Linux Host: Running Windows on a Linux machine for software
development, testing, or running Windows-specific applications.
o Linux VM on a Windows Host: Commonly used by developers for creating a Linux
development environment on a Windows machine.
Use Cases:
o Server Consolidation: Running multiple server instances on a single physical server
to reduce hardware costs and improve resource utilization.
o Testing and Development: Developers use system VMs to create isolated
environments for testing applications on different OS versions without affecting their
primary system.
o Disaster Recovery: VMs can be backed up and quickly restored, making them ideal
for disaster recovery scenarios.
B. Process Virtual Machines
Definition: These VMs are designed to run a single application or process, abstracting the
application from the underlying OS. They provide an isolated runtime environment for
applications.
Examples:
o Java Virtual Machine (JVM): Allows Java applications to run on any device or
operating system that supports the JVM, making Java applications platform-
independent.
o .NET Common Language Runtime (CLR): A virtual machine component of the .NET
framework that runs .NET programs, providing services such as memory
management, security, and exception handling.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Use Cases:
o Cross-platform Application Execution: Process VMs allow applications to run on
different platforms without modification, enhancing portability.
o Managed Code Execution: Provides a controlled environment for running
applications, ensuring security, memory management, and error handling.
3. Specialized Virtual Machines
Beyond the primary categories, there are specialized types of virtual machines designed for specific
tasks or environments:
A. Desktop Virtualization
Definition: Involves creating a VM for a desktop environment, allowing users to access a full
desktop OS remotely or locally from different devices.
Examples:
o Virtual Desktop Infrastructure (VDI): Users connect to a VM hosted on a server,
which provides a complete desktop experience. This is common in enterprise
environments for managing user desktops centrally.
Use Cases:
o Remote Work: Enables employees to access their desktop environment from
anywhere, using different devices.
o Security: Centralizes desktop management and reduces the risk of data breaches by
keeping data within the data centre.
B. Container-based Virtualization
Definition: Containers are a lightweight form of virtualization where applications run in
isolated user spaces on the same OS kernel. Containers share the host OS but have their own
filesystem, network, and process space.
Examples:
o Docker: A popular platform that enables developers to package applications and their
dependencies into containers, ensuring consistent behavior across different
environments.
Use Cases:
o Microservices: Containers are ideal for running microservices due to their lightweight
nature and ease of deployment.
o DevOps: Containers streamline development and operations processes, enabling
faster deployment and scaling.
C. Paravirtualization
Definition: A type of virtualization where the guest OS is aware that it is running in a
virtualized environment and interacts directly with the hypervisor, improving performance by
avoiding full hardware emulation.
Examples:
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
o Xen: A popular hypervisor that supports paravirtualization, allowing for efficient
resource use and faster performance in VMs.
Use Cases:
o High-performance Virtualization: Used in environments where performance is
critical, such as database servers or high-throughput applications.
4. Benefits of Virtual Machine Technology
Resource Efficiency: VMs allow multiple operating systems and applications to run on the
same physical hardware, maximizing resource utilization.
Isolation and Security: Each VM operates independently, providing isolation that enhances
security and stability.
Scalability: VMs can be easily scaled up or down based on demand, making them ideal for
dynamic workloads in cloud environments.
Portability: VMs can be moved across different hardware platforms or data centers, providing
flexibility in deployment and management.
5. Challenges
Performance Overhead: Although VMs are efficient, they can introduce some performance
overhead compared to running applications directly on physical hardware.
Complex Management: Managing large numbers of VMs in a data center can be complex,
requiring sophisticated orchestration and management tools.
Security Concerns: While VMs are isolated, vulnerabilities in the hypervisor or
misconfigurations can lead to security risks.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
o Functionality: ESXi abstracts the underlying physical resources and allocates them to
VMs, providing a high-performance, reliable, and secure platform for running
applications.
2. vCenter Server:
o Definition: vCenter Server is the centralized management platform for vSphere
environments. It allows administrators to manage multiple ESXi hosts and VMs from
a single interface.
o Functionality: vCenter Server provides features like vMotion (live migration of
VMs), DRS (Distributed Resource Scheduler), and HA (High Availability), enabling
efficient resource management and high availability.
3. vSphere Client:
o Definition: The vSphere Client is a web-based interface used to interact with vCenter
Server and manage the vSphere environment.
o Functionality: Through the vSphere Client, administrators can create and manage
VMs, configure networking and storage, and monitor performance.
4. vSphere Distributed Switch (vDS):
o Definition: vDS is a network management feature that allows for centralized control
and automation of networking configuration across multiple ESXi hosts.
o Functionality: It simplifies network management by providing features like traffic
shaping, port mirroring, and network security policies across the entire vSphere
environment.
5. vSphere High Availability (HA):
o Definition: vSphere HA ensures that VMs are automatically restarted on other
available hosts in the cluster if a host fails.
o Functionality: HA minimizes downtime and ensures continuous availability of
applications, making it a critical feature for mission-critical workloads.
6. vSphere vMotion:
o Definition: vMotion allows for the live migration of running VMs from one ESXi
host to another without downtime.
o Functionality: This feature is used for load balancing, hardware maintenance, and
reducing the risk of service disruption.
7. vSphere Distributed Resource Scheduler (DRS):
o Definition: DRS automatically balances computing workloads with available
resources in a vSphere cluster.
o Functionality: It dynamically allocates resources to VMs based on their needs,
optimizing performance and efficiency.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Machine Imaging
Machine imaging, in the context of VMware vSphere and virtualization in general, involves creating a
snapshot or full image of a virtual machine. This image captures the VM's entire state, including its
operating system, applications, configuration, and data.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Cloud Service Models: The choice between IaaS (Infrastructure as a Service), PaaS (Platform
as a Service), and SaaS (Software as a Service) influences how much of the application needs
to be ported and re-architected.
Compatibility: Assessing the compatibility of the application with the cloud environment,
including operating systems, middleware, databases, and other dependencies.
Data Migration: Planning how to securely and efficiently migrate application data to the
cloud, considering issues like data integrity, latency, and compliance.
Security and Compliance: Ensuring that the ported application meets the required security
standards and complies with industry regulations.
3. Strategies for Porting Applications to the Cloud
Lift and Shift (Rehosting):
o Definition: This involves moving the application to the cloud with minimal or no
changes to its architecture or code. It’s the quickest method but doesn’t optimize the
application for the cloud environment.
o Use Cases: Suitable for legacy applications where speed of migration is a priority or
when there are constraints on modifying the application.
o Pros: Fast and cost-effective initial migration.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
o Definition: Replacing the existing application with a cloud-native solution or SaaS
offering. This is common for non-differentiating applications like CRM or ERP
systems.
o Use Cases: Best for applications that don’t provide a competitive advantage and
where a ready-made SaaS solution exists.
o Pros: Reduces the complexity of migration and allows the business to focus on core
activities.
o Cons: May involve re-training users and changing business processes.
Retiring:
o Definition: Identifying and retiring obsolete applications that are no longer needed,
instead of porting them to the cloud.
o Use Cases: Best for applications that have outlived their usefulness or have better
cloud-native alternatives.
o Pros: Simplifies the IT environment and reduces costs.
Retaining (Hybrid):
o Definition: Keeping some applications on-premises while migrating others to the
cloud, often in a hybrid or multi-cloud strategy.
o Use Cases: Suitable for organizations with regulatory constraints or applications that
aren’t cloud-ready.
o Pros: Provides flexibility and can be a step towards full cloud adoption.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Language Support: Initially focused on PHP, the Simple Cloud API was designed to be easily
extendable to support other programming languages.
Cross-Platform Compatibility: Enables applications to interact with cloud services from
multiple vendors (like Amazon S3, Microsoft Azure, and Rackspace) without requiring
changes to the application code.
Benefits:
Portability: Developers can write applications that work across multiple cloud environments,
reducing vendor lock-in.
Ease of Use: Simplifies the process of integrating cloud services into applications by
providing a consistent API.
Flexibility: Allows developers to switch cloud providers without needing to rewrite large
parts of their code.
Use Cases:
Cloud-Native Application Development: Useful for developers building cloud-native
applications that need to interact with various cloud services in a consistent manner.
Multi-Cloud Strategies: Helps organizations implementing multi-cloud strategies to ensure
their applications remain portable and flexible.
Legacy Application Modernization: Can be used to modernize legacy applications by
abstracting cloud interactions, allowing older systems to take advantage of cloud services.
2. AppZero Virtual Application Appliance
AppZero is a platform designed for the encapsulation and migration of Windows and Linux
applications, enabling them to run in virtual environments, including the cloud. AppZero's primary
product, the Virtual Application Appliance (VAA), focuses on creating portable application containers
that can be moved across different environments without requiring installation.
Key Features:
Application Encapsulation: AppZero packages applications and their dependencies into a
portable container, isolating them from the underlying operating system.
No Installation Required: Applications can be deployed without installation, making them
easier to move between servers, data centres, or cloud environments.
Cross-Platform Support: Supports both Windows and Linux applications, enabling migrations
across diverse environments.
Fast Deployment: The encapsulated applications can be quickly deployed to new
environments, including public or private clouds.
Application Lifecycle Management: Provides tools for managing the entire lifecycle of the
application, from development to production, in a consistent and controlled manner.
Benefits:
Rapid Migration: Facilitates the quick migration of applications from on-premises to the
cloud without the need for significant re-architecting.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Compatibility: Ensures that applications can run on various platforms, including older
systems, without modification.
Cost Efficiency: Reduces the costs associated with reconfiguring or redeveloping applications
for cloud environments.
Simplified Management: Centralizes application management, making it easier to handle
updates, patches, and other administrative tasks.
Use Cases:
Data Center Consolidation: Ideal for companies looking to consolidate data centers by
moving applications to the cloud without downtime or extensive modification.
Legacy Application Modernization: Helps in modernizing legacy applications by
encapsulating them into portable containers that can run in virtual or cloud environments.
Cloud Migrations: Facilitates the migration of complex enterprise applications to the cloud,
ensuring compatibility and minimizing the need for refactoring.
Hybrid Cloud Deployment: Enables applications to be seamlessly deployed across on-
premises and cloud environments, supporting hybrid cloud strategies.
Comparison and Integration:
Focus: While the Simple Cloud API focuses on providing a consistent interface for interacting
with cloud services, AppZero focuses on making applications portable across different
environments, including the cloud.
Use Together: These tools can be used together in scenarios where an organization needs to
migrate applications to the cloud (using AppZero) while ensuring that the applications can
interact with various cloud services consistently (using Simple Cloud API).
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Google Cloud Compute Engine
Use Cases:
Hosting websites and applications.
Data storage and backup.
Development and testing environments.
2. Platform as a Service (PaaS)
Definition: PaaS provides a platform that allows developers to build, deploy, and manage applications
without dealing with the underlying infrastructure. It abstracts the underlying hardware and software
layers, offering tools and services for development.
Key Features:
Development Tools: Includes integrated development environments (IDEs), database
management, and middleware.
Automatic Scaling: Platforms can automatically scale resources based on demand.
Focus on Development: Developers focus on writing code and building applications rather
than managing infrastructure.
Examples:
Google App Engine
Microsoft Azure App Service
Heroku
Use Cases:
Developing web applications.
Building and deploying APIs.
Creating and managing databases.
3. Software as a Service (SaaS)
Definition: SaaS delivers software applications over the internet, typically on a subscription basis.
Users can access the software via a web browser without installing or maintaining it on their local
devices.
Key Features:
Accessibility: Available from any device with an internet connection.
Automatic Updates: Software is automatically updated by the provider.
Cost Efficiency: Reduces the need for hardware and software maintenance.
Examples:
Google Workspace (formerly G Suite)
Microsoft 365
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Salesforce
Use Cases:
Email and collaboration tools.
Customer Relationship Management (CRM) systems.
Enterprise resource planning (ERP) applications.
4. Function as a Service (FaaS)
Definition: FaaS is a serverless computing service that allows developers to execute code in response
to events without managing server infrastructure. Functions are stateless and execute in response to
triggers such as HTTP requests or changes in data.
Key Features:
Serverless: No need to manage servers or infrastructure.
Event-Driven: Functions execute in response to specific events.
Cost Efficiency: Pay only for the execution time of functions.
Examples:
AWS Lambda
Microsoft Azure Functions
Google Cloud Functions
Use Cases:
Real-time file processing.
Event-driven applications.
API backends and microservices.
5. Container as a Service (CaaS)
Definition: CaaS provides container-based virtualization, allowing users to deploy and manage
containerized applications. Containers encapsulate an application and its dependencies into a single
package.
Key Features:
Portability: Containers can run consistently across different environments.
Scalability: Easily scale applications by managing containers.
Isolation: Containers isolate applications and their dependencies.
Examples:
Google Kubernetes Engine (GKE)
Amazon Elastic Kubernetes Service (EKS)
Azure Kubernetes Service (AKS)
Use Cases:
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Microservices architecture.
Continuous integration and continuous deployment (CI/CD).
Application modernization and migration.
6. Data as a Service (DaaS)
Definition: DaaS provides access to data and data management services over the internet. It allows
users to access, integrate, and analyze data from various sources without managing the underlying
infrastructure.
Key Features:
Data Integration: Combines data from different sources.
Accessibility: Data can be accessed from anywhere with an internet connection.
Real-Time Analytics: Provides tools for analyzing data in real-time.
Examples:
Amazon Redshift
Google BigQuery
Microsoft Azure Synapse Analytics
Use Cases:
Business intelligence and analytics.
Data warehousing.
Data integration and visualization.
Infrastructure as a
Platform as a service. Software as a service.
Stands for service.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Basis Of IAAS PAAS SAAS
It is a cloud computing
It is a service model that It is a service model in
model that delivers tools
provides virtualized cloud computing that
that are used for the
computing resources hosts software to make it
development of
over the internet. available to clients.
Model applications.
There is no requirement
Some knowledge is
It requires technical about technicalities
required for the basic
Technical knowledge. company handles
setup.
understanding. everything.
Outsourced
Salesforce Force.com, Gigaspaces. AWS, Terremark
cloud services.
Operating System,
Runtime, Middleware, Data of the application Nothing
User Controls and Application data
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Basis Of IAAS PAAS SAAS
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
e) Middleware Services:
Examples: AWS Lambda, Google Cloud Functions, Azure Functions
Features: Serverless computing for running backend code in response to events without
managing servers.
f) APIs and Integration:
Examples: AWS API Gateway, Azure API Management
Features: Tools for creating, managing, and securing APIs that your application can interact
with.
g) Monitoring and Analytics:
Examples: Google Stackdriver, Azure Monitor, AWS CloudWatch
Features: Monitoring tools for application performance, logging, and error tracking.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Language: PHP
Use Case: Modern PHP framework with features for routing, authentication, and ORM.
PaaS Integration: Can be deployed on platforms like Heroku, Google App Engine, and Azure.
c) User Experience:
Details: Enhances user experience by providing easy access to information across Google’s
suite of applications.
d) Scalability:
Details: Handles enormous volumes of data and user queries, maintaining performance and
accuracy.
e) Continuous Improvement:
Details: Regular updates and improvements to indexing and search algorithms ensure the
quality and relevance of search results.
5. Technical Aspects and Innovations
a) Page Rank Algorithm:
Definition: Google’s original algorithm for ranking web pages based on the number and
quality of links.
Function: Assesses the importance of a page by evaluating the links pointing to it.
b) Natural Language Processing (NLP):
Definition: Techniques for understanding and processing human language.
Function: Helps interpret user queries and match them with relevant indexed content.
c) Machine Learning and AI:
Definition: Use of algorithms and models to improve search accuracy and relevance.
Function: Enhances search results through learning from user interactions and feedback.
d) Indexing of Non-Text Content:
Definition: Techniques for indexing and searching non-text content such as images and
videos.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Function: Includes features like image recognition and video content analysis.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Enhanced Scalability: Aggregated resources can be scaled up or down based on demand,
offering flexibility and efficiency.
Improved Efficiency: Combining services into a single platform can lead to better
performance and streamlined operations.
Challenges:
Complexity: Aggregation can introduce complexity in terms of integration and
interoperability among different services.
Vendor Lock-in: Relying on a single provider for aggregated services may lead to vendor
lock-in, making it challenging to switch providers.
2. Disintermediation in Cloud Computing
Definition: Disintermediation refers to the removal of intermediaries or middlemen in a process,
typically to streamline operations and reduce costs. In the context of cloud computing,
disintermediation involves removing traditional intermediaries such as on-premises infrastructure,
service providers, or traditional IT management layers.
Key Aspects:
Direct Access to Resources:
o Example: Cloud computing allows users to access computing resources directly from
cloud providers without the need for traditional hardware or IT infrastructure. For
instance, users can provision virtual machines and storage directly through a cloud
service provider’s interface.
Elimination of Middle Layers:
o Example: In traditional IT setups, multiple layers of intermediaries, such as hardware
vendors, system integrators, and IT consultants, are involved. Cloud computing
simplifies this by providing a direct interface between users and cloud resources,
reducing the need for these intermediaries.
Cost Reduction:
o Example: Disintermediation can reduce costs by eliminating the need for physical
hardware, maintenance, and intermediary services. Users pay only for the resources
they use, avoiding capital expenditures on infrastructure.
Benefits:
Cost Savings: Direct access to cloud resources and services reduces the need for physical
infrastructure and associated costs.
Increased Agility: Users can quickly provision and scale resources without waiting for
intermediary processes.
Streamlined Operations: Reducing intermediaries simplifies operations and reduces the
complexity of managing IT infrastructure.
Challenges:
Security and Compliance: Without intermediaries, users must take on more responsibility for
securing their cloud environments and ensuring compliance with regulations.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Integration Issues: Disintermediation may lead to challenges in integrating cloud services
with existing systems or processes.
3. Interplay between Aggregation and Disintermediation
Aggregation with Disintermediation:
Cloud computing often involves both aggregation and disintermediation. For example, a
cloud provider may aggregate various services (compute, storage, networking) into a single
platform while eliminating traditional IT intermediaries.
Impact on IT and Business Operations:
Efficiency: Aggregation simplifies the management of resources, while disintermediation
streamlines operations and reduces costs.
Flexibility: The combination of aggregated services and disintermediated processes offers
greater flexibility and responsiveness to changing business needs.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
o Video Conferencing: Tools for video calls and meetings (e.g., Zoom, Google Meet).
Project Management:
Examples: Asana, Trello, Monday.com
Features:
o Task Tracking: Tools for assigning and tracking tasks and milestones.
Document Management:
Examples: Dropbox, Google Drive, OneDrive
Features:
o Cloud Storage: Online storage for files and documents with accessibility from any
device.
o File Sharing: Easy sharing of files and folders with others.
2. Collaboration Platforms:
Examples: Microsoft Teams, Google Chat, Slack
Features:
o Real-Time Collaboration: Tools for team communication, file sharing, and
collaborative workspaces.
o Integration: Integration with other productivity and project management tools.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
3. Business Intelligence and Analytics:
Examples: Tableau, Power BI, Google Data Studio
Features:
o Data Visualization: Tools for creating interactive charts and dashboards.
o Data Analysis: Features for analysing and interpreting data from various sources.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
d) Video Ads:
Placement: Appear on YouTube and other video partner sites.
Targeting: Based on user interests, demographics, and video content.
Format: Includes skippable and non-skippable video ads, bumper ads.
e) App Ads:
Placement: Appear in Google Play, search results, and across the Google Display Network.
Targeting: Based on user interests and app-related searches.
Format: Promotes app installs and in-app actions.
3. Ad Campaign Structure
1. Campaigns:
Definition: Top-level organization in Google Ads where you set the campaign goals, budget,
and type (e.g., Search, Display, Shopping).
Features: Campaign settings include daily budget, bid strategy, and geographic targeting.
2. Ad Groups:
Definition: Sub-divisions within campaigns where you organize your ads and keywords.
Features: Ad groups contain related ads and keywords for targeting.
3. Ads:
Definition: Individual advertisements created within ad groups.
Features: Ads are customized with headlines, descriptions, and display URLs.
4. Keywords:
Definition: Words or phrases that trigger the display of your ads when users search for them.
Features: Includes keyword match types (e.g., broad match, phrase match, exact match).
4. Targeting and Bidding
1. Targeting Options:
Keywords: Choose keywords relevant to your products or services.
Demographics: Target users based on age, gender, and household income.
Geographic Location: Target users in specific locations.
Interests and Behavior: Target users based on their online behavior and interests.
2. Bidding Strategies:
Manual CPC (Cost-Per-Click): Set your own maximum bid for each click.
Automated Bidding: Use Google’s algorithms to automatically adjust bids based on goals
(e.g., Target CPA, Maximize Clicks).
Enhanced CPC: Adjusts bids based on the likelihood of a conversion.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
5. Measuring and Optimizing Performance
1. Performance Metrics:
Impressions: Number of times your ad is shown.
Clicks: Number of times users click on your ad.
Click-Through Rate (CTR): Percentage of ad impressions that result in clicks.
Conversions: Actions users take after clicking on your ad (e.g., purchases, sign-ups).
Cost-Per-Click (CPC): Average cost paid for each click on your ad.
Cost-Per-Acquisition (CPA): Cost associated with acquiring a customer or conversion.
2. Optimization Techniques:
A/B Testing: Test different ad versions to see which performs better.
Keyword Refinement: Regularly review and adjust keywords based on performance.
Ad Copy Improvement: Optimize ad headlines and descriptions to improve CTR and
relevance.
Bid Adjustments: Modify bids based on performance data to maximize ROI.
6. Best Practices
1. Keyword Research:
Details: Conduct thorough keyword research to identify relevant and high-performing
keywords.
2. Compelling Ad Copy:
Details: Write clear, engaging, and relevant ad copy that encourages users to click.
3. Landing Page Optimization:
Details: Ensure your landing pages are relevant to the ad content and optimized for
conversions.
4. Regular Monitoring:
Details: Continuously monitor campaign performance and make data-driven adjustments.
5. Budget Management:
Details: Allocate your budget effectively to achieve the best results and avoid overspending.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
BigQuery: Google Analytics 4 (GA4) allows exporting raw data to BigQuery, which is part of
Google Cloud. This enables users to perform advanced SQL queries, analyze large datasets,
and store historical data efficiently.
o Benefits:
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Google Translate in Cloud Computing
Google Translate in cloud computing is accessible through the Google Cloud Translation API, part of
Google Cloud's AI and machine learning services. The Translation API enables developers to integrate
real-time language translation capabilities into their applications. Key features include:
Translation between languages: Supports over 100 languages.
Real-time translation: Immediate translation for texts, websites, or documents.
Automatic language detection: Detects the language of the input text.
Glossary and customization: Allows customization with industry-specific vocabulary or
preferred terms.
Neural Machine Translation (NMT): Uses machine learning for high-quality translations.
With the Translation API, developers can integrate multilingual support for websites, apps, chatbots,
and other systems hosted on the cloud. It's scalable and ideal for businesses that need global, multi-
language support.
Google Cloud offers two types of Translation APIs:
1. Cloud Translation API Basic: Suitable for simple translation tasks.
2. Cloud Translation API Advanced: Offers additional features like document translation,
glossaries, and batch translation jobs.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Standard Environment: Provides a sandbox for applications with fast scaling, no maintenance
of the underlying infrastructure, and limits on the runtime.
Flexible Environment: Runs on Google Compute Engine virtual machines, providing more
flexibility, custom libraries, and direct access to system configurations.
9. Integrated Monitoring & Debugging:
Comes with Google Cloud Monitoring and Logging for performance insights, error reporting,
and real-time diagnostics.
10. Microservices and API Support:
Easily supports microservices architectures and allows easy integration with other Google
Cloud services through APIs, providing a seamless platform for service-oriented
development.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
AWS Storage Gateway: Hybrid storage service connecting on-premises environments to AWS
storage.
3. Networking
Amazon VPC (Virtual Private Cloud): Enables you to define and manage isolated networks
within AWS.
AWS Direct Connect: Dedicated network connection between your data center and AWS.
Amazon CloudFront: Content Delivery Network (CDN) for delivering content with low
latency.
Elastic Load Balancing (ELB): Distributes incoming application traffic across multiple targets
(EC2, containers, etc.).
AWS Transit Gateway: Connects VPCs and on-premises networks via a central hub.
4. Database
Amazon RDS (Relational Database Service): Managed relational databases including
MySQL, PostgreSQL, Oracle, and SQL Server.
Amazon DynamoDB: Fully managed NoSQL database service for key-value and document
data.
Amazon Aurora: High-performance, scalable relational database compatible with MySQL and
PostgreSQL.
Amazon Redshift: Data warehousing service for large-scale data analytics.
Amazon ElastiCache: In-memory caching service supporting Redis and Memcached.
5. Security, Identity, and Compliance
AWS IAM (Identity and Access Management): Manage access to AWS services and resources
securely.
Amazon GuardDuty: Threat detection service that monitors for malicious activity.
AWS Shield: DDoS protection service for applications running on AWS.
AWS WAF (Web Application Firewall): Protects web apps from common web exploits.
AWS KMS (Key Management Service): Managed service for creating and controlling
encryption keys.
AWS Secrets Manager: Securely stores and manages sensitive information like passwords and
API keys.
6. Analytics
Amazon Athena: Query service that enables you to analyze data stored in Amazon S3 using
SQL.
Amazon EMR (Elastic MapReduce): Big data processing using tools like Hadoop and Spark.
Amazon Kinesis: Platform for real-time data streaming and analytics.
Amazon Redshift: Cloud-based data warehouse for large-scale data analytics.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
AWS Glue: Managed ETL (extract, transform, load) service for preparing data for analytics.
7. Machine Learning and AI
Amazon SageMaker: End-to-end machine learning platform for building, training, and
deploying models.
Amazon Rekognition: Image and video analysis service powered by deep learning.
Amazon Polly: Text-to-speech service.
Amazon Lex: Service for building conversational interfaces using voice and text (e.g.,
chatbots).
AWS DeepLens: Deep learning-enabled video camera for developing machine learning
projects.
8. DevOps
AWS CodeBuild: Fully managed build service for compiling source code and running tests.
AWS CodeDeploy: Automated deployment of applications to EC2 instances, on-premises
servers, and Lambda.
AWS CodePipeline: Continuous integration and delivery service for automating release
pipelines.
AWS CloudFormation: Infrastructure as code tool for defining AWS resources using
templates.
AWS OpsWorks: Configuration management service that uses Chef and Puppet.
9. Migration and Transfer
AWS Migration Hub: Tracks the progress of application migrations across multiple AWS and
partner solutions.
AWS Database Migration Service (DMS): Migrates databases to AWS with minimal
downtime.
AWS Snowball/Snowmobile: Physical devices for transferring large amounts of data to AWS.
10. Application Integration
Amazon SQS (Simple Queue Service): Managed message queuing service for decoupling
application components.
Amazon SNS (Simple Notification Service): Managed service for sending notifications from
the cloud.
Amazon MQ: Managed message broker service for Apache ActiveMQ.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Key Features of Amazon EC2:
1. Elasticity and Scalability:
EC2 allows you to scale computing resources up or down based on demand. You can launch
instances of various sizes and types, and add or remove instances dynamically to meet traffic
needs.
2. Instance Types:
EC2 offers a wide range of instance types optimized for different use cases (e.g., compute-
optimized, memory-optimized, storage-optimized, GPU instances for machine learning, etc.).
3. Pay-as-you-go Pricing:
EC2 follows a pay-as-you-go model, meaning you only pay for the compute capacity you
actually use. You can choose between On-Demand Instances, Reserved Instances, and Spot
Instances depending on your workload and budget.
4. Instance Customization:
You can select the operating system (Linux, Windows, etc.), instance size, storage, and
networking configurations. EC2 allows running custom Amazon Machine Images (AMIs) for
pre-configured environments.
5. Auto Scaling:
EC2 can be integrated with Auto Scaling to automatically adjust the number of instances
based on predefined conditions, such as traffic spikes or resource thresholds. This helps
ensure optimal performance and cost-efficiency.
6. Elastic Block Store (EBS):
EC2 instances can be paired with Amazon EBS (Elastic Block Store), which provides high-
performance, persistent block storage for use with instances.
7. Security and Networking:
EC2 instances are hosted within Amazon Virtual Private Cloud (VPC), enabling secure,
isolated networking environments.
Security Groups act as virtual firewalls, controlling inbound and outbound traffic.
Key pairs and SSH/RDP access enable secure instance login.
8. Load Balancing:
Elastic Load Balancing (ELB) can distribute incoming traffic across multiple EC2 instances,
ensuring high availability and fault tolerance for applications.
9. Elastic IPs:
You can assign Elastic IPs, static public IP addresses, to EC2 instances, enabling stable access
and allowing for easy failover.
10. Spot and Reserved Instances:
Spot Instances allow you to bid for unused EC2 capacity at a lower cost, suitable for batch
processing or fault-tolerant workloads.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
Reserved Instances offer significant savings for predictable workloads with long-term usage
commitments.
11. Integration with AWS Ecosystem:
EC2 integrates seamlessly with other AWS services, such as Amazon S3, Amazon RDS,
CloudWatch, IAM, and more, allowing for a powerful and flexible cloud infrastructure.
12. Flexible Operating System Choices:
EC2 supports a variety of operating systems including Linux (Ubuntu, Red Hat, CentOS,
Amazon Linux) and Windows Server, giving flexibility in development and deployment.
13. Security and Compliance:
Amazon EC2 meets various compliance standards such as HIPAA, PCI DSS, and SOC
requirements. It provides features like encryption at rest and in transit, as well as integration
with AWS Identity and Access Management (IAM) for secure access control.
14. Use Cases:
EC2 is highly versatile and can support various use cases including:
o Web hosting and application servers.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
S3 provides different storage classes optimized for various use cases:
o S3 Standard: For frequently accessed data with high durability and availability.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
S3 Transfer Acceleration speeds up the upload of objects into S3 by using Amazon
CloudFront’s globally distributed edge locations.
10. Query in Place:
Amazon S3 Select allows you to retrieve only the specific data needed from an object (e.g.,
select rows from a CSV file), reducing the amount of data transferred.
Amazon Athena can query S3 data using SQL without having to extract, transform, and load
(ETL) it.
11. Logging and Monitoring:
S3 Access Logs provide detailed records of requests made to S3 objects, which can be stored
in another S3 bucket for auditing and monitoring.
AWS CloudWatch and AWS CloudTrail can be used to monitor S3 bucket activity and track
API calls for security and compliance.
12. Cost Efficiency:
Amazon S3 follows a pay-as-you-go pricing model, meaning you only pay for the storage,
requests, and data transfer you use.
Using storage classes like S3 Glacier and S3 Glacier Deep Archive helps reduce costs for data
that is rarely accessed.
13. Global Infrastructure:
S3 data can be stored across different AWS Regions and Availability Zones, giving users the
flexibility to store data closer to their customers or meet geographic compliance requirements.
14. Use Cases:
Backup and disaster recovery.
Data archiving for long-term retention and regulatory compliance.
Content storage and delivery for websites, media, and software distribution.
Data lakes for big data analytics and machine learning workloads.
Log storage for storing large volumes of log data.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
EBS volumes provide persistent storage, meaning that the data is retained even when the EC2
instance is stopped or terminated.
Data stored on EBS volumes can be backed up automatically via snapshots and restored when
needed.
2. Elasticity and Scalability:
You can easily increase the size of an EBS volume without stopping the instance, allowing for
seamless growth as storage needs increase.
You can create new volumes, resize, or change the performance characteristics on the fly to
meet application demands.
3. High Performance:
Low-latency, high-throughput storage is designed to handle workloads that require fast access
to data, such as databases and transactional applications.
EBS offers different volume types to optimize for different performance and cost needs:
o General Purpose SSD (gp3, gp2): Balanced performance for general workloads.
4. Snapshots:
EBS Snapshots allow you to back up the data stored on EBS volumes to Amazon S3.
Snapshots are incremental, meaning only changes made since the last snapshot are stored,
minimizing storage costs.
Snapshots can be used to create new volumes, move data across AWS regions, or restore data
to a specific point in time.
5. Resilience and Availability:
EBS volumes are designed to offer 99.999% availability and are automatically replicated
within the same Availability Zone to protect against hardware failure.
Multi-Attach allows some EBS volumes (specifically io1 and io2) to be attached to multiple
EC2 instances simultaneously, enabling high-availability clustering for specific applications.
6. Encryption:
EBS supports encryption at rest using AWS Key Management Service (KMS). Encryption is
automatically enabled for new volumes and snapshots and applies to data at rest, data in
transit, and all backups.
You can manage your encryption keys with KMS, ensuring the security of sensitive data.
7. Cost-Effectiveness:
EBS offers several volume types with different pricing structures, allowing users to choose
based on their performance and cost needs.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
gp3 volumes offer the ability to customize IOPS and throughput independently of storage
capacity, optimizing costs for workloads with variable performance needs.
8. High Availability and Disaster Recovery:
EBS volumes can be backed up with snapshots, enabling disaster recovery across different
regions or accounts.
You can create EBS Snapshot Copies to replicate data across regions, ensuring availability
even in the event of a regional failure.
9. Flexibility:
EBS volumes can be detached from one EC2 instance and attached to another, providing
flexibility in managing and migrating workloads.
Volumes can be used as the root device (boot volume) or as additional block storage for data,
databases, or applications.
10. Use Cases:
Databases: EBS is ideal for running relational and non-relational databases that require
consistent performance and low-latency access.
File Systems: EBS can be used as a persistent storage layer for EC2 instances running Linux
or Windows file systems.
Enterprise Applications: Suitable for high-performance workloads such as SAP, Oracle, and
Microsoft applications.
Big Data Analytics: EBS provides storage for big data processing frameworks like Hadoop
and Spark, especially when high throughput is needed.
11. Performance Monitoring:
EBS integrates with Amazon CloudWatch to provide detailed metrics for IOPS, throughput,
and latency, enabling you to monitor and optimize performance.
12. Volume Types Overview:
General Purpose SSD (gp3, gp2): Best for a wide range of workloads, including boot
volumes, small databases, and development environments.
Provisioned IOPS SSD (io2, io1): Designed for mission-critical, low-latency applications
requiring high IOPS, such as databases and transactional systems.
Throughput Optimized HDD (st1): Cost-effective for large data sets that are accessed
sequentially, like big data and log processing.
Cold HDD (sc1): Lowest-cost option for infrequently accessed data like backups and archives
Amazon SimpleDB
Amazon SimpleDB is a NoSQL database service from Amazon Web Services (AWS) designed for
storing, processing, and querying structured data. It provides automated management of infrastructure
and database scaling, allowing developers to focus on application logic without worrying about
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
database administration. SimpleDB is particularly useful for applications that require simple querying
and are looking for an easy-to-use, flexible schema.
Key Features of Amazon SimpleDB:
1. Schema-Free Data Model:
SimpleDB is a schema-less database, meaning that you don’t need to define a schema upfront.
You can store data in key-value pairs with attributes, and data can vary between items.
This provides flexibility for applications that require a dynamic schema or where attributes
may change over time.
2. Automated Infrastructure Management:
AWS handles the management, scaling, replication, and load balancing of the SimpleDB
service, allowing developers to focus on their application rather than infrastructure.
Replication across multiple AWS data centers ensures durability and high availability.
3. Querying and Indexing:
SimpleDB automatically indexes all the data that is entered, so you can query and retrieve
data efficiently without manually creating indexes or optimizing queries.
You can perform queries based on attribute values, ranges, and filters. Queries are simple and
optimized for speed in retrieving specific data or ranges of data.
4. Eventual Consistency:
SimpleDB uses an eventually consistent model, meaning that updates are propagated to all
copies of the data over time, though not instantly. This model improves availability and
scalability.
For scenarios where stronger consistency is required, SimpleDB also supports consistent
reads at a slightly higher latency.
5. Small-Scale Data Storage:
SimpleDB is optimized for applications with smaller data storage needs compared to Amazon
DynamoDB or Amazon RDS. Each domain (table) in SimpleDB can store up to 10 GB of
data.
You can scale by creating multiple domains if your application requires more storage.
6. Built-In Scalability:
SimpleDB is designed to scale automatically with traffic, eliminating the need to worry about
resource provisioning, throughput capacity, or performance bottlenecks.
SimpleDB automatically replicates your data across multiple Availability Zones to ensure
durability and availability.
7. Cost-Efficiency:
SimpleDB uses a pay-per-use model, meaning you are charged based on the amount of data
you store and the read/write requests your application makes.
There are no upfront costs, and you can start small, paying only for what you use as your
application scales.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering
8. Low-Latency Access:
SimpleDB offers low-latency access to small datasets, making it a good choice for
applications that need fast, efficient lookups for individual records or queries over small sets
of data.
9. Event Notifications:
You can integrate SimpleDB with other AWS services, such as Amazon SNS (Simple
Notification Service) or AWS Lambda, to trigger events based on data changes or actions
within the database.
10. Security and Access Control:
SimpleDB supports AWS Identity and Access Management (IAM) for securely controlling
access to the database, allowing fine-grained permission settings on who can read, write, or
query data.
Data is transferred using HTTPS, and you can configure encryption to secure sensitive data.
11. Automatic Backups:
SimpleDB takes care of automatic data backups by replicating data across multiple
Availability Zones, ensuring data durability even in the event of hardware failure.
12. Use Cases:
Web and Mobile Applications: Ideal for lightweight applications that need to store, retrieve,
and query simple datasets, such as user profiles, session data, or product catalogs.
Log Management: SimpleDB can be used to store logs or other time-series data that require
frequent querying and filtering.
Metadata Storage: Applications can use SimpleDB to store metadata related to files, media, or
events, where queries need to be simple and fast.
Dynamic Data Models: It is well-suited for applications that require frequent changes to the
data model without the need to re-architect the database.
Nilanjana Adhikari
Assistant Professor
Dept. Of Computer Science Engineering