Flexible and scalable data storage is a baseline requirement for most applications and services being developed with modern techniques and tools. Whether storing large or small amounts of images, videos, or blobs of text, application developers need a solution for the storage and retrieval of user-generated content, logs, backups, and so on.
Block storage provides a traditional block storage device of any size that you can provision and attach to your virtual machine. You could format it with a filesystem and store files on it, combine multiple devices into a RAID array, or configure a database to write directly to the block device, avoiding filesystem overhead entirely.
Object storage is the storage and retrieval of unstructured blobs of data and metadata using an HTTP API. Instead of breaking files down into blocks to store it on disk using a filesystem, we deal with whole objects stored over the network. These objects could be an image file, logs, HTML files, or any self-contained blob of bytes. They are unstructured because there is no specific schema or format they need to follow.
You can easily take live snapshots of the entire device for backup purposes
Block storage devices can be resized to accommodate growing needs
You can easily detach and move block storage devices between machines
Block devices are well supported. Every programming language can easily read and write files
Filesystem permissions and access controls are familiar and well-understood
Block storage devices provide low latency IO, so they are suitable for use by databases
You only pay for what you use
You don't have to maintain hard drives and RAID arrays, as that's handled by the service provider
It can easily scale from modest needs to really intense use-cases