Dark Reading is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Perimeter

2/6/2010
04:08 PM
Adrian Lane
Adrian Lane
Commentary
50%
50%

Amazon's SimpleDB Not Your Typical Database

Several cloud providers offer databases specifically designed for cloud deployment. Amazon's SimpleDB, while technically a database, deviates from what most of us recognize as a database platform. Although SimpleDB is still in prerelease beta format, developers have begun designing applications for it.

Several cloud providers offer databases specifically designed for cloud deployment. Amazon's SimpleDB, while technically a database, deviates from what most of us recognize as a database platform. Although SimpleDB is still in prerelease beta format, developers have begun designing applications for it.SimpleDB, like its name implies, is a very simple data repository. It's designed to provide storage and retrieval services with minimal complexity. The core operations are put (insert), select, batch put (bulk upload), and delete. Data can be divided into domains, much like database schemas, but the similarities end there.

This cloud database service is not for transactional systems where data accuracy and integrity are mandatory.

The fundamental difference with SimpleDB is it lacks a schema that defines structure and data types, which relational databases require. The lack of the logical schema and table constructs drastically changes operations.

First, you do not need to define data before you insert it, so you can choose data types dynamically. Second, there are no primary or foreign key requirements to force referential integrity relationships because, quite simply, the concepts of columns and keys do not exist. Data elements are not evaluated for conformity prior to insertion. Third, stored data is automatically indexed, but done in a simple Google-esque manner that does not require the overhead associated with relational indices.

Finally, SimpleDB relies on indexed flat files. Rather than following the model of using a predefined block structure, adhering to a database vendor proprietary format, SimpleDB writes data out to file without imposing a rigid structure. Data need not be clustered physically in the same location on disk to boost performance.

When you strip away all of the relational database management overhead, insertions and queries are much faster. Insertion performance is very fast because there is no processing to perform data integrity, conformity, and consistency checks. Queries by nature are not complex and use a direct indexing system, which quickly locates data that matches query attributes. There are no issues with joining tables together, and much like a Google search, unstructured and dissimilar types of information are quickly located.

Flexibility is also a big advantage. With no need to worry about data types, your application can store different data types without knowing what you will be storing in advance. Applications built on this platform can offer dynamic storage capabilities, and changes to the application or data types do not require restructuring the database. But these advantages in speed, cost of ownership, and programmatic simplicity do have a downside. SimpleDB does not offer transactional consistency support. Database "state" is not guaranteed, and operational processes endemic to most relational databases like "two phased commit" to ensure your data was actually stored are not present. That means if something goes wrong during the insertion or deletion process, then data you meant to store may not be available.

Integrity checks on the data to ensure type, integrity, or range validation are not available. Underlying cloud storage is cheap and readily available, but multitenant (shared) in nature, which may not meet regulatory confidentiality and security requirements.

Amazon SimpleDB is in many ways more like a file system you dump your data into than a traditional relational database platform. As its name implies, it was designed for simplicity. By stripping functions down to the very basic elements of insertion, look-up, and deletion, there is not a lot of overhead to slow things down.

Just keep in mind that this will be very good for file and photo- sharing applications, but SimpleDB is not suitable for transactional systems.

Adrian Lane is an analyst/CTO with Securosis LLC, an independent security consulting practice. Special to Dark Reading. Adrian Lane is a Security Strategist and brings over 25 years of industry experience to the Securosis team, much of it at the executive level. Adrian specializes in database security, data security, and secure software development. With experience at Ingres, Oracle, and ... View Full Bio

Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
Stop Defending Everything
Kevin Kurzawa, Senior Information Security Auditor,  2/12/2020
Small Business Security: 5 Tips on How and Where to Start
Mike Puglia, Chief Strategy Officer at Kaseya,  2/13/2020
5 Common Errors That Allow Attackers to Go Undetected
Matt Middleton-Leal, General Manager and Chief Security Strategist, Netwrix,  2/12/2020
Register for Dark Reading Newsletters
White Papers
Video
Cartoon
Current Issue
6 Emerging Cyber Threats That Enterprises Face in 2020
This Tech Digest gives an in-depth look at six emerging cyber threats that enterprises could face in 2020. Download your copy today!
Flash Poll
How Enterprises Are Developing and Maintaining Secure Applications
How Enterprises Are Developing and Maintaining Secure Applications
The concept of application security is well known, but application security testing and remediation processes remain unbalanced. Most organizations are confident in their approach to AppSec, although others seem to have no approach at all. Read this report to find out more.
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2019-20477
PUBLISHED: 2020-02-19
PyYAML 5.1 through 5.1.2 has insufficient restrictions on the load and load_all functions because of a class deserialization issue, e.g., Popen is a class in the subprocess module. NOTE: this issue exists because of an incomplete fix for CVE-2017-18342.
CVE-2019-20478
PUBLISHED: 2020-02-19
In ruamel.yaml through 0.16.7, the load method allows remote code execution if the application calls this method with an untrusted argument. In other words, this issue affects developers who are unaware of the need to use methods such as safe_load in these use cases.
CVE-2011-2054
PUBLISHED: 2020-02-19
A vulnerability in the Cisco ASA that could allow a remote attacker to successfully authenticate using the Cisco AnyConnect VPN client if the Secondary Authentication type is LDAP and the password is left blank, providing the primary credentials are correct. The vulnerabilities is due to improper in...
CVE-2015-0749
PUBLISHED: 2020-02-19
A vulnerability in Cisco Unified Communications Manager could allow an unauthenticated, remote attacker to conduct a cross-site scripting (XSS) attack on the affected software. The vulnerabilities is due to improper input validation of certain parameters passed to the affected software. An attacker ...
CVE-2015-9543
PUBLISHED: 2020-02-19
An issue was discovered in OpenStack Nova before 18.2.4, 19.x before 19.1.0, and 20.x before 20.1.0. It can leak consoleauth tokens into log files. An attacker with read access to the service's logs may obtain tokens used for console access. All Nova setups using novncproxy are affected. This is rel...