SAA-C03 · LESSON 3

Design High-Performing Architectures24% · 5 topics

Learn to design high-performing, scalable storage, compute, databases, networks, and data ingestion and transformation.

3.1Determine high-performing and scalable storage

3.1 Determine high-performing and/or scalable storage solutions.

Concept

EBS volume types are General Purpose SSD (gp3: IOPS and throughput can be set separately from size), Provisioned IOPS SSD (io2: high IOPS and durability), Throughput Optimized HDD (st1: large sequential reads and writes) and Cold HDD (sc1). For shared files use EFS (Linux) or FSx (Windows, Lustre for HPC). S3 offers high request performance per prefix and can be sped up with multipart upload and Transfer Acceleration.

How it works / steps

  1. Check the access pattern (random or sequential, IOPS or throughput)
  2. Choose gp3 for general use and io2 for high-IOPS databases
  3. Use EFS for sharing across multiple instances and FSx for Lustre for HPC
  4. Use multipart for large uploads to S3 and Transfer Acceleration from distant locations
  5. Instance store is fast but use it only for temporary data

Workplace example

Use st1 for heavy sequential log writes, io2 for a transactional DB, and FSx for Lustre linked to S3 for fast sharing of ML training data.

Common confusions and exam tips

Mini quiz

Q1. A gp2 EBS volume has enough capacity but not enough IOPS. Which is the most appropriate way to increase performance while keeping costs down?

  1. Change the volume to gp3 and set the required IOPS separately from capacity
  2. Keep using gp2 with more capacity than needed just to get IOPS
  3. Change the volume to sc1 to lower cost
  4. Stop using EBS and put all data on instance store
Show answer and explanation

Answer: A Change the volume to gp3 and set the required IOPS separately from capacity

With gp2, IOPS is proportional to size. gp3 lets you set IOPS and throughput separately from size and often costs less. Elastic Volumes lets you change it while running.

Q2. An app on EC2 is slow. CloudWatch shows CPU utilization is low, but EBS volume reads and writes are pinned at the limit. What should you do next?

  1. Increase the Auto Scaling maximum
  2. Delete the CloudWatch alarms
  3. Review the EBS volume type and IOPS/throughput settings and change them as needed
  4. Change to a larger instance type to add CPU and see what happens
Show answer and explanation

Answer: C Review the EBS volume type and IOPS/throughput settings and change them as needed

The bottleneck is storage I/O, so adding CPU will not help. Review volume performance (gp3 IOPS settings or a change to io2) and the instance's EBS bandwidth.

Reference links

3.2Design high-performing and elastic compute solutions

3.2 Design high-performing and elastic compute solutions.

Concept

For performance, choose an instance family that fits the workload (C: compute, R: memory, I: storage, G/P: GPU, Graviton for high price-performance) and scale elastically with Auto Scaling. Scaling policies include target tracking (keep CPU at 50% and so on), step, scheduled and predictive scaling. Use a cluster placement group for low-latency HPC.

How it works / steps

  1. Check the bottleneck (CPU, memory, I/O, network) in CloudWatch
  2. Choose a suitable instance family (also refer to Compute Optimizer recommendations)
  3. Use target tracking scaling as the base and add schedules for predictable peaks
  4. Use a warm pool if launching takes a long time
  5. Consider Lambda for short event-driven processing and Fargate for containers

Workplace example

For an internal system with an access spike at 9:00 every morning, add instances on a schedule at 8:45, and keep CPU at 60% with target tracking during the day.

Common confusions and exam tips

Mini quiz

Q1. To speed up batch processing, you want to split it into many small jobs and run them in parallel. Which approach keeps infrastructure management to a minimum?

  1. Keep an EMR cluster always running and submit jobs
  2. Run jobs in parallel with AWS Batch or a Step Functions distributed map
  3. Create an EC2 Auto Scaling group and distribute jobs with scripts
  4. Write all jobs as parallel threads inside one Lambda function
Show answer and explanation

Answer: B Run jobs in parallel with AWS Batch or a Step Functions distributed map

Managed batch execution and distributed processing services provision compute automatically according to the degree of parallelism. [Other options] Auto Scaling plus scripts is heavy to manage. An always-on EMR adds management and cost. One function hits time and memory limits.

Q2. A Lambda function takes a long time to run and has spare memory. Which is the most appropriate way to make it faster?

  1. Recreate the function in another Region
  2. Shorten the timeout to cut processing early and leave the rest for next time
  3. Limit concurrency to 1
  4. Increase the function's memory (CPU increases proportionally)
Show answer and explanation

Answer: D Increase the function's memory (CPU increases proportionally)

Lambda allocates CPU in proportion to the memory setting. CPU-bound processing gets faster with more memory, and shorter duration can even lower cost.

Reference links

3.3Determine high-performing database solutions

3.3 Determine high-performing database solutions.

Concept

Scale reads with RDS and Aurora read replicas (up to 15 for Aurora), cache frequent reads with ElastiCache (Redis, Memcached), and get microsecond DynamoDB reads with DAX. Use RDS Proxy for connection surges and Aurora Serverless v2 for unpredictable load; for large-scale key-value workloads, DynamoDB partition key design determines performance.

How it works / steps

  1. Check the read/write ratio and latency requirements
  2. For read-heavy workloads, use read replicas or a cache
  3. Pool large numbers of connections from Lambda with RDS Proxy
  4. For DynamoDB, choose a partition key that avoids skewed access and add DAX if needed
  5. For low-latency global reads, use Aurora Global Database or DynamoDB global tables

Workplace example

Reads of product detail pages account for 90% of DB load, so cache the results in ElastiCache and write inventory updates to the primary.

Common confusions and exam tips

Mini quiz

Q1. Read load on RDS for PostgreSQL is high and responses are slow. Writes are few. Which is the most appropriate way to improve performance with minimal app changes?

  1. Add read replicas and direct read-only queries to them
  2. Stop the DB instance once and reduce its allocated storage
  3. Send read queries to the Multi-AZ standby
  4. Shorten the database backup retention period
Show answer and explanation

Answer: A Add read replicas and direct read-only queries to them

Read replicas spread reads. The standby in a Multi-AZ instance deployment cannot serve reads.

Q2. A relational DB has a large gap between quiet periods and sudden peaks, and you want to automate capacity adjustment. Which is most appropriate?

  1. Use Aurora replica Auto Scaling to change the replica count
  2. Use Aurora Serverless v2 to scale capacity automatically with load
  3. Enable RDS storage autoscaling
  4. Add RDS Proxy to pool connections and reduce load
Show answer and explanation

Answer: B Use Aurora Serverless v2 to scale capacity automatically with load

Aurora Serverless v2 adjusts capacity (ACUs) automatically and in fine increments according to load. [Other options] Replica scaling helps reads only, not write capacity. Storage autoscaling does not adjust compute. RDS Proxy manages connections and does not change capacity.

Reference links

3.4Determine high-performing and scalable network architectures

3.4 Determine high-performing and/or scalable network architectures.

Concept

CloudFront speeds up delivery of static and dynamic content with edge caching, while Global Accelerator speeds up TCP/UDP traffic with fixed anycast IPs and the AWS network. Connect many VPCs with Transit Gateway (a hub), a few with VPC peering, and use Direct Connect for high-volume, stable connections to on-premises. For load balancers, use ALB for HTTP and NLB for ultra-low latency, fixed IPs and TCP/UDP.

How it works / steps

  1. Check where users are and the type of traffic (HTTP, TCP, UDP)
  2. Cache web content with CloudFront
  3. Use Global Accelerator for global apps that are non-HTTP or need fixed IPs
  4. Consolidate connections among many VPCs and on-premises on Transit Gateway
  5. Choose a load balancer from ALB and NLB

Workplace example

Use Global Accelerator for game servers that players worldwide connect to over UDP, and connect 100 VPCs with Transit Gateway.

Common confusions and exam tips

Mini quiz

Q1. Requests to one S3 prefix are extremely numerous and approaching the performance limit. Which design improvement is most appropriate?

  1. Move the bucket to S3 Express One Zone and keep the same prefix
  2. Put CloudFront in front and cache write requests too
  3. Enable S3 Transfer Acceleration
  4. Spread object keys across multiple prefixes and send requests in parallel
Show answer and explanation

Answer: D Spread object keys across multiple prefixes and send requests in parallel

S3 can handle high request rates per prefix. Splitting prefixes and parallelizing raises overall throughput. [Other options] Transfer Acceleration speeds long-distance transfers and does not change prefix limits. Express One Zone uses directory buckets and needs redesign. CloudFront does not cache writes.

Q2. You want to transfer large amounts of data daily between the head office and the Tokyo Region with stable bandwidth, unaffected by internet congestion. Which is most appropriate?

  1. S3 Transfer Acceleration
  2. Amazon CloudFront
  3. AWS Direct Connect
  4. AWS Site-to-Site VPN (over the internet)
Show answer and explanation

Answer: C AWS Direct Connect

Direct Connect is a dedicated line with more stable bandwidth and latency than the internet. VPN goes over the internet and fluctuates more.

Reference links

3.5Determine high-performing data ingestion and transformation solutions

3.5 Determine high-performing data ingestion and transformation solutions.

Concept

For streaming ingestion use Kinesis Data Streams (real-time custom processing, scaled by shards) or Amazon Data Firehose (near-real-time delivery to S3, Redshift or OpenSearch with transformation and no operations), or Amazon MSK for Kafka. For batch transformation use AWS Glue (serverless ETL and Data Catalog), EMR for large-scale processing, Athena to analyze S3 data, and Lake Formation for data lake permissions. Use DataSync or Snowball for transfer.

How it works / steps

  1. Check data volume, velocity and latency requirements (real-time, minutes or daily)
  2. Use Kinesis Data Streams for millisecond-to-second custom processing and Firehose for delivery to S3
  3. Build the catalog with Glue and convert to a columnar format such as Parquet
  4. Query S3 with Athena and reduce data read with partitions
  5. Use DataSync for continuous transfer from on-premises

Workplace example

IoT sensor data is delivered to S3 as Parquet every minute with Firehose and analyzed with Athena using the Glue catalog.

Common confusions and exam tips

Mini quiz

Q1. Kinesis Data Streams processing cannot keep up, and ingestion is being throttled. Which measure is most appropriate?

  1. Shorten the data retention period
  2. Reduce the number of producers and stop sending
  3. Delete the stream and have all producers write directly to S3
  4. Increase the number of shards (or use on-demand mode)
Show answer and explanation

Answer: D Increase the number of shards (or use on-demand mode)

In provisioned mode, the number of shards determines throughput. Add shards, or use on-demand mode to adjust capacity automatically.

Q2. You are comparing analytics building blocks. Which statement about Amazon Athena is incorrect?

  1. Data cannot be queried without loading it into dedicated storage
  2. It is billed by the amount of data scanned by queries
  3. It can query data in S3 with standard SQL
  4. No server management is required
Show answer and explanation

Answer: A Data cannot be queried without loading it into dedicated storage

Athena queries data in S3 directly. Columnar formats (such as Parquet), compression and partitioning reduce the amount scanned.

Reference links

Lessons are written by this site based on public information and do not guarantee exam content. Product specifications change, so check the latest information at the reference links.

Notes (unofficial, original questions, no pass guarantee)