Skip to content

Instantly share code, notes, and snippets.

@faermanj
Last active June 30, 2020 18:07
Show Gist options
  • Save faermanj/98ed648757677f652968bbea7a049270 to your computer and use it in GitHub Desktop.
Save faermanj/98ed648757677f652968bbea7a049270 to your computer and use it in GitHub Desktop.
AWS Well Architected: Performance Efficiency Notes

Video: https://www.twitch.tv/videos/177667117

PERF 1. How do you select the best performing architecture?

"In God we trust, all others bring data" W. Edwards Deming

Performance 👎

  • Latency
  • Throughput
  • Latency ⍺ Concurrent Users
  • Throughput ⍺ Dataset Size

Guessing 👎

  • Exploratory Data Analysis
  • Performance Percentiles
  • Flaming Graphs
  • Decision Matrices

Waterfal 👎 Iterative 👍

Decision Matrix Weight DynamicDB MondoDB Alexandra
Score                        ??      ?? ??
         
Latency [.5s] 5         ?       ? ?
Throughput 3        ?       ? ?
Cost 4         ?       ? ?
Support 3         ?       ? ?
License 3         ?       ? ?
Documentation 4         ?       ? ?
Community 4         ?       ? ?

PERF 2. How do you select your compute solution?

Serverless

Containers

New Features: https://aws.amazon.com/about-aws/whats-new/2017/09/amazon-ecs-adds-support-for-adding-or-dropping-linux-capabilities-to-containers/

Abby on Twitch: https://aws.amazon.com/twitch/live-coding-with-aws/ (Containers section)

Instances

  • CPU
  • Memory
  • [Disk]
  • [GPUs]
  • [FPGAs]
  • Net[s]

HVM vs. Paravirtual: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/virtualization_types.html

New Instances / Intel Features: https://aws.amazon.com/blogs/aws/ec2-instance-type-update-t2-r4-f1-elastic-gpus-i3-c5/ FPGA Instances: https://youtu.be/8RrbUyw9uSg?t=34m47s

PERF 3. How do you select your storage solution?

Block storage

I.S. EBS
Durability Ephemeral Durable
Access Local Net
Capacity Predefined Provisioned
Cost Included Extra

Filesystem (EFS)

Object (S3)

PERF 4. How do you select your database solution?

CAP: https://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed

PERF 5. How do you select your network solution?

Ingestion

Cloudfront: https://aws.amazon.com/cloudfront

API Gateway: https://aws.amazon.com/api-gateway/

AWS IoT: https://aws.amazon.com/iot/

AWS Kinesis: https://aws.amazon.com/kinesis/

Direct Connect: https://aws.amazon.com/directconnect/

PERF 6. How do you ensure that you continue to have the most appropriate resource type as new resource types and features are introduced?

Keep Up to Date and Iterating

Debug the Bottlenecks

AWS X-Ray https://aws.amazon.com/xray/

PERF 7. How do you monitor your resources post-launch to ensure they are performing as expected?

Active and Passive Monitoring

PERF 8. How do you use tradeoffs to improve performance?

Technique Applies To Uses Gains
Caching read-heavy Space Time
Sharding write-heavy Size & Complexity Time
Compression large data Time Space
Buffering many requests Space & Time Efficiency
A/B Deploy delivery cost availability
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment