Chapter 9
The Core Database Services

THE AWS CERTIFIED CLOUD PRACTITIONER EXAM OBJECTIVES COVERED IN THIS CHAPTER MAY INCLUDE, BUT ARE NOT LIMITED TO, THE FOLLOWING:

  • Domain 3: Technology
  • images 3.1 Define methods of deploying and operating in the AWS Cloud
  • images 3.3 Identify the core AWS services

images

Introduction

Many applications use databases to store, retrieve, and organize data, so the type of database you choose and how you configure it have a big impact on the performance and availability of such a database-backed application.

In traditional infrastructure, organizations typically installed and configured their own database servers. For example, a business might use a Microsoft SQL Server or Oracle database to store customer information. It’s possible to build and run your own database servers in the cloud, but AWS offers another—and for many, better—option: managed database services.

With a managed database service, you use the AWS Management Console or AWS command line interface (CLI) to provision a database. AWS handles the installation and maintenance of the database software, as well as database backups and replication.

In this chapter, you’ll learn about the following three different managed database services provided by AWS:

  • Relational database service (RDS)
  • DynamoDB
  • Redshift

Database Models

A database can use a relational or nonrelational model. The model you choose depends on how your application needs to store, organize, and retrieve data. It’s important to understand that the needs of the application determine the database model you choose, not the other way around.

Most of the technical differences between relational and nonrelational databases are beyond the scope of this book, but in this chapter, you’ll learn the major differences between the two.

Relational Databases

Relational databases have been around a long time, and even if you’ve never created or maintained one, you’re already familiar with its fundamental concepts. A relational database is analogous to a spreadsheet that contains columns and rows. In a relational database, columns are called attributes, and rows are called records. Both are stored in a table, and a database can contain multiple tables. Table 9.1 shows what a simple relational database table might look like.

TABLE 9.1 The Customers Table

Customer ID Last Name First Name Last Purchase
1670 Isaacson Callan 08/29/18
1680 Ashland Chessa 12/15/16
1690 Colson Charlie 02/20/12
1700 Charlotte Linda 05/09/17

Like a spreadsheet, a relational database table has a defined number of columns. Where spreadsheets and relational databases differ is that each row in a relational database table must be unique. One way of ensuring uniqueness of rows is by defining a primary key—a column that must be unique and present in each record. In Table 9.1, the primary key would be the Customer ID column.

 A primary key can consist of multiple columns.

Another way that spreadsheets and relational databases differ is that you must predefine the type of data that can be stored in each column. For example, a column for storing a person’s birthdate would be restricted to storing only numbers. Because of these requirements, relational databases are ideal for storing structured data that follows a predictable, well-defined format.

An advantage of storing structured data in a relational database is that you can quickly search an entire database for specific values. You can also retrieve data from different tables and combine that data into virtually any format you can imagine. For example, you can search for all customers with the last name Smith who have made a purchase in the last 90 days. This sort of query power is why many application developers choose relational databases. Relational databases are ideal for performing complex analytics and generating reports against large data sets. Such uses require multiple complex queries, and this is where relational databases excel.

As a rule, the larger the database and the more complex the query, the longer it takes to retrieve the data you’re looking for. Database administrators frequently tune or optimize databases to ensure the best possible performance. Longer query times and increased maintenance are the price you pay for flexible queries.

Structured Query Language

Relational databases use the Structured Query Language (SQL). You can use SQL statements to create databases and tables, as well as to read and write data. You can also perform tuning and maintenance tasks using SQL. Not surprisingly, relational databases are often called SQL databases for short.

Although you don’t need to know how to use SQL, you should be familiar with the following two SQL statements, which come up frequently in conversations around relational databases. If you’re interested in learning more about SQL, the SQL tutorial at https://www.w3schools.com/sql is a great place to start.

The SELECT Statement

The SELECT statement reads data from the database and controls how it’s formatted. To combine data from different tables, you add a JOIN clause to the SELECT statement. An application that uses a relational database will execute at least one SELECT statement every time it retrieves data from a database.

The INSERT Statement

The INSERT statement writes data to a table. You can think of this as programmatically adding data to individual cells in a spreadsheet. When an application writes data to a database, it uses the INSERT statement to do so.

Nonrelational (No-SQL) Databases

Relational databases are wildly popular, but because of their restrictions, they’re also overly complex for applications that don’t need to store structured data. Also, relational databases often perform poorly when put under the strain of handling thousands of reads or writes per second.

Nonrelational databases were developed to provide a fast alternative for applications that need to perform tens of thousands of reads or writes per second. In addition to being able to handle these high transaction rates, nonrelational databases let you store data that doesn’t have a well-defined, predictable structure. Such data is often called unstructured data, in contrast to the structure imposed on data by a relational database. Because of their unstructured nature, nonrelational or no-SQL databases are said to be schemaless.

Nonrelational databases also store information in tables; tables are sometimes called collections, and each row or record is called an item. Nonrelational databases don’t require you to specify in advance all the types of data you’ll store. The only thing you have to define in advance is a primary key to uniquely identify each item. For example, to store customer data in a table, you might use a unique customer ID number as the primary key.

In exchange for the flexibility of storing unstructured data, the types of queries you can perform against that data are more limited. Nonrelational databases are designed to let you query items based on the primary key. Because the rest of the data doesn’t follow a predictable structure, a particular piece of data could be anywhere in the database. Hence, trying to query against any other data requires searching through every item in the entire table—a process that gets slower as the table grows. Nonrelational databases are best suited for applications that need to perform just a few well-defined queries.

Amazon Relational Database Service

The Amazon Relational Database Service (RDS) is Amazon’s managed relational database service. RDS lets you provision a number of popular relational database management systems (RDBMSs) including Microsoft SQL Server, Oracle, MySQL, and PostgreSQL.

You can always install and configure your own database server on an EC2 instance. But RDS offers several advantages over this. When you create an RDS database instance, Amazon sets up one or more compute instances and takes care of installing and configuring the RDBMS of your choice. These compute instances are not EC2 instances that you can secure shell (SSH) into, but they are connected to a virtual private cloud (VPC) of your choice, allowing your applications running on AWS or on-premises to take full advantage of an RDS-hosted database. Like EC2 instances, RDS instances use Elastic Block Service (EBS) volumes for storage.

To achieve the level of performance and availability you need, you can choose a multi-Availability Zone (multi-AZ) deployment to have database instances in multiple Availability Zones. RDS can also perform manual or automatic EBS snapshots that you can easily restore to new RDS instances. RDS can also handle the hard work of installing patches and upgrades during scheduled maintenance windows.

Database Engines

When you create an RDS instance, you must choose a database engine, which is the specific RDBMS that will be installed on your instance. You can have only one database engine per instance, but you can provision multiple instances if need be. Amazon RDS supports the following six database engines:

  • MySQL
  • MariaDB
  • Oracle
  • PostgreSQL
  • Microsoft SQL Server
  • Amazon Aurora

With the exception of Amazon Aurora, these database engines are either open source or commercially available products found in many data center environments. Amazon Aurora is a proprietary database designed for RDS, but it’s compatible with existing MySQL and PostgreSQL databases. Being able to use RDS to deploy an RDBMS that you’re already familiar with makes migrating such databases from on-premises to RDS much easier.

Licensing

Depending on the database engine you choose, you must choose one of two licensing options: license included or bring your own license (BYOL):

License included The license is included in the pricing for each RDS instance. The Microsoft SQL Server and Oracle database engine options offer this license model. The free database engines—MariaDB, MySQL, and PostgreSQL—exclusively use the license included model.

Bring your own license In this model, you must provide your own license to operate the database engine you choose. Unlike the license-included option, licensing costs are not built into RDS pricing. This model is currently available only for Oracle databases.

Instance Classes

Implementing a relational database—even one backed by RDS—requires some capacity planning to ensure the database gives you the level of availability and performance your application needs.

When you deploy an RDS instance, you must choose a database instance class that defines the number of virtual CPUs (vCPU), the amount of memory, and the maximum network and storage throughput the instance can support. There are three instances classes you can choose from: Standard, Memory Optimized, and Burstable Performance.

Standard

The Standard instance class will meet the requirements of most applications. The latest-generation Standard instance class offers the following specs:

  • Between 2 and 96 vCPU
  • 8–384 GB memory

Memory Optimized

The Memory Optimized instance class is for applications with the most demanding database requirements. This class offers the most disk throughput and network bandwidth. The latest-generation instance class provides the following:

  • Between 4 and 128 vCPU
  • 122–3,904 GB memory

Database instances use EBS storage. Both the Standard and Memory Optimized instance class types are EBS-optimized, meaning they provide dedicated bandwidth for transfers to and from EBS storage.

Burstable Performance

The Burstable Performance instance class is for nonproduction databases that have minimal performance requirements, such as those for test and development purposes. The latest-generation Burstable Performance instance class has the lowest network bandwidth and disk throughput and offers the following:

  • Between 2 and 8 vCPU
  • 1–32 GB memory

It can be difficult to predict exactly how many RDS instances you need and how much compute power, memory, and network and storage throughput each of those instances needs. Thankfully, RDS makes it easy to right-size your database deployments in two ways: scaling vertically and scaling horizontally.

Scaling Vertically

Scaling vertically refers to changing the way resources are allocated to a specific instance. After creating an instance, you can scale up to a more powerful instance class to add more memory or improve computing or networking performance. Or you can scale down to a less powerful class to save on costs.

Storage

The level of performance an RDS instance can achieve depends not only on the instance class you choose but also on the type of storage. New RDS instances use EBS volumes, and the maximum throughput a volume can achieve is a function of both the instance class and the number of input/output operations per second (IOPS) the EBS volume supports. IOPS measure how fast you can read from and write to a volume. Higher IOPS generally means faster reads and writes. RDS offers three types of storage: general-purpose SSD, provisioned IOPS SSD, and magnetic.

General-Purpose SSD

General-purpose SSD storage is good enough for most databases. You can allocate a volume of between 20 GB and 32 TB. The number of IOPS per volume depends on how much storage you allocate. The more storage you allocate, the better your read and write performance will be.

If you’re not sure how much storage to provision, don’t worry. General-purpose SSD volumes can temporarily achieve a higher number of IOPS through a process called bursting. During spikes of heavy read or write activity, bursting will kick in automatically and give your volume an added performance boost. This way, you don’t have to allocate an excessive amount of storage just to get enough IOPS to meet peak demand.

Provisioned IOPS SSD

Provisioned IOPS SSD storage allows you to specify the exact number of IOPS (in thousands) that you want to allocate per volume. Like general-purpose SSD storage, you can allocate up to 32 TB. But unlike general-purpose SSD storage, provisioned IOPS SSD storage doesn’t offer bursting, so it’s necessary to decide beforehand the maximum number of IOPS you’ll need. However, even if your needs change, you can always adjust the number of IOPS later.

Magnetic

Magnetic storage is available for backward compatibility with legacy RDS instances. Unlike the other storage options, it doesn’t use EBS, and you can’t change the size of a magnetic volume after you create it. Magnetic volumes are limited to 4 TB in size and 1,000 IOPS.

You can increase the size of an EBS volume after creating it without causing an outage or degrading performance. You can’t, however, decrease the amount of storage allocated, so be careful not to go overboard.

You can also migrate from one storage type to another, but doing so can result in a short outage of typically a few minutes. But when migrating from magnetic to EBS storage, the process can take up to several days. During this time, the instance is still usable but may not perform optimally.

Scaling Horizontally with Read Replicas

In addition to scaling up by choosing a more powerful instance type or selecting high-IOPS storage, you can improve the performance of a database-backed application by adding additional RDS instances that perform only reads from the database. These instances are called read replicas.

In a relational database, only the master database instance can write to the database. A read replica helps with performance by removing the burden of read-only queries from the master instance, freeing it up to focus on writes. Hence, read replicas provide the biggest benefit for applications that need to perform a high number of reads. Read replicas are also useful for running computationally intensive queries, such as monthly or quarterly reports that require reading and processing large amounts of data from the database.

High Availability with Multi-AZ

Even if you use read replicas, only the master database instance can perform writes against your database. If that instance goes down, your database-backed application won’t be able to write data until it comes back online. To ensure that you always have a master database instance up and running, you can configure high availability by enabling the multi-AZ feature on your RDS instance.

With multi-AZ enabled, RDS creates an additional instance called a standby database instance that runs in a different Availability Zone than your primary database instance. The primary instance instantly or synchronously replicates data to the secondary instance, ensuring that every time your application writes to the database, that data exists in multiple Availability Zones.

If the primary fails, RDS will automatically fail over to the secondary. The failover can result in an outage of up to two minutes, so your application will experience some interruption, but you won’t lose any data.

With multi-AZ enabled, you can expect your database to achieve a monthly availability of 99.95 percent. It’s important to understand that an instance outage may occur for reasons other than an Availability Zone outage. Routine maintenance tasks such as patching or upgrading the instance can result in a short outage and trigger a failover.

If you use the Amazon Aurora database engine—Amazon’s proprietary database engine designed for and available exclusively with RDS—you can take advantage of additional benefits when using multi-AZ. When you use Aurora, your RDS instances are part of an Aurora cluster. All instances in the cluster use a shared storage volume that’s synchronously replicated across three different Availability Zones. Also, if your storage needs increase, the cluster volume will automatically expand up to 64 TB.

Backup and Recovery

Whether or not you use multi-AZ, RDS can take manual or automatic EBS snapshots of your instances. Snapshots are stored across multiple Availability Zones. If you ever need to restore from a snapshot, RDS will restore it to a new instance. This makes snapshots useful not only for backups but also for creating copies of a database for testing or development purposes.

You can take a manual snapshot at any time. You can configure automatic snapshots to occur daily during a 30-minute backup window. RDS will retain automatic snapshots between 1 day and 35 days, with a default of 7 days. Manual snapshots are retained until you delete them.

Enabling automatic snapshots also enables point-in-time recovery, a feature that saves your database change logs every 5 minutes. Combined with automated snapshots, this gives you the ability to restore a failed instance to within 5 minutes before the failure—losing no more than 5 minutes of data.

Determining Your Recovery Point Objective

Do you need snapshots and multi-AZ? It’s important to understand that although both snapshots and multi-AZ protect your databases, they serve slightly different purposes. Snapshots are good for letting you restore an entire database instance. If your database encounters corruption, such as malicious deletion of records, snapshots let you recover that data, even if the corruption occurred days ago (provided you’re retaining the snapshots). Multi-AZ is designed to keep your database up and running in the event of an instance failure. To achieve this, data is synchronously replicated to a secondary instance.

How much data loss you can sustain in the event of a failure is called the recovery point objective (RPO). If you can tolerate losing an hour’s worth of data, then your RPO would be 1 hour. To achieve such an RPO, simply using automatic snapshots with point-in-time recovery is sufficient. For an RPO of less than 5 minutes, you would also want to use multi-AZ to synchronously replicate your data to a secondary instance.

DynamoDB

DynamoDB is Amazon’s managed nonrelational database service. It’s designed for highly transactional applications that need to read from or write to a database tens of thousands of times a second.

Items and Tables

The basic unit of organization in DynamoDB is an item, which is analogous to a row or record in a relational database. DynamoDB stores items in tables. Each DynamoDB table is stored across one or more partitions. Each partition is backed by solid-state drives, and partitions are replicated across multiple Availability Zones in a region, giving you a monthly availability of 99.99 percent.

Each item must have a unique value for the primary key. An item can also consist of other key-value pairs called attributes. Each item can store up to 400 KB of data, more than enough to fill a book! To understand this better, consider the sample shown in Table 9.2.

TABLE 9.2 A Sample DynamoDB Table

Username (Primary Key) LastName FirstName FavoriteColor
hburger Burger Hamilton
dstreet Street Della Fuchsia
pdrake Drake Paul Silver
perry Perry

Username, LastName, FirstName, and FavoriteColor are all attributes. In this table, the Username attribute is the primary key. Each item must have a value for the primary key, and it must be unique within the table. Good candidates for primary keys are things that tend to be unique, such as randomly generated identifiers, usernames, and email addresses.

Other than the primary key, an item doesn’t have to have any particular attributes. Hence, some items may contain several attributes, while others may contain only one or two. This flexibility makes DynamoDB the database of choice for applications that need to store a wide variety of data without having to know the nature of that data in advance. However, every attribute must have a defined data type, which can be one of the following:

Scalar A scalar data type has only one value and can be a string, a number, binary data, or a Boolean value.

Set A set data type can have multiple scalar values, but each value must be unique within the set.

Document The document data type is subdivided into two subtypes: list and map. Document data types can store values of any type. List documents are ordered, whereas map documents are not. Document data types are useful for storing structured data, such as an IAM policy document stored in JavaScript Object Notation (JSON) format. DynamoDB can recognize and extract specific values nested within a document, allowing you to retrieve only the data you’re interested in without having to retrieve the entire document.

Scaling Horizontally

DynamoDB uses the primary key to distribute items across multiple partitions. Distributing the data horizontally in this fashion makes it possible for DynamoDB to consistently achieve low-latency reads and writes regardless of how many items are in a table. The number of partitions DynamoDB allocates to your table depends on the number of write capacity units (WCU) and read capacity units (RCU) you allocate to your table. The higher the transaction volume and the more data you’re reading or writing, the higher your RCU or WCU values should be. Higher values cause DynamoDB to distribute your data across more partitions, increasing performance and decreasing latency. As demand on your DynamoDB tables changes, you can change the number of RCU and WCU accordingly. Alternatively, you can configure DynamoDB Auto Scaling to dynamically adjust the number of WCU and RCU based on demand. This automatic horizontal scaling ensures consistent performance, even during times of peak load.

Queries and Scans

Recall that nonrelational databases let you quickly retrieve items from a table based on the value of the primary key. For example, if the primary key of a table is Username, you can perform a query for the user named pdrake. If an item exists with that primary key value, DynamoDB will return the item instantly.

Searching for a value in an attribute other than the primary key is possible, but slower. To locate all items with a Username that starts with the letter p, you’d have to perform a scan operation to list all items in the table. This is a read-intensive task that requires scanning every item in every partition your table is stored in. Even if you know all the attributes of an item except for the primary key, you’d still have to perform a scan operation to retrieve the item.

Complete Exercise 9.1 to get an idea of how DynamoDB tables work.

Amazon Redshift

Amazon Redshift is a specialized type of managed relational database called a data warehouse. A data warehouse stores large amounts of structured data from other relational databases and allows you to perform complex queries and analysis against that data. For example, Redshift can combine data from financial, sales, and inventory databases into a single data warehouse and then analyze or generate reports on that data.

Because data warehouses can grow quite large, they require a lot of storage. To use Redshift, you create a cluster consisting of at least one compute node and up to 128 nodes. Using dense compute nodes, you can store up to 326 TB of data on magnetic disks, and with dense storage nodes you can store up to 2 PB of data on SSDs.

Redshift’s usefulness isn’t limited to pulling in data from relational databases. Redshift Spectrum is a feature of Redshift that lets you analyze data stored in S3. The data must be structured, and you must define the structure so that Redshift can understand it.

Summary

In most cases, the decision about whether to use a relational or nonrelational database has already been made for you. If you’re migrating a database-backed application from your data center to AWS, chances are the application is already using a SQL database. In that case, your migration options are to either use RDS or build and maintain your own SQL server on one or more EC2 instances.

When it comes to developing a new database-backed application, whether to use a relational or nonrelational database is not an easy decision, nor is it always a clear-cut one. Both have their unique advantages and disadvantages, as shown in Table 9.3.

TABLE 9.3 Comparison of Relational and Nonrelational Databases

Relational Nonrelational
Designed for complex or arbitrary queries Designed for a few well-defined queries
Requires structured data Can store structured or unstructured data
Ideal for reporting and analysis Ideal for highly transactional applications

Note that the trade-off for being able to store unstructured data in a nonrelational database is being more limited in your queries. On the flip side, the reward for structuring your data and keeping it in a relational database is the flexibility to perform a wide variety of queries. Relational databases allow you to construct almost any query you can imagine. You can search based on any attribute, and even search for ranges, such as values starting with any letter between H and N. Nonrelational databases don’t offer this kind of query flexibility.

Nonrelational databases such as DynamoDB are designed to scale horizontally by spreading your data across more partitions, allowing for thousands of reads and writes per second. Relational databases such as RDS can be scaled horizontally to support a high number of reads by adding read replicas. However, because only one database instance can write to the database, it’s not feasible to support higher write rates by scaling horizontally. Instead, you can scale the instance vertically by upgrading to a more powerful instance class.

Exam Essentials

Understand the major differences between relational and nonrelational databases. Relational databases are designed for structured data that contains a defined number of attributes per record. They let you perform complex queries against a variety of dimensions, making them ideal for reporting and analytics. Nonrelational databases are designed for data that doesn’t follow a predictable structure. Each item in a nonrelational database must have a primary key, and you can query based on that key.

Know the vertical and horizontal scaling options for RDS. You can scale an RDS instance vertically by upgrading to a larger instance class to give it more processing power, memory, or disk or network throughput. You can also select provisioned IOPS SSD storage to ensure your instance always achieves the storage performance it needs. For horizontal scaling of reads, your only option is to use read replicas.

Be able to describe the components of RDS. An RDS deployment consists of at least one instance. You must select an instance class that defines the vCPUs and memory for the instance. You must also select a database engine. For storage, you must select general-purpose or provisioned IOPS SSD. Magnetic storage is a legacy option that’s not available for new deployments. You can also add read replicas to scale horizontally to improve read performance. In a multi-AZ deployment, you can add additional secondary instances that the primary synchronously replicates data to.

Know the backup and recovery options for RDS. You can schedule automatic snapshots for your RDS instance to occur daily during a 30-minute backup window of your choice. Backups are retained between 1 day and 35 days. Enabling automatic backups also enables point-in-time recovery, allowing the restoration of a failed database up to 5 minutes prior to failure. Restoring from a snapshot entails creating a new instance from the snapshot. You can also take a manual snapshot at any time.

Understand how DynamoDB stores data. DynamoDB stores data as items in tables. Each item must have primary key whose values are unique within the table. This is how DynamoDB uniquely identifies an item. The primary key’s name and data type must be defined when the table is created. When you create an item, you can also add other attributes in addition to the primary key. DynamoDB uses the primary key to distribute items across different partitions. The number of partitions allocated to a table depends on the number of WCU and RCU you configure.

Be able to identify scenarios for using Redshift. Redshift is a data-warehousing service for storing and analyzing structured data from multiple sources, including relational databases and S3. Redshift can store much more data than RDS, up to 2 PB!

Review Questions

  1. Which type of database stores data in columns and rows?

    1. Nonrelational
    2. Relational
    3. Key-value store
    4. Document
  2. Which of the following Structured Query Language (SQL) statements can you use to write data to a relational database table?

    1. CREATE
    2. INSERT
    3. QUERY
    4. WRITE
  3. Which of the following statements is true regarding nonrelational databases?

    1. You can create only one table.
    2. No primary key is required.
    3. You can’t store data with a fixed structure.
    4. You don’t have to define all the types of data that a table can store before adding data to it.
  4. What is a no-SQL database?

    1. A nonrelational database without primary keys
    2. A schemaless relational database
    3. A schemaless nonrelational database
    4. A relational database with primary keys
  5. What do new Relational Database Service (RDS) instances use for database storage?

    1. Instance volumes
    2. Elastic Block Store (EBS) volumes
    3. Snapshots
    4. Magnetic storage
  6. Which of the following are database engine options for Amazon Relational Database Service (RDS)? (Select TWO.)

    1. IBM dBase
    2. PostgreSQL
    3. DynamoDB
    4. Amazon Aurora
    5. Redis
  7. What two databases is Amazon Aurora compatible with? (Select TWO.)

    1. MySQL
    2. PostgreSQL
    3. MariaDB
    4. Oracle
    5. Microsoft SQL Server
  8. Which of the following features of Relational Database Service (RDS) can prevent data loss in the event of an Availability Zone failure? (Select TWO.)

    1. Read replicas
    2. Multi-AZ
    3. Snapshots
    4. IOPS
    5. Vertical scaling
  9. Which RDS database engine offers automatically expanding database storage up to 64 TB?

    1. Microsoft SQL Server
    2. Amazon Aurora
    3. Oracle
    4. Amazon Athena
  10. Which of the following Relational Database Service (RDS) features can help you achieve a monthly availability of 99.95 percent?

    1. Multi-AZ
    2. Read replicas
    3. Point-in-time recovery
    4. Horizontal scaling
  11. What is true regarding a DynamoDB partition? (Select TWO.)

    1. It’s stored within a table.
    2. It’s backed by solid-state drives.
    3. It’s a way to uniquely identify an item in a table.
    4. It’s replicated across multiple Availability Zones.
  12. What is the minimum monthly availability for DynamoDB in a single region?

    1. 99.99 percent
    2. 99.95 percent
    3. 99.9 percent
    4. 99.0 percent
  13. Which of the following statements is true regarding a DynamoDB table?

    1. It can store only one data type.
    2. When you create a table, you must define the maximum number of items that it can store.
    3. Items in a table can have duplicate values for the primary key.
    4. Items in a table don’t have to have all the same attributes.
  14. Which configuration parameters can you adjust to improve write performance against a DynamoDB table? (Select TWO.)

    1. Decrease read capacity units (RCU)
    2. Increase read capacity units
    3. Increase write capacity units (WCU)
    4. Decrease write capacity units
    5. Enable DynamoDB Auto Scaling
  15. Which DynamoDB operation is the most read-intensive?

    1. Write
    2. Query
    3. Scan
    4. Update
  16. Which of the following would be appropriate to use for a primary key in a DynamoDB table that stores a customer list?

    1. The customer’s full name
    2. The customer’s phone number
    3. The customer’s city
    4. A randomly generated customer ID number
  17. Which type of Redshift node uses magnetic storage?

    1. Cost-optimized
    2. Dense compute
    3. Dense storage
    4. Dense memory
  18. Which Redshift feature can analyze structured data stored in S3?

    1. Redshift Spectrum
    2. Redshift S3
    3. Amazon Athena
    4. Amazon RDS
  19. What is the term for a relational database that stores large amounts of structured data from a variety of sources for reporting and analysis?

    1. Data storehouse
    2. Data warehouse
    3. Report cluster
    4. Dense storage node
  20. What’s the maximum amount of data you can store in a Redshift cluster when using dense storage nodes?

    1. 2 PB
    2. 326 TB
    3. 2 TB
    4. 326 PB
    5. 236 TB
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.188.10.246