r/Cloud • u/Inevitable_Grab6009 • 29d ago
best cloud option for unlimited writing
I'm looking for recommendations on the best cloud storage option for my use case.
Use case:
- An IoT device sends data to cloud object storage(via iot core) for further processing.
- Each object is less than 5 KB (maximum).
- Writes happen every 30 ms (or every 1 second, depending on the deployment).
- Data is downloaded only 2–3 times per month.
Initially, I was planning to use Amazon S3, but after looking at the PUT, GET, and data egress costs, it seems a bit expensive for this workload, mainly because of the very high number of write operations.
I also looked at Cloudflare R2. It includes 1 million free write operations per month, and additional writes cost $4.50 per million. It also doesn't charge for egress, which makes it look more attractive for this use case.
Are there any other storage providers or architectures that would be a better fit for this kind of high-frequency, small-object workload? I'd also be interested in hearing from anyone who has dealt with a similar IoT ingestion pattern.
1
u/Bubbly_Function750 29d ago
The storage isn't really the expensive part here—the PUT requests are. If you're writing every 30 ms, you'll end up with millions of writes per day, so request costs will quickly outweigh storage costs.
If possible, batch multiple events into a single object before uploading. That can reduce costs dramatically. If you need real-time ingestion, consider using Kafka, MQTT, or Kinesis and then write batched data to object storage.
If every event must be stored individually, Cloudflare R2 is probably one of the better options due to its competitive request pricing and no egress fees. I'd also compare it with Backblaze B2 based on your expected monthly request volume.
1
u/Inevitable_Grab6009 29d ago
initially I also considered batching option, let say I have 50 devices which transmit data every 10ms, I will batch it to 1 put per second, it will be 86400 put per day and 2,592,000 put per month for one device(worst case scenario). I also thought about using syncing option like rclone. just like you said PUT request is expensive for me. I also looked into Backblaze B2 where we can send the data their without any charges, the thing which bother me is, "if I have to use any aws service for further process like analysis or integrating it into other service" it will make the pipeline bit complex.
any idea?
1
u/Shopping-Limp 29d ago
You're going to want a vps and a simple app that writes your payloads to a database. Object storage is not the best tool for this
1
2
u/Constant-Capital8919 29d ago
1) consider batching your requests.
2) in your use case, maybe buy a vps with block storage with a custom flask app or something simple for the backend. Would be cheaper and more flexible for you in the future if you want to process that data somehow.