Most virtual private servers in modern clouds use solid state drives, usually configured in RAID 10 or RAID 50 for redundancy (ability to tolerate X of Y failures with no data loss) combined with striping to enhance performance – at a minimum. Some public clouds use an implementation of Ceph or OpenStack Cinder to present software-defined block volumes, replicated across multiple physical nodes, to the compute instances.
Although TLC or QLC consumer SSDs have become relatively inexpensive, the price/GB for enterprise SLC or MLC SSDs is still much higher than mechanical HDDs. Compared to the average home or office PC, datacenter servers are subjected to a very strenuous duty cycle – with round-the-clock I/O activity writing and erasing from the NAND flash. Storage manufacturers do not warrant their consumer SSDs for datacenter usage, as it’s believed the lifespan of TLC or QLC flash would be drastically reduced by server workloads.
SSD block storage is a comparatively expensive way to add storage to a cloud server, ranging from $0.10-$0.12/GB/mo for a General Purpose SSD (gp2) volume with Amazon EBS and similar at other major cloud providers. If you wanted a completely managed NFS-as-a-service such as Amazon EFS that can be accessed by multiple EC2 machines simultaneously for high-availability, it’ll cost $0.30/GB/mo. Azure Files, a similar service to Amazon EFS providing managed file shares accessible via SMB, charges $0.24/GB/mo for Premium Storage on SSD.
Mechanical hard drives are great for storing large files that are not very frequently accessed. If your NextCloud instance has relatively few users (less than 25) and you can accept lower I/O throughput, deploying NextCloud on a storage VPS might make financial sense. Assuming just a few users are syncing files with NextCloud at once, their network connections would be saturated before hitting any I/O limitation on the storage VPS. A typical SSD has data transfer rates of 500MB/s read and 315MB/s write and up to 75,000 read IOPS (4K) and 9,000 write IOPS (4K). By comparison, even a 15K RPM enterprise HDD can push no more than 180-200 IOPS at up to 200MB/s.
Legacy web hosts who entered the SSD VPS or public cloud market later on frequently have hardware with SATA or SAS HDDs they have excess capacity on – so they market these machines as storage VPS.
A deployment of NextCloud on a KVM storage VPS can be very cost effective, with 1TB of HDD storage costing as low as €5/month. Usually at this price point you can expect local RAID 10, meaning the storage is resilient against a single hard drive failure, but not multiple drive failures or a failure of the RAID controller. Ideally you should replicate your data to a secondary node using lsyncd, and also have a daily or weekly backup from time-to-time with rsync.
If you’re willing to spend a little bit more on high-availability SSD block storage, Hetzner Cloud recently introduced its Volumes at €0.04/GB/mo. A 1TB volume would cost you €40.96/mo on top of a VPS which starts from €2.49/mo for 2GB RAM. If one of the storage nodes storing your data fails, Hetzner will automatically rebuild it using the redundant copies on the other nodes. This way you could simply take point-in-time snapshots with Btrfs and push those snapshots to another location over SSH as a backup. Since Hetzner includes 20TB outgoing traffic with all of its Hetzner Cloud plans, your users could download a lot of the stored data without exceeding your free allotment.
Major public clouds such as AWS, Azure, and GCP are not particularly suited to NextCloud deployments, as their data transfer out rates stand at around $0.12/GB for the first 10TB/mo – which can get very expensive very quickly. Using US-based cloud providers, even in a European region, also raises concerns about data protection and compliance with GDPR. Independent hosting providers based in the EU such as AlphaVPS at the low-end (for users with low throughput and bandwidth requirements), or Hetzner Cloud (for users who plan to scale & grow) are much better options for cost-effective cloud storage.
If you want to deploy NextCloud for production, our NextCloud architects can help you plan an infrastructure and custom implementation that optimizes:
- Savings on storage and bandwidth costs
- Data durability with RAID or high availability storage solutions, such as Ceph
- Quick network performance from the location of your users
- Security with end-to-end encryption and full-disk encryption
- Compliance with data sovereignty concerns and regulations such as GDPR
- Collaboration with apps such as NextCloud Text, Collabora Office, and OnlyOffice
- Backup & replication using lsyncd, btrfs snapshots, and rsync cron jobs
- and more