Amazon S3 and all-all-all: choose object storage

    The world's most famous object storage is Amazon S3 (Simple Storage Service), Google Cloud Storage and Microsoft Blobs Storage. They are reliable, accessible over the Internet and scale to hundreds of petabytes. The most popular way to access object storage is Amazon's S3 RESTful API. There is an alternative, OpenStack Swift - supports both APIs and even has its own (like Microsoft or Google, for example). Additionally, access is provided via other file and block protocols such as WebDAV, NFS and FTP, but in the context of this article we only test access via the HTTPS protocol through various APIs.

    For comparison, we take domestic public object storage. There are not so many of them, and we will consider the most noticeable players in the Russian market: Mail.Ru Cloud Solutions, servers.ru, Selectel, Technoserv and Rostelecom.

    Prices


    Storage offers of the Big Western Three can be divided into three parts: storage volumes, operations (requests), traffic and additional services - such as Amazon S3 Storage Management, Amazon S3 Transfer Acceleration and interregional replication. Detailed price lists are available on Amazon S3 (prices without taxes), Microsoft Blobs Storage ( outgoing traffic ) and Google Cloud Storage . We are interested in standard storages with "hot" data - for rarely used data and archives, many providers offer cheaper options, which we do not touch on in this review.

    The main components of the cost of services will be storage volumes, as well as outgoing traffic outside the network of the cloud provider. Let’s try to evaluate them and, for convenience, we will translate prices into rubles at the exchange rate of the Central Bank of the Russian Federation on January 13, 2018.



    For domestic companies, price lists are very diverse (see information), for convenience we will recalculate them with the restrictions used by the big Western three. All prices are in rubles with 18% VAT.



    reference
    Domestic providers mainly use a similar pricing scheme. Hotbox hot data storage in Mail.ru Cloud Solutions will cost the customer 2.5 rubles per gigabyte per month. Outgoing traffic and requests are also paid - everything is standard. The prices of servers.ru (Moscow data center, others we do not consider) are almost the same: 2.5 rubles / GB per month for the first terabyte, 2.30 rubles / GB - the next 50 TB, 2.10 rubles / GB - the next 100 TB and 1.90 rubles / GB - the next 150 TB (prices including VAT and there is still only additional traffic paid - there is nothing about operations in the price list). In Selectelstoring up to 1 TB per month costs 1.40 rubles / GB per month, up to 10 TB - 1.30 rubles / GB, up to 100 TB - 1.20 rubles / GB, more than 100 TB - 1 RUB / GB (prices including 18% VAT). It was not possible to find the price list on the Technoserv Cloud website, but the calculator shows about the same prices as Selectel - 1.40 rubles / GB per month, but for some reason without lowering the price with an increase in volume and excluding VAT. Rostelecomuses a slightly different charging method - each container costs 10 rubles per day (approximately 300 rubles per month), and 10 GB of disk space costs 1 ruble per day - ~ 30 rubles per month or ~ 3 rubles per month for 1 GB. Separately, you will have to pay for versioning support (0.50 rubles per day for 10 GB) and metadata search support - 0.25 rubles for 10 GB per day (all prices in the price list excluding VAT). But nothing is said about the traffic in the price list, but for Rostelecom this is completely unsurprising.

    Spherical application in vacuum


    Prices are not very obvious, in addition, outgoing Internet traffic outside the provider's network plays a significant (often the main) role in the cost of services, so we will try to estimate the cost of services using an example of a project using object storage. Suppose we want to create a service and a client mobile application for it. The question immediately arises of storing static and user data. There is an opinion that using object storage for statics is expensive because of the large volumes of outgoing traffic - there are separate providers that allow you to create a content delivery and distribution network (CDN) with caching servers around the world. If you have a large project with a huge number of users, this may make sense. Small startups can even keep static in the object storage, but since this is all individual, we will not consider such a scenario. The user data is much more interesting. Due to its constant availability, scalability and ability to withstand high loads, the object storage is perfect for custom files of any format: photos, documents, videos, etc. This is especially noticeable on small projects - several tens of thousands of files and several thousand requests per day will cost you literally a few dollars a month. Let's move on to the calculations now. Let the amount of user data be quite tangible (for other options there is still a traditional hosting) and amounts to 1 TB - this is about 5 million photos or 50 thousand small videos. Let our conditional project generate outgoing traffic of 1 TB per month.



    We put the operations and requests out of the brackets, because at the initial stage it is problematic to understand their number - in any case, this is far from the main item of expenditure. It immediately becomes apparent that large Western providers have very expensive outgoing traffic at reasonable prices for storage volumes. At Amazon, for example, it is $ 0.09 per GB (within 10 TB per month) or $ 90 for our conditional project - a very expensive pleasure. Google is even more expensive - $ 0.12 per gigabyte. A good reason to choose a domestic service provider.

    Features of domestic providers


    Mail.ru Cloud Solutions is developing similarly to Western services. In addition to Hotbox, customers are offered Icebox storage for rarely used data. S3-compatible API allows you to connect to the repository using a wide variety of applications and use connectors to different programming languages.

    The servers.ru repository uses OpenStack Swift (S3 API is not supported). The provider does not offer inexpensive tariff plans for rarely used data and archives - in fact, this is a good option for hosting, which allows, for example, storing static site data and solving other similar problems. For corporate virtual infrastructure, the list of services is still poor. There is evidence that the provider builds private clouds for customers and, in particular, makes dedicated ceph installations there. This is not reported on the site.

    In Selectel, everything is similar: access via OpenStack Swift (the S3 API does not support storage) and the absence of separate tariff plans for rarely used data, although a very tasty price smooths this point. The main application, as in the previous case, is the hosting of static data, sites, etc.

    The Technoserv company has launched a full-fledged corporate object storage for business and may well argue with Mail.Ru Cloud Solutions. Full compatibility with S3 API is declared and there is a separate tariff for storing "cold" data. One drawback - the provider does not work with individuals.

    The hope of the national cloud platform - the Rostelecom storage uses the Hitachi Content Platform and supports the S3 API, OpenStack Swift and some REST API. Rostelecom does not have separate tariff plans for rarely used data, and setting up storage and access to it, to put it mildly, is not obvious. For example, the article [http://help.cloud.rt.ru/virthran/start/instrukcyas3browver] about access via S3 Browser - the need to manually encode login in base64 and read the md5 hash for the password is pleasing indescribably. Rostelecom also does not work with individuals - all of the company's cloud services are available only to business and government agencies.

    Ping from Russia


    Alas, on the object storage side, we cannot run programs, so client-server channel bandwidth measurements (iperf, etc.) cannot be used. We ping our storages with a hundred small (64 bytes) and a hundred large (1 kilobyte) packets from a virtual machine external to all experimental subjects running in one of the Russian data centers. Packets do not beat (0% loss), but the response time is different. For domestic services, it is much smaller, as expected - this will play a role in the exchange of large bundles of small files. There is no technical possibility to ping Technoserv; the provider filters ICMP.

    Datacenters of our services are located in Moscow, the big western three - in the USA.



    Stress tests


    To test the performance from Russia, we will look at the speed of downloading files to the repository and the speed of downloading from a machine external to all experimental subjects (the same as in the previous experiment). For the first test we take a large file, and for the second - a bunch of small files in bulk. We summarize all the results in a diagram and take a look at the result. Of course, we will work through the REST API, which supports one or another service — and we are not interested in a variety of file and block protocols.





    For customers from Russia, our services are clearly faster than the American Google and Microsoft, but Amazon is quite capable of arguing with them and even seriously outperforming the download speed of a large file. Although such a file is downloaded from domestic repositories significantly faster. With a set of small files, the picture is completely different - domestic services seriously overtake foreign ones, which was expected. An interesting peculiarity was found in Selectel and servers.ru public storages: content is downloaded from them much faster than it is downloaded (in other services the opposite is true). This once again confirms that these services are optimized for the distribution of static content and are good for a variety of hosting, but worse for corporate IT infrastructure.

    Summary


    Domestic providers compete worthily with the big western three. We tested public storages for hot data, and the availability of data centers in Russia (read in Moscow) helps them a lot. Although Amazon is able to provide high speed on large (1.4 GB) files, our services work with packs of small files much faster, which is important: the main application scenarios still involve working with a large number of small files. At prices, everything is not so clear - there are options much cheaper than foreign counterparts, there are more expensive (the spread is quite large). Servers.ru and Selectel do not have inexpensive tariff plans for rarely used data. This will become a problem if you are planning to deploy a virtual IT infrastructure of the company on their site (I would not want to pay for the storage of backups and archives in full). But they very quickly give away static content and are good for hosting. Rostelecom's services are difficult to configure, but it has the widest list of supported APIs and the storage speed is impressive. Although there is no separate tariff for rarely used data there either. For corporate use, the most interesting offers are Mail.ru and Technoserv - here you will find S3 API support, individual tariffs for rarely used data, and decent access speeds. In general, there is plenty to choose from. ru and Technoserv - here you have S3 API support, and separate tariffs for rarely used data, and decent access speeds. In general, there is plenty to choose from. ru and Technoserv - here you have S3 API support, and separate tariffs for rarely used data, and decent access speeds. In general, there is plenty to choose from.

    Another plus of Russian services is the absence of conflicts with the law (we all remember working with personal data). Even collecting personal information about users of the site, you can inadvertently receive a serious fine if the information is stored outside the country. Here, world market leaders will not be able to oppose anything to local players (Amazon, Google and Microsoft do not have data centers in Russia).

    Also popular now: