AWSARE.com
Architectually Resilient Environment Discovery Interview
security reliability performance cost optimization operational excellence

Performance

PERF 1 How do you select the best performing architecture?
  The optimal solution for a particular system will vary based on the kind of workload, often with multiple approaches combined. Well-architected systems use multiple solutions and enable different features to improve performance.  
Best practices:
  * Benchmarking. Load test a known workload on AWS and use that to estimate the best selection.

  * Load Test Deploy the latest version of your system on AWS using different resource types and sizes, use monitoring to capture performance metrics, and then make a selection based on a calculation of performance/cost.

PERF 2 How did you select your compute solution?
  The optimal compute solution for a particular system may vary based on application design, usage patterns, and configuration settings. Architectures may use different compute solutions for various components and enable different features to improve performance. Selecting the wrong compute solution for an architecture can lead to lower performance efficiency.  
Best practices:
  * Consider Options. Consider the different options of using instances, containers, and functions to get the best performance.

  * Instance Configuration. Options If you use instances, consider configuration options such as family, instance sizes, and features (GPU, I/O, burstable).

  * Container Configuration. Options If you use containers, consider configuration options such as memory, CPU, and tenancy configuration of the container.

  * Function Configuration. Options If you use functions, consider configuration options such as memory, runtime, and state.

  * Elasticity. Use elasticity (e.g., Auto Scaling, Amazon EC2 Container Service (ECS), AWS Lambda) to meet changes in demand.

PERF 3 How do you select your storage solution?
  The optimal storage solution for a particular system will vary based on the kind of access method (block, file, or object), patterns of access (random or sequential), throughput required, frequency of access (online, offline, archival), frequency of update (WORM, dynamic), and availability and durability constraints. Well-architected systems use multiple storage solutions and enable different features to improve performance.  
Best practices:
  * Consider Characteristics. Consider the different characteristics (e.g., shareable, file size, cache size, access patterns, latency, throughput, persistence of data) you require to select the services you need to use (Amazon S3, Amazon EBS, Amazon Elastic File System (EFS), EC2 instance store).

  * Consider Configuration Options. Considered configuration options such as PIOPS, SSD, magnetic, and Amazon S3 Transfer Acceleration.

  * Consider Access Patterns. Optimize for how you use storage systems based on access pattern (e.g., striping, key distribution, partitioning).

PERF 4 How do you select your database solution?
  The optimal database solution for a particular system can vary based on requirements for availability, consistency, partition tolerance, latency, durability, scalability and query capability. Many systems use different database solutions for various sub-systems and enable different features to improve performance. Selecting the wrong database solution and features for a system can lead to lower performance efficiency.  
Best practices:
  * Consider Characteristics. Consider the different characteristics (e.g., availability, consistency, partition tolerance, latency, durability, scalability, query capability) so that you can select the most performant database approach to use (relational, No-SQL, warehouse, in-memory).

  * Consider Configuration Options. Consider configuration options such as storage optimization, database level settings, memory, and cache.

  * Consider Access Patterns. Optimize how you use database systems based on your access pattern (e.g., indexes, key distribution, partition, horizontal scaling).

  * Consider Other Approaches Considered other approaches to providing queryable data such as search indexes, data warehouses, and big data.

PERF 5 How do you configure your networking solution?
  The optimal network solution for a particular system will vary based on latency, throughput requirements, and so on. Physical constraints such as user or on- premises resources will drive location options, which can be offset using edge techniques or resource placement.  
Best practices:
  * Consider Location. Considered your location options (e.g., region, Availability Zone, placement groups, edge) to reduce network latency.

  * Consider Product Features. Consider product features (e.g., EC2 instance network capability, very high network instance types, Amazon EBS optimized instances, Amazon S3 Transfer Acceleration, Dynamic Amazon CloudFront) to optimize network traffic.

  * Consider Networking Features. Consider networking features (e.g., Amazon Route 53 latency routing, Amazon VPC endpoints, AWS Direct Connect) to reduce network distance or jitter.

  * Appropriate NACLS. Use the minimal set of NACLS to maintain network throughput.

  * Consider Encryption Offload. Consider using load balancing to offload encryption termination (TLS).

  * Consider protocols. Consider which protocols you need to optimize network performance.

PERF 6 How do you ensure that you continue to have the most appropriate resource type as new resource types and features are introduced?
  When architecting solutions, there is a finite set of options that you can choose from. However, over time new technologies and approaches become available that could improve the performance of your architecture.  
Best practices:
  * Review Have a process for reviewing new resource types and sizes. Re- run performance tests to evaluate any improvements in performance efficiency.

PERF 7 How do you monitor your resources post-launch to ensure they are performing as expected?
  System performance can degrade over time due to internal and/or external factors. Monitoring the performance of systems allows you to identify this degradation and remediate internal or external factors (such as the operating system or application load).  
Best practices:
  * Monitoring. Use Amazon CloudWatch, third-party, or custom monitoring tools to monitor performance.

  * Alarm-Based Notifications. Receive an automatic alert from your monitoring systems if metrics are out of safe bounds.

  * Trigger-Based Actions. Set alarms that cause automated actions to remediate or escalate issues.

 
PERF 8 How do you use tradeoffs to improve performance?
  When architecting solutions, actively thinking about tradeoffs will allow you to select an optimal approach. Often you can trade consistency, durability, and space versus time and latency to deliver higher performance.  
Best practices:
  * Consider Services. Use services that improve performance, such as Amazon ElastiCache, Amazon CloudFront, and AWS Snowball.

  * Consider Patterns. Use patterns to improve performance, such as caching, read replicas, sharding, compression, and buffering.


AWSARE
Source Information provided on this page is from the AWS Well-Architected Framework Document