Difference between AWS EBS, EC2, S3

Well, EBS and S3 are different types of storage systems designed for different requirements but it is not unusual to need both. The key to cutting storage costs without sacrificing required functionality is to maximize the use of S3 when possible and use more expensive EBS with provisioned I/O only when application requirements demand it.

S3 is an object storage system that can store from 1 byte to 5 TB in a single object. Objects are not stored in file systems; instead, users create objects and associate keys with them. Users retrieve data by command line operations, API calls, or applications designed to work with S3, such as the S3Fox Organizer plugin for the Firefox browser.

Objects can contain files, such as zipped versions of data sets, but they can also store any arbitrary string of bytes. S3 objects can be accessed from virtually anywhere on the Web so if you are running multiple EC2 instances, any of them can access an S3 object. In fact, any of your servers running in your data center can access objects in S3 as well.

EBS provides more traditional file system capabilities. EBS storage is organized into volumes and once an EBS volume is attached to a server it is treated like a local disk drive. The data on EBS volumes can continue to exist after the virtual server it is attached to is shut down. It should be noted that EC2 virtual instances can be configured to delete EBS volumes on shutdown; if you want to save your EBS volume after shutdown be sure to configure your instance accordingly.

EBS volumes are available in either standard or provisioned IOPs versions. The standard version is suitable for applications that need only moderate I/O performance or have intermittent need for high numbers of I/O operations. Provisioned EBS volumes are suited for applications that require consistent levels of I/O throughout, such as databases. With provisioned IOPs you can purchase varying levels of I/O performance depending on your needs.

The EBS standard volume costs $0.10 per GB per month and $0.10 per one million I/O requests. The EBS provisioned volume costs $0.125 per GB per month and $0.10 per provisioned IOPs per month. S3 storage pricing uses a tiered model starting at $0.095 per GB per month and dropping to $0.055 GB per month for storage over 500TB.

When storing non-critical data you might want to consider S3 Reduced Redundancy Storage. Prices for reduced redundancy storage range from $0.076 to $0.037 per GB per month. Reduced redundancy storage is designed for 99.99% durability and 99.99% availability while standard S3 storage is designed for 99.999999999% durability and 99.99% availability.

The differences in monthly charges for similar amounts of S3 and EBS with provisioned I/O storage can be substantial. For example, a provisioned EBS volume of 500 GB with 1,000 IOPs would cost $162.50 per month ($62.50 for the EBS volume and $100 for EBS IOPS). That same amount of S3 storage would cost $47.03.

Example Scenario

Analysts at TransGlobal Analytics work with large data sets on behalf of multiple customers. Often, analysts will use business intelligence tools to build databases with summarized data. Clients use these databases to help them understand trends and identify problem areas in their operations. For example, a client might notice a drop in marginal profit in one line of business. The client can use the database to drill down into specific products and services and across time and regions. This can help her see if the problem is localized to a small number of products or regions or if the problem is systemic across an entire line of business. Occasionally a client will want to drill down into the detailed data but this is rare.

Database designers at TransGlobal Analytics have to decide where to store both the detailed data sets and the summarized database. The storage for the detailed data sets should support multiple terabytes of data and easily scale to support additional data. The storage for the database should support rapid read operations since clients will query the data interactively. Since the data sets can grow quite large it is important to minimize the unit cost of storage for the data sets. Rapid query response (e.g. less than 3 seconds) is a firm requirement for database users and TransGlobal Analytics is ready to pay more for storage to ensure consistent input/output (I/O) performance. The system architects decide to use S3 to store the original data sets and EBS for the derived data stored in the database.

Pros and Cons

Perhaps the biggest drawback of the S3 storage system is lack of support for file systems. Also, S3 retrieval times can be slow when compared to EBS and can vary between requests. S3 will, however, support up to 5 TB of data in a single object and users can store as many objects as they like. EBS volumes are limited to 1 TB and can be attached to only a single EC2 instance. If you want to use the same EBS volume on multiple EC2 instances, you will have to replicate the EBS volume and attach the replicas to the other instances. This is a reasonable solution for applications that support primarily read operations, such as business intelligence applications.

Reference: http://www.tomsitpro.com/articles/cost-of-the-cloud-book,2-694-2.html


Rather than asking the differences between these services, it's better to know what the services actually offer.

Amazon EC2 (Elastic Compute Cloud) is a virtual machine hosted in the cloud. When you want a computer, you can turn it on. When you no longer want it, you can turn it off. You only pay for it while you use it.

Amazon EBS (Elastic Block Store) is a virtual disk for your virtual machine, like your C: and D: drive. You can create any number of disks, each of any size.

Amazon S3 (Simple Storage Service) stores files, making them available on the Internet if you wish. Many popular services store their data in S3, such as Dropbox. You only pay for the data you store.

Bottom line: You can have compute and storage in the cloud and only pay for what you use, with no up-front commitment. This replaces the need to buy your own equipment and run it in a data centre.