Scaling Architecture Flashcards

1
Q

Describe the features of Horizontal Scaling

A
  • Add more instances as demand increases
  • No downtime required to scale in/out
  • Automatic using ASG’s
  • Theoretically unlimited
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Describe the features of Vertical Scaling

A
  • Add more CPU/Mem to existing instances
  • Requires restart to scale
  • Requires scripting to automate
  • Limited by instance size
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Describe EC2 Auto-Scaling

A

Focused on EC2 instances, uses scaling groups and health checks to manage

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Describe App Auto-Scaling

A

For scaling resources other than EC2 (dynamodb, ECS, EMR, etc).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Describe AWS Auto-scaling

A

Centralised way to manage EC2 and App Autoscaling features

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Describe the 3 Scaling Policies

A

Target Tracking - Scale based on set metrics (eg: scale if EC2’s are above 70% CPU usage

Simple Scaling - Wait til health check and cooldown periods expire before evaluating need for scaling (eg: increase spot fleet by 20% per 10K connections to the ELB)

Step Scaling - Scale with advanced logic

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Describe Scaling cooldown

A

Giving resources x time to get ready and absorb load before health checks apply. Auto applies to dynamic scaling, optional for Manual scaling. Defaults to 300sec

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Describe Kinesis Data Streams

A

Stream information between client devices and app servers/services (think EC2, Lambda, Data Analytics tools, etc)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Describe Kinesis Firehose

A

A data transfer service for sending data to storage services like S3, Elasticache, RDS, etc

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Describe Kinesis Shards and Records

A

A Shard is a individual package of data Records that Kinesis streams. Records each contain a Partition Key, Sequence Number, and Data Blob. Each Shard can ingest 1K records/sec.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How does DynamoDB Scaling work

A

DynamoDB scales using partitions. Each scaling level adds a new Partition. Partitions can handle either 1000 Read Capacity Units RCU’s, or Write capacity Units WCU’s, each has 10GB of storage. Scaling occures when certain RCU or WCU limits are reached. Autoscaling is cheaper but harder to implement. On-demand scaling is more expensive.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Does Cloudfront support Static or Dynamic content

A

It supports both

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Describe Standard vs FIFO Queues/Topics

A

Used in SQS and SNS. Standard is suitable if the order of messages doesn’t matter, and the app receiving the message can handle duplicates. FIFO ensures that messages are delivered in the order they’re received, and only sent once, which prevents duplicate message recipes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What’s the difference between SNS and SQS

A

SNS sends out messages, clients subscribe to a topic. SQS holds messages, clients request messages from a queue.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What languages does LAMBDA support

A

Java, Go, PowerShell, Node. js, C#, Python, and Ruby

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are Step Functions

A

A way to manage workflow in serverless apps

17
Q

What is AWS Batch

A

Cron jobs as a service, uses EC2 on the backend to provision workers to perform batch actions

18
Q

Describe loosely coupled architecture

A

Architecture that’s split into many discrete services with abstraction between them. More individual components that can be scaled independently.