Amazon Web Services [Database]
A. Nishant Bhardwaj
Computer Science and Mathematics, Arkansas State University, Jonesboro, Arkansas, U.S.A
Abstract - Amazon Web Services provides fully managed
relational and NoSQL database services, as well as fully
managed in-memory caching as a service and a fully managed
data-warehouse service. In this report we will put a glance on
the the services AWS database provides to its
clients/customers. These database services are fully managed
and can be launched in minutes with just a few clicks. AWS
database services include Amazon Relational Database
Service (Amazon RDS), with support for six commonly used
database engines, Amazon Aurora, a MySQL-compatible
relational database with five times the performance, Amazon
DynamoDB, a fast and flexible NoSQL database service,
Amazon Redshift, a petabyte-scale data warehouse service,
and Amazon Elasticache, an in-memory cache service. AWS
also provides the AWS Database Migration Service, a service
which makes it easy and inexpensive to migrate your
databases to AWS cloud.
Keywords: Amazon RDS, Dynamo DB,
1 Introduction
In 2006, Amazon Web Services (AWS) began offering
IT infrastructure services to businesses in the form of web
services—now commonly known as cloud computing. One of
the key benefits of cloud computing is the opportunity to
replace up-front capital infrastructure expenses with low
variable costs that scale with your business. With the cloud,
businesses no longer need to plan for and procure servers and
other IT infrastructure weeks or months in advance. Instead,
they can instantly spin up hundreds orthousands of servers in
minutes and deliver results faster. Today, Amazon Web
Services provides a highly reliable, scalable, low-cost
infrastructure platform in the cloud that powers hundreds of
thousands of businesses in 190 countries around the world.
This white paper is an introduction to the AWS cloud
computing platform. It discusses the advantages of cloud
computing and the fundamentals of AWS. It provides an
overview of the AWS services that comprise the platform.
2 Cloud Computing
Cloud computing is the on-demand delivery of compute
power, database storage, applications, and other IT resources
through a cloud services platformvia the internet with pay-as-
you-go pricing. Whether you are running applications that
share photos to millions of mobile users or you’re supporting
the critical operations of your business, a cloud services
platform provides rapid access to flexible and low cost IT
resources. With cloud computing, you can provision exactly
the right type and size of computing resources you need to
power your newest bright idea or operate your IT department.
You can access as many resources as you need, almost
instantly, and only pay for what you use.
2.1 The Differences that Distinguish AWS
AWS is readily distinguished from other vendors in the
traditional IT computing landscape because it is:
1.Flexible. AWS enables organizations to use the
programming models, operating systems, databases, and
architectures with which they are already familiar. In
addition, this flexibility helps organizations mix and match
architectures in order to serve their diverse business needs.
2.Cost-effective. With AWS, organizations pay only for what
they use, without up-front or long-term commitments.
3.Scalable and elastic. Organizations can quickly add and
subtract AWS resources to their applications in order to meet
customer demand and manage costs.
4.Secure. In order to provide end-to-end security and end-to-
end privacy, AWS builds services in accordance with security
best practices, provides the appropriate security features in
those services, and documents how to use those features.
5.Experienced. When using AWS, organizations can
leverage Amazon’s more than fifteen years of experience
delivering large-scale, global infrastructure in a reliable,
secure fashion.
2.2 Amazon Web Services Cloud Platform
Fig: 1
3 Amazon Database
Amazon Web Services provides fully managed
relational and NoSQL database services, as well as fully
managed in-memory caching as a service and a fully managed
petabyte-scale data-warehouse service. Or, you can operate
your own database in the cloud on Amazon EC2 and Amazon
EBS.
3.1 Relational Database
A relational database is a collection of data items with
pre-defined relationships between them. These data items are
organized as a set tables of columns and rows. Each row in
the table represents a collection of related values of a one
object or entity. Tables are used to hold information about the
objects to be represented in the database. Each column in a
table holds a certain kind of data and a field stores the actual
value of an attribute. The row in each table could be identified
with a unique key identifying and row among multiple tables
can be made related using foreign keys. This data can be
accessed in many different ways without reorganizing the
database tables themselves.
3.1.1 Important aspects of Relational Database
1.SQL. Structured Query Language is the primary
interface used to communicate with Relational Databases.
The standard ANSI SQL is supported by all popular relational
database engines. SQL is used to add, update or deleting rows
of data, retrieving subsets of data for transaction processing
and analytics applications, and to manage all aspects of the
database.
2. Data Integrity. Data integrity is the overall completeness,
accuracy and consistency of data. Relational databases use a
set of constraints to enforce data integrity in the database.
These include primary Keys, Foreign Keys, ‘Not NULL’
constraint, ‘Unique’ constraint, ‘Default’ constraint and
‘Check’ constraints. These integrity constraints help enforce
business rules on data in the tables to ensure the accuracy and
reliability of the data.
3. Transactions. A database transaction is one or more SQL
statements that are executed as a sequence of database
operations that form a single logical unit of work.
Transactions provide an "all-or-nothing" proposition, the
entire transaction must complete as a single unit and be
written to the database or none of the individual components
of the transaction should go through. In the relation database
terminology, a transaction results in a COMMIT or a
ROLLBACK. Each transaction is treated in a coherent and
reliable way independent of other transactions.
4. ACID Compliance. All databse transactions must ACID
compliant or be atomic, consistent, isolated and durable to
ensure data integrity.
Atomicity requires that either transaction as a whole be
successfully executed or if a part of the transaction fails, then
the entire transaction be invalidated.
Consistency mandates the data written to the database as part
of the transaction must adhere to all defined rules, and
restrictions including constraints, cascades, and triggers.
Isolation is critical to achieving concurrency control and
makes sure each transaction is independent unto itself.
Durability requires that all of the changes made to the
database be permanent once a transaction is successfully
completed.
3.1.2 Amazon RDS
Amazon Relational Database Service (Amazon RDS) is
a web service that makes it easier to set up, operate, and scale
a relational database in the cloud. It provides cost-efficient,
resizeable capacity for an industry-standard relational
database and manages common database administration tasks.
The following are the benefits of using Amazon RDS:
 When you buy a server, you get CPU, memory,
storage,and IOPS, all bundled together. With Amazon RDS,
these are split apart so that you can scale them independently.
So, for example, if you need more CPU, less IOPS, or more
storage,you can easily allocate them.
 Amazon RDS manages backups,software patching,
automatic failure detection, and recovery.
 In order to deliver a managed service experience,
Amazon RDS does not provide shell access to DB
instances,and it restricts access to certain system
procedures and tables that require advanced
privileges.
 You can have automated backups performed when
you need them, or create your own backup snapshot.
These backups can be used to restore a database,and
the Amazon RDS restore process works reliably and
efficiently.
 You can get high availability with a primary instance
and a synchronous secondary instance that you can
failover to when problems occur. You can also use
MySQL, MariaDB, or PostgreSQL Read Replicas to
increase read scaling.
 You can use the database products you are already
familiar with: MySQL, MariaDB, PostgreSQL,
Oracle, Microsoft SQL Server, and the new,
MySQL-compatible Amazon Aurora DB engine (for
information, see Aurora on Amazon RDS).
 In addition to the security in your database package,
you can help control who can access yourRDS
databases by using AWSIAM to define users and
permissions. You can also help protect your
databases by putting themin a virtual private cloud.
3.1.2.1 Amazon RDS Components
1. DB Instances.
The basic building block of Amazon RDS is the DB
instance.A DB instance is an isolated database environment
in the cloud. A DB instance can contain multiple user-created
databases,and you can access it by using the same tools and
applications that you use with a stand-alone database instance.
You can create and modify a DB instance by using the
Amazon AWS command line interface, the Amazon RDS
API, or the AWS Management Console.
Each DB instance runs a DB engine. Amazon RDS currently
supports the MySQL, MariaDB, PostgreSQL, Oracle, and
Microsoft SQL Server DB engines. Each DB engine has its
own supported features,and each version of a DB engine may
include specific features. Additionally, each DB engine has a
set of parameters in a DB parameter group that control the
behavior of the databases that it manages.
The computation and memory capacity of a DB instance is
determined by its DB instance class.You can select the DB
instance that best meets yourneeds.If yourneeds change over
time, you can change DB instances.
For each DB instance, you can select from 5 GB to 6 TB of
associated storage capacity.Each DB instance class has
minimum and maximum storage requirements for the DB
instances that are created from it. It’s important to have
sufficient storage so that your databases have roomto grow
and that features for the DB engine have room to write content
or log entries.
DB instance storage comes in three types:Magnetic, General
Purpose (SSD), and Provisioned IOPS (SSD). They differ in
performance characteristics and price, allowing you to tailor
your storage performance and cost to the needs of your
database.
You can run a DB instance on a virtual private cloud using
Amazon's Virtual Private Cloud (VPC) service. When you use
a virtual private cloud, you have control over your virtual
networking environment: you can select your own IP address
range, create subnets,and configure routing and access
control lists. The basic functionality of Amazon RDS is the
same whether it is running in a VPC or not; Amazon RDS
manages backups,software patching,automatic failure
detection, and recovery. There is no additional cost to run
your DB instance in a VPC.
2. Regions Availability.
Amazon cloud computing resources are housed in
highly available data center facilities in different areas of the
world (for example, North America, Europe, or Asia). Each
data centerlocation is called a region.
Each region contains multiple distinct locations called
Availability Zones,or AZs.Each Availability Zone is
engineered to be isolated from failures in otherAvailability
Zones,and to provide inexpensive, low-latency network
connectivity to other Availability Zones in the same region.
By launching instances in separate Availability Zones,you
can protect your applications from the failure of a single
location.
You can run your DB instance in several Availability Zones,
an option called a Multi-AZ deployment. When you select this
option, Amazon automatically provisions and maintains a
synchronous standby replica of yourDB instance in a
different Availability Zone. The primary DB instance is
synchronously replicated across Availability Zones to the
standby replica to provide data redundancy,failover support,
eliminate I/O freezes, and minimize latency spikes during
systembackups.
3. Security Groups.
A security group controls the access to a DB instance.It
does so by allowing access to IP address ranges or Amazon
EC2 instances that you specify.
Amazon RDS uses DB security groups,VPC security groups,
and EC2 security groups.In simple terms, a DB security
group controls access to a DB instance that is not in a VPC, a
VPC security group controls access to a DB instance inside a
VPC, and an Amazon EC2 security group controls access to
an EC2 instance and can be used with a DB instance. For
more information about security groups,see Amazon RDS
Security Groups.
4. DB Parameter Groups
You manage the configuration of a DB engine by using a
DB parameter group.A DB parameter group contains engine
configuration values that can be applied to one or more DB
instances of the same instance type. Amazon RDS applies a
default DB parameter group if you don’t specify a DB
parameter group when you create a DB instance.The default
group contains defaults for the specific database engine and
instance class of the DB instance.
5. DB Option Group
Some DB engines offer tools that simplify managing
your databases and making the best use of your data. Amazon
RDS makes such tools available through option groups.
Examples of available options are Oracle Application Express
(APEX), SQL Server Transparent Data Encryption, and
MySQL memcached support.For more information on option
groups,see Working with Option Groups.
3.1.2.2 Available RDS Interfaces
There are several ways that you can interact with
Amazon RDS.
i) Amazon RDS Console
The Amazon RDS console is a simple web-based user
interface. From the console, you can perform almost all tasks
you need to do from the RDS console with no programming
required. To access the Amazon RDS console, sign in to the
AWS Management Console and open the Amazon RDS
console at https://console.aws.amazon.com/rds/.
ii) Command Line Interface
Amazon AWS provides a command line interface that gives
you access to much of the functionality that is available in the
Amazon RDS API. For more information, see the AWS
Command Line Interface Documentation and AWS Command
Line Reference for Amazon RDS.
iii) Programmatic Interfaces
The following table lists the resources that you can use to
access Amazon RDS programmatically.
Table: 1
Resource Description
AWS
SDKs
The AWS SDKs include sample code, libraries,
tools, documentation, and templates. To
Resource Description
download the AWS SDKs, go to AWS Software
Development Kits (SDKs).
Libraries AWS provides libraries, sample code, tutorials,
and other resources for software developers who
prefer to build applications using language-
specific APIs instead of Amazon Relational
Database Service's SOAP and Query APIs.
These libraries provide basic functions (not
included in Amazon Relational Database
Service's SOAP and Query APIs), such as
request authentication, request retries, and error
handling so you can get started more easily.
Libraries and resources are available for the
following languages:
 Java
 PHP
 Python
 Ruby
 Windows and .NET
For libraries and sample code in all languages,
see Sample Code & Libraries.
Amazon
RDS API
If you prefer, you can code directly to the
Amazon RDS API. For more information,
see Amazon RDS Application Programming
Interface (API), and see the Amazon Relational
Database Service API Reference.
3.1.2.3 Pricing of Amazon RDS
When you use Amazon RDS, you pay only for what you
use,and there are no minimum or setup fees. You are billed
according to the following criteria.
 Instance class – Pricing is based on the class (e.g.,
micro, small, large, xlarge) of the DB instance
consumed.
 Running time – You are billed by the instance-hour,
which is equivalent to a single instance running for
an hour. For example, both a single instance running
for two hours and two instances running for one hour
consume 2 instance-hours.If a DB instance runs for
only part of an hour, you are charged for a full
instance-hour.
 Storage – The storage capacity that you have
provisioned to your DB instance is billed per GB per
month. If you scale your provisioned storage
capacity within the month, yourbill will be pro-
rated.
 I/O requests per month – Total number of storage I/O
requests that you have made in a billing cycle.
 Backup storage – Backup storage is the storage that
is associated with automated database backups and
any active database snapshotsthat you have taken.
Increasing your backup retention period or taking
additional database snapshotsincreases the backup
storage consumed by your database.Amazon RDS
provides backup storage up to 100% of your
provisioned database storage at no additional charge.
For example, if you have 10 GB-months of
provisioned database storage,we will provide up to
10 GB-months of backup storage at no additional
charge. Most databases require less raw storage for a
backup than for the primary dataset,so if you don’t
keep multiple backups, you will never pay for
backup storage.Backup storage is free only for
active DB instances.
 Data transfer –Internet data transfer in and out of
your DB instance.
In addition to regular RDS pricing, you can purchase reserved
DB instances.Reserved DB instances let you make a one-time
up-front payment for a DB instance and reserve the DB
instance for a one- or three-year term at significantly lower
rates. For more information on reserved DB instances,
see Working with Reserved DB Instances
3.2 NoSQL
NoSQL is a term used to describe high-performance,
non-relational databases. NoSQL databases utilize a variety
of data models, including document, graph, key-value, and
columnar. NoSQL databases are widely recognized for ease
of development, scalable performance, high availability, and
resilience. MongoDb, Amazon DynamoDB and Cassandra
uses the NoSQL database.
3.2.1 Why to adopt NoSQL
At a more granular level, enterprises are adopting
NoSQL in order to address a new set of technical challenges
and requirements that are the result of five major trends:
Table: 2
Digital Economy Trend Requirements
#1: More customers are going
online
 Scaling to support
thousands ifnot millions
of users
 Meeting UX
requirements with
consistent high
performance
 Maintaining availability
24 hours a day, 7 days a
week
#2: The Internet is connecting
everything
 Supporting many
different things with
different data structures
 Supporting
hardware/software
updates,generating
different data
 Supporting continuous
streams of real-time data
#3: Big Data is getting bigger Storing customer
generated semi-
structured/unstructured
data
 Storing different types of
data from different
sources,together
 Storing data generated
by thousands/millions of
customers/things
#4: Applications are moving to
the cloud
 Scaling on demand to
support more
customers, store more
data
 Operating applications
on a global scale -
customers worldwide
 Minimizing
infrastructure costs,
achieving a faster time to
market
#5: The world has gone mobile Creating “offline first”
apps - network
connection not required
 Synchronizing mobile
data with remote
databases in the cloud
 Supporting multiple
mobile platforms with a
single backend
3.2.2 Types of NoSQL Databases on AWS
i) Columnar Databases: Columnar databases are optimized
for reading and writing columns of data as opposed to rows of
data. Column-oriented storage for database tables is an
important factor in analytic query performance because it
drastically reduces the overall disk I/O requirements and
reduces the amount of data you need to load fromdisk.
ii) Document Databases: Document databases are designed
to store semi-structured data as documents, typically in JSON
or XML format. Unlike traditional relational databases,the
schema for each non-relational (NoSQL) document can vary,
giving you more flexibility in organizing and storing
application data and reducing storage required for optional
values.
iii) Graph Databases: Graph databases store vertices and
directed links called edges.Graphs can be built on relational
(SQL) and non-relational (NoSQL) databases.Vertices and
edges can each have properties associated with them. The
diagram below depicts a simple graph of relationships
between friends and their interests.
iv) In-Memory Key-Value Stores: In-memory key-value
stores are NoSQL databases optimized for read-heavy
application workloads (such as social networking, gaming,
media sharing and Q&A portals) or compute-intensive
workloads (such as a recommendation engine). In-memory
caching improves application performance by storing critical
pieces of data in memory for low-latency access.
3.2.3 SQL vs NoSQL Terminology
Table : 3
SQL
MongoD
B
DynamoD
B
Cassandra
Couchbas
e
Table
Collectio
n
Table Table
Data
Bucket
Row
Documen
t
Item Row Document
Colum
n
Field Attribute Column Field
Primar
y Key
ObjectId
Primary
Key
Primary
Key
Document
ID
Index Index
Secondary
Index
Index Index
View View
Global
Secondary
Index
Materialize
d View
View
Nested
Table
or
Object
Embedde
d
Documen
t
Map Map Map
Array Array List List List
3.3 Amazon DynamoDB
Amazon DynamoDB is a fast and flexible NoSQL
database service for all applications that need consistent,
single-digit millisecond latency at any scale. It is a fully
managed cloud database and supports both document and key-
value store models. Its flexible data model and reliable
performance make it a great fit for mobile, web, gaming, ad
tech, IoT, and many other applications. According to
Forrester, Amazon DynamoDB is the most popular NoSQL
cloud database.You can do the following things using the
AWS:-
Ad Tech: Amazon DynamoDB is a NoSQL database service
that delivers consistent,single-digit millisecond latency at any
scale. DynamoDB provides the performance and availability
you need to create real-time bidding (RTB) platforms and
recommendation engines.
Gaming: You can create responsive games for mobile,
console,and desktop with DynamoDB. Store and
query Amazon Lumberyard game data such as player state,
high scores,or world dynamic content through Cloud Canvas.
Developing a successfulmobile game is about more than just
the game: DynamoDB integrates with the AWS Mobile
SDK and a broad set of AWS services for user authentication,
downloadable content,and social features.
Fig: 2
4. Conclusions
Databases are becoming increasingly important as
companies realize that they data they’ve been collecting
contains countless business opportunities. But the freeing up
of company personnel to explore and exploit these
opportunities means that the burdens of database management
need to fall elsewhere. Amazon RDS was built for exactly
this situation: unloading the drudgery of traditional DBMS
from a company’s data experts and allowing themto focus on
adding value to their data and their company. DynamoDB has
provided the desired levels of availability and performance
and has been successful in handling server failures, data
center failures and network partitions. DynamoDB is
incrementally scalable and allows service owners to scale up
and down based on their current request load. DynamoDB
allows service owners to customize their storage system to
meet their desired performance and durability.
4 References
[1] https://aws.amazon.com/relational-database/
[2] https://www.google.com/url?sa=t&rct=j&q=&esrc=s
&source=web&cd=6&cad=rja&uact=8&ved=0ahUKEwjxpY
W6iq_SAhVDxCYKHarcDpYQFgg2MAU&url=http%3A%2
F%2Flosnuevosguerreros.org%2Fpluginfile.php%2F16%2Fm
od_glossary%2Fattachment%2F461%2FWP_AWS_IntroToA
mazonRDS.pdf&usg=AFQjCNGZ7g07rtKflawkQe3MLVYN
9u-xMg&bvm=bv.148073327,d.eWE
[3] http://www.datastax.com/dbas-guide-to-nosq
[4] https://aws.amazon.com/products/databases/
[5] http://searchsqlserver.techtarget.com/definition/relationa
l-database
[6] https://d0.awsstatic.com/whitepapers/aws-rdbms-oracle

Amazon web services

  • 1.
    Amazon Web Services[Database] A. Nishant Bhardwaj Computer Science and Mathematics, Arkansas State University, Jonesboro, Arkansas, U.S.A Abstract - Amazon Web Services provides fully managed relational and NoSQL database services, as well as fully managed in-memory caching as a service and a fully managed data-warehouse service. In this report we will put a glance on the the services AWS database provides to its clients/customers. These database services are fully managed and can be launched in minutes with just a few clicks. AWS database services include Amazon Relational Database Service (Amazon RDS), with support for six commonly used database engines, Amazon Aurora, a MySQL-compatible relational database with five times the performance, Amazon DynamoDB, a fast and flexible NoSQL database service, Amazon Redshift, a petabyte-scale data warehouse service, and Amazon Elasticache, an in-memory cache service. AWS also provides the AWS Database Migration Service, a service which makes it easy and inexpensive to migrate your databases to AWS cloud. Keywords: Amazon RDS, Dynamo DB, 1 Introduction In 2006, Amazon Web Services (AWS) began offering IT infrastructure services to businesses in the form of web services—now commonly known as cloud computing. One of the key benefits of cloud computing is the opportunity to replace up-front capital infrastructure expenses with low variable costs that scale with your business. With the cloud, businesses no longer need to plan for and procure servers and other IT infrastructure weeks or months in advance. Instead, they can instantly spin up hundreds orthousands of servers in minutes and deliver results faster. Today, Amazon Web Services provides a highly reliable, scalable, low-cost infrastructure platform in the cloud that powers hundreds of thousands of businesses in 190 countries around the world. This white paper is an introduction to the AWS cloud computing platform. It discusses the advantages of cloud computing and the fundamentals of AWS. It provides an overview of the AWS services that comprise the platform. 2 Cloud Computing Cloud computing is the on-demand delivery of compute power, database storage, applications, and other IT resources through a cloud services platformvia the internet with pay-as- you-go pricing. Whether you are running applications that share photos to millions of mobile users or you’re supporting the critical operations of your business, a cloud services platform provides rapid access to flexible and low cost IT resources. With cloud computing, you can provision exactly the right type and size of computing resources you need to power your newest bright idea or operate your IT department. You can access as many resources as you need, almost instantly, and only pay for what you use. 2.1 The Differences that Distinguish AWS AWS is readily distinguished from other vendors in the traditional IT computing landscape because it is: 1.Flexible. AWS enables organizations to use the programming models, operating systems, databases, and architectures with which they are already familiar. In addition, this flexibility helps organizations mix and match architectures in order to serve their diverse business needs. 2.Cost-effective. With AWS, organizations pay only for what they use, without up-front or long-term commitments. 3.Scalable and elastic. Organizations can quickly add and subtract AWS resources to their applications in order to meet customer demand and manage costs. 4.Secure. In order to provide end-to-end security and end-to- end privacy, AWS builds services in accordance with security best practices, provides the appropriate security features in those services, and documents how to use those features. 5.Experienced. When using AWS, organizations can leverage Amazon’s more than fifteen years of experience delivering large-scale, global infrastructure in a reliable, secure fashion.
  • 2.
    2.2 Amazon WebServices Cloud Platform Fig: 1 3 Amazon Database Amazon Web Services provides fully managed relational and NoSQL database services, as well as fully managed in-memory caching as a service and a fully managed petabyte-scale data-warehouse service. Or, you can operate your own database in the cloud on Amazon EC2 and Amazon EBS. 3.1 Relational Database A relational database is a collection of data items with pre-defined relationships between them. These data items are organized as a set tables of columns and rows. Each row in the table represents a collection of related values of a one object or entity. Tables are used to hold information about the objects to be represented in the database. Each column in a table holds a certain kind of data and a field stores the actual value of an attribute. The row in each table could be identified with a unique key identifying and row among multiple tables can be made related using foreign keys. This data can be accessed in many different ways without reorganizing the database tables themselves. 3.1.1 Important aspects of Relational Database 1.SQL. Structured Query Language is the primary interface used to communicate with Relational Databases. The standard ANSI SQL is supported by all popular relational database engines. SQL is used to add, update or deleting rows of data, retrieving subsets of data for transaction processing and analytics applications, and to manage all aspects of the database. 2. Data Integrity. Data integrity is the overall completeness, accuracy and consistency of data. Relational databases use a set of constraints to enforce data integrity in the database. These include primary Keys, Foreign Keys, ‘Not NULL’ constraint, ‘Unique’ constraint, ‘Default’ constraint and ‘Check’ constraints. These integrity constraints help enforce business rules on data in the tables to ensure the accuracy and reliability of the data. 3. Transactions. A database transaction is one or more SQL statements that are executed as a sequence of database operations that form a single logical unit of work. Transactions provide an "all-or-nothing" proposition, the entire transaction must complete as a single unit and be written to the database or none of the individual components of the transaction should go through. In the relation database terminology, a transaction results in a COMMIT or a ROLLBACK. Each transaction is treated in a coherent and reliable way independent of other transactions. 4. ACID Compliance. All databse transactions must ACID compliant or be atomic, consistent, isolated and durable to ensure data integrity. Atomicity requires that either transaction as a whole be successfully executed or if a part of the transaction fails, then the entire transaction be invalidated. Consistency mandates the data written to the database as part of the transaction must adhere to all defined rules, and restrictions including constraints, cascades, and triggers. Isolation is critical to achieving concurrency control and makes sure each transaction is independent unto itself. Durability requires that all of the changes made to the database be permanent once a transaction is successfully completed. 3.1.2 Amazon RDS Amazon Relational Database Service (Amazon RDS) is a web service that makes it easier to set up, operate, and scale a relational database in the cloud. It provides cost-efficient, resizeable capacity for an industry-standard relational database and manages common database administration tasks. The following are the benefits of using Amazon RDS:  When you buy a server, you get CPU, memory, storage,and IOPS, all bundled together. With Amazon RDS, these are split apart so that you can scale them independently. So, for example, if you need more CPU, less IOPS, or more storage,you can easily allocate them.  Amazon RDS manages backups,software patching, automatic failure detection, and recovery.
  • 3.
     In orderto deliver a managed service experience, Amazon RDS does not provide shell access to DB instances,and it restricts access to certain system procedures and tables that require advanced privileges.  You can have automated backups performed when you need them, or create your own backup snapshot. These backups can be used to restore a database,and the Amazon RDS restore process works reliably and efficiently.  You can get high availability with a primary instance and a synchronous secondary instance that you can failover to when problems occur. You can also use MySQL, MariaDB, or PostgreSQL Read Replicas to increase read scaling.  You can use the database products you are already familiar with: MySQL, MariaDB, PostgreSQL, Oracle, Microsoft SQL Server, and the new, MySQL-compatible Amazon Aurora DB engine (for information, see Aurora on Amazon RDS).  In addition to the security in your database package, you can help control who can access yourRDS databases by using AWSIAM to define users and permissions. You can also help protect your databases by putting themin a virtual private cloud. 3.1.2.1 Amazon RDS Components 1. DB Instances. The basic building block of Amazon RDS is the DB instance.A DB instance is an isolated database environment in the cloud. A DB instance can contain multiple user-created databases,and you can access it by using the same tools and applications that you use with a stand-alone database instance. You can create and modify a DB instance by using the Amazon AWS command line interface, the Amazon RDS API, or the AWS Management Console. Each DB instance runs a DB engine. Amazon RDS currently supports the MySQL, MariaDB, PostgreSQL, Oracle, and Microsoft SQL Server DB engines. Each DB engine has its own supported features,and each version of a DB engine may include specific features. Additionally, each DB engine has a set of parameters in a DB parameter group that control the behavior of the databases that it manages. The computation and memory capacity of a DB instance is determined by its DB instance class.You can select the DB instance that best meets yourneeds.If yourneeds change over time, you can change DB instances. For each DB instance, you can select from 5 GB to 6 TB of associated storage capacity.Each DB instance class has minimum and maximum storage requirements for the DB instances that are created from it. It’s important to have sufficient storage so that your databases have roomto grow and that features for the DB engine have room to write content or log entries. DB instance storage comes in three types:Magnetic, General Purpose (SSD), and Provisioned IOPS (SSD). They differ in performance characteristics and price, allowing you to tailor your storage performance and cost to the needs of your database. You can run a DB instance on a virtual private cloud using Amazon's Virtual Private Cloud (VPC) service. When you use a virtual private cloud, you have control over your virtual networking environment: you can select your own IP address range, create subnets,and configure routing and access control lists. The basic functionality of Amazon RDS is the same whether it is running in a VPC or not; Amazon RDS manages backups,software patching,automatic failure detection, and recovery. There is no additional cost to run your DB instance in a VPC. 2. Regions Availability. Amazon cloud computing resources are housed in highly available data center facilities in different areas of the world (for example, North America, Europe, or Asia). Each data centerlocation is called a region. Each region contains multiple distinct locations called Availability Zones,or AZs.Each Availability Zone is engineered to be isolated from failures in otherAvailability Zones,and to provide inexpensive, low-latency network connectivity to other Availability Zones in the same region. By launching instances in separate Availability Zones,you can protect your applications from the failure of a single location. You can run your DB instance in several Availability Zones, an option called a Multi-AZ deployment. When you select this option, Amazon automatically provisions and maintains a synchronous standby replica of yourDB instance in a different Availability Zone. The primary DB instance is synchronously replicated across Availability Zones to the standby replica to provide data redundancy,failover support, eliminate I/O freezes, and minimize latency spikes during systembackups. 3. Security Groups. A security group controls the access to a DB instance.It does so by allowing access to IP address ranges or Amazon EC2 instances that you specify. Amazon RDS uses DB security groups,VPC security groups, and EC2 security groups.In simple terms, a DB security group controls access to a DB instance that is not in a VPC, a VPC security group controls access to a DB instance inside a VPC, and an Amazon EC2 security group controls access to an EC2 instance and can be used with a DB instance. For
  • 4.
    more information aboutsecurity groups,see Amazon RDS Security Groups. 4. DB Parameter Groups You manage the configuration of a DB engine by using a DB parameter group.A DB parameter group contains engine configuration values that can be applied to one or more DB instances of the same instance type. Amazon RDS applies a default DB parameter group if you don’t specify a DB parameter group when you create a DB instance.The default group contains defaults for the specific database engine and instance class of the DB instance. 5. DB Option Group Some DB engines offer tools that simplify managing your databases and making the best use of your data. Amazon RDS makes such tools available through option groups. Examples of available options are Oracle Application Express (APEX), SQL Server Transparent Data Encryption, and MySQL memcached support.For more information on option groups,see Working with Option Groups. 3.1.2.2 Available RDS Interfaces There are several ways that you can interact with Amazon RDS. i) Amazon RDS Console The Amazon RDS console is a simple web-based user interface. From the console, you can perform almost all tasks you need to do from the RDS console with no programming required. To access the Amazon RDS console, sign in to the AWS Management Console and open the Amazon RDS console at https://console.aws.amazon.com/rds/. ii) Command Line Interface Amazon AWS provides a command line interface that gives you access to much of the functionality that is available in the Amazon RDS API. For more information, see the AWS Command Line Interface Documentation and AWS Command Line Reference for Amazon RDS. iii) Programmatic Interfaces The following table lists the resources that you can use to access Amazon RDS programmatically. Table: 1 Resource Description AWS SDKs The AWS SDKs include sample code, libraries, tools, documentation, and templates. To Resource Description download the AWS SDKs, go to AWS Software Development Kits (SDKs). Libraries AWS provides libraries, sample code, tutorials, and other resources for software developers who prefer to build applications using language- specific APIs instead of Amazon Relational Database Service's SOAP and Query APIs. These libraries provide basic functions (not included in Amazon Relational Database Service's SOAP and Query APIs), such as request authentication, request retries, and error handling so you can get started more easily. Libraries and resources are available for the following languages:  Java  PHP  Python  Ruby  Windows and .NET For libraries and sample code in all languages, see Sample Code & Libraries. Amazon RDS API If you prefer, you can code directly to the Amazon RDS API. For more information, see Amazon RDS Application Programming Interface (API), and see the Amazon Relational Database Service API Reference. 3.1.2.3 Pricing of Amazon RDS When you use Amazon RDS, you pay only for what you use,and there are no minimum or setup fees. You are billed according to the following criteria.  Instance class – Pricing is based on the class (e.g., micro, small, large, xlarge) of the DB instance consumed.  Running time – You are billed by the instance-hour, which is equivalent to a single instance running for an hour. For example, both a single instance running for two hours and two instances running for one hour consume 2 instance-hours.If a DB instance runs for only part of an hour, you are charged for a full instance-hour.  Storage – The storage capacity that you have provisioned to your DB instance is billed per GB per month. If you scale your provisioned storage capacity within the month, yourbill will be pro- rated.  I/O requests per month – Total number of storage I/O requests that you have made in a billing cycle.  Backup storage – Backup storage is the storage that is associated with automated database backups and
  • 5.
    any active databasesnapshotsthat you have taken. Increasing your backup retention period or taking additional database snapshotsincreases the backup storage consumed by your database.Amazon RDS provides backup storage up to 100% of your provisioned database storage at no additional charge. For example, if you have 10 GB-months of provisioned database storage,we will provide up to 10 GB-months of backup storage at no additional charge. Most databases require less raw storage for a backup than for the primary dataset,so if you don’t keep multiple backups, you will never pay for backup storage.Backup storage is free only for active DB instances.  Data transfer –Internet data transfer in and out of your DB instance. In addition to regular RDS pricing, you can purchase reserved DB instances.Reserved DB instances let you make a one-time up-front payment for a DB instance and reserve the DB instance for a one- or three-year term at significantly lower rates. For more information on reserved DB instances, see Working with Reserved DB Instances 3.2 NoSQL NoSQL is a term used to describe high-performance, non-relational databases. NoSQL databases utilize a variety of data models, including document, graph, key-value, and columnar. NoSQL databases are widely recognized for ease of development, scalable performance, high availability, and resilience. MongoDb, Amazon DynamoDB and Cassandra uses the NoSQL database. 3.2.1 Why to adopt NoSQL At a more granular level, enterprises are adopting NoSQL in order to address a new set of technical challenges and requirements that are the result of five major trends: Table: 2 Digital Economy Trend Requirements #1: More customers are going online  Scaling to support thousands ifnot millions of users  Meeting UX requirements with consistent high performance  Maintaining availability 24 hours a day, 7 days a week #2: The Internet is connecting everything  Supporting many different things with different data structures  Supporting hardware/software updates,generating different data  Supporting continuous streams of real-time data #3: Big Data is getting bigger Storing customer generated semi- structured/unstructured data  Storing different types of data from different sources,together  Storing data generated by thousands/millions of customers/things #4: Applications are moving to the cloud  Scaling on demand to support more customers, store more data  Operating applications on a global scale - customers worldwide  Minimizing infrastructure costs, achieving a faster time to market #5: The world has gone mobile Creating “offline first” apps - network connection not required  Synchronizing mobile data with remote databases in the cloud  Supporting multiple mobile platforms with a single backend 3.2.2 Types of NoSQL Databases on AWS i) Columnar Databases: Columnar databases are optimized for reading and writing columns of data as opposed to rows of data. Column-oriented storage for database tables is an important factor in analytic query performance because it drastically reduces the overall disk I/O requirements and reduces the amount of data you need to load fromdisk. ii) Document Databases: Document databases are designed to store semi-structured data as documents, typically in JSON or XML format. Unlike traditional relational databases,the schema for each non-relational (NoSQL) document can vary, giving you more flexibility in organizing and storing application data and reducing storage required for optional values.
  • 6.
    iii) Graph Databases:Graph databases store vertices and directed links called edges.Graphs can be built on relational (SQL) and non-relational (NoSQL) databases.Vertices and edges can each have properties associated with them. The diagram below depicts a simple graph of relationships between friends and their interests. iv) In-Memory Key-Value Stores: In-memory key-value stores are NoSQL databases optimized for read-heavy application workloads (such as social networking, gaming, media sharing and Q&A portals) or compute-intensive workloads (such as a recommendation engine). In-memory caching improves application performance by storing critical pieces of data in memory for low-latency access. 3.2.3 SQL vs NoSQL Terminology Table : 3 SQL MongoD B DynamoD B Cassandra Couchbas e Table Collectio n Table Table Data Bucket Row Documen t Item Row Document Colum n Field Attribute Column Field Primar y Key ObjectId Primary Key Primary Key Document ID Index Index Secondary Index Index Index View View Global Secondary Index Materialize d View View Nested Table or Object Embedde d Documen t Map Map Map Array Array List List List 3.3 Amazon DynamoDB Amazon DynamoDB is a fast and flexible NoSQL database service for all applications that need consistent, single-digit millisecond latency at any scale. It is a fully managed cloud database and supports both document and key- value store models. Its flexible data model and reliable performance make it a great fit for mobile, web, gaming, ad tech, IoT, and many other applications. According to Forrester, Amazon DynamoDB is the most popular NoSQL cloud database.You can do the following things using the AWS:- Ad Tech: Amazon DynamoDB is a NoSQL database service that delivers consistent,single-digit millisecond latency at any scale. DynamoDB provides the performance and availability you need to create real-time bidding (RTB) platforms and recommendation engines. Gaming: You can create responsive games for mobile, console,and desktop with DynamoDB. Store and query Amazon Lumberyard game data such as player state, high scores,or world dynamic content through Cloud Canvas. Developing a successfulmobile game is about more than just the game: DynamoDB integrates with the AWS Mobile SDK and a broad set of AWS services for user authentication, downloadable content,and social features. Fig: 2 4. Conclusions Databases are becoming increasingly important as companies realize that they data they’ve been collecting contains countless business opportunities. But the freeing up of company personnel to explore and exploit these opportunities means that the burdens of database management need to fall elsewhere. Amazon RDS was built for exactly this situation: unloading the drudgery of traditional DBMS from a company’s data experts and allowing themto focus on adding value to their data and their company. DynamoDB has provided the desired levels of availability and performance and has been successful in handling server failures, data center failures and network partitions. DynamoDB is incrementally scalable and allows service owners to scale up and down based on their current request load. DynamoDB allows service owners to customize their storage system to meet their desired performance and durability.
  • 7.
    4 References [1] https://aws.amazon.com/relational-database/ [2]https://www.google.com/url?sa=t&rct=j&q=&esrc=s &source=web&cd=6&cad=rja&uact=8&ved=0ahUKEwjxpY W6iq_SAhVDxCYKHarcDpYQFgg2MAU&url=http%3A%2 F%2Flosnuevosguerreros.org%2Fpluginfile.php%2F16%2Fm od_glossary%2Fattachment%2F461%2FWP_AWS_IntroToA mazonRDS.pdf&usg=AFQjCNGZ7g07rtKflawkQe3MLVYN 9u-xMg&bvm=bv.148073327,d.eWE [3] http://www.datastax.com/dbas-guide-to-nosq [4] https://aws.amazon.com/products/databases/ [5] http://searchsqlserver.techtarget.com/definition/relationa l-database [6] https://d0.awsstatic.com/whitepapers/aws-rdbms-oracle