Ref: https://learn.cantrill.io/courses/1820301/lectures/41301325
💡 Learn all these facts and numbers for the exam, they're important!
Common Requirements for Storing EC2 Data
- ‼️ Persistent storage → Avoid instance store!!
- First and foremost criterion!
- Many ways where instance store data can be lost
- Corollary: storage isolated from instance lifecycle? → Avoid instance store!
- Resilient storage → Avoid instance store (in general)
- Again, many ways where instance store data can be lost
- EBS has AZ resiliency and also possibility of S3 snapshots → pretty good resiliency
- Exception: App supports built-in replication
- Possible to use lots of instance store volumes on lots of instances to enjoy performance benefits without the negative risk of non-resiliency
- High performance → depends
- Up to a point, both EBS and Instance Store can provide high performance
- EBS max performance numbers:
- âť—Â Remember: these are numbers for larger instance types!
- GP2/3: up to 16k IOPS per volume
- IO1/2: up to 64k IOPS per volume
- IO2 Block Express: up to 256k IOPS per volume
- ❗ Possible to create a RAID0 set of EBS volumes to combine performances… but remember there's a limit per EC2 instance!!!
- Maximum IOPS for EBS volumes per EC2 instance = 260k IOPS
- Super high performance (> 260k IOPS) → probably instance store
- âť—Â Just make sure app can tolerate non-persistent storage!
- Cost → default to instance store (it's often included with EC2 instance price)
- If need to use EBS → ST1 or SC1 are cheapest
- Throughput or streaming → ST1
- ‼️ If you need a boot volume → Can NOT use ST1 or SC1!