used here is a NoSQL database, like DynamoDB. When your business requires a low-latency response to high-traffic
queries, taking advantage of a NoSQL system generally makes technical and economic sense.
Amazon DynamoDB helps solve the problems that limit the relational system scalability by avoiding them. In
DynamoDB, you design your schema specifically to make the most common and important queries as fast and as
inexpensive as possible. Your data structures are tailored to the specific requirements of your business use cases.
Remember that a relational database system does not scale well for the following reasons:
- It normalizes data and stores it on multiple tables that require multiple queries to write to disk.
- It generally incurs the performance costs of an ACID-compliant transaction system.
- It uses expensive joins to reassemble required views of query results.
For DynamoDB, it scales well due to these reasons:
- Its schema flexibility lets DynamoDB store complex hierarchical data within a single item. DynamoDB is not a totally
schemaless database since the very definition of a schema is just the model or structure of your data.
- Composite key design lets it store related items close together on the same table. An Amazon RDS instance in
Multi-AZ Deployments configuration and an Amazon Aurora database with Read Replicas are incorrect because both of
them are a type of relational database. Redshift is incorrect because it is primarily used for OLAP systems.
References:
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-general-nosql-design.html
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-relational-modeling.html
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/SQLtoNoSQL.html
1. Q51. A company is using a combination of API Gateway and Lambda for the web services of the online web portal
that is being accessed by hundreds of thousands of clients each day. They will be announcing a new revolutionary
product and it is expected that the web portal will receive a massive number of visitors all around the globe.
How can you protect the backend systems and applications from traffic spikes?
A. Use throttling limits in API Gateway
B. API Gateway will automatically scale and handle massive traffic spikes so you do not have to do anything.
C. Manually upgrade the EC2 instances being used by API Gateway
D. Deploy Multi-AZ in API Gateway with Read Replica
答案:A
解析:
Amazon API Gateway provides throttling at multiple levels including global and by a service call. Throttling limits can be
set for standard rates and bursts. For example, API owners can set a rate limit of 1,000 requests per second for a
specific method in their REST APIs, and also configure Amazon API Gateway to handle a burst of 2,000 requests per
second for a few seconds. Amazon API Gateway tracks the number of requests per second. Any requests over the limit
will receive a 429 HTTP response. The client SDKs generated by Amazon API Gateway retry calls automatically when
met with this response.
Hence, the correct answer is: Use throttling limits in API Gateway. The option that says: API Gateway will automatically
scale and handle massive traffic spikes so you do not have to do anything is incorrect. Although it can scale using AWS
Edge locations, you still need to configure the throttling to further manage the bursts of your APIs.
Manually upgrading the EC2 instances being used by API Gateway is incorrect because API Gateway is a fully
managed service and hence, you do not have access to its underlying resources. Deploying Multi-AZ in API Gateway
with Read Replica is incorrect because RDS has Multi-AZ and Read Replica capabilities, and not API Gateway.
Reference:
https://aws.amazon.com/api-gateway/faqs/#Throttling_and_Caching
1. Q52. A company is designing a banking portal that uses Amazon ElastiCache for Redis as its distributed session
management component. Since the other Cloud Engineers in your department have access to your ElastiCache cluster,
you have to secure the session data in the portal by requiring them to enter a password before they are granted
permission to execute Redis commands. As the Solutions Architect, which of the following should you do to meet the
above requirement?
A. Authenticate the users using Redis AUTH by creating a new Redis Cluster with both the -- transit-
encryption-enabled and --auth-token parameters enabled.
B. Set up a Redis replication group and enable the AtRestEncryptionEnabled parameter.
C. Set up an IAM Policy and MFA which requires the Cloud Engineers to enter their IAM credentials and token before
they can access the ElastiCache cluster.
D. Enable the in-transit encryption for Redis replication groups.