Pretty consistent results with our findings. Nice work!
Some issues: The number of keys being used are small. In the ideal set up, you want a factor more keys, and ensure that the overall size of data set is at least 2x the size of RAM. From this setup, I’d decrease the size of values to say 64KB (from current ~3MB), which would give you 2.4M keys to generate the same data set of ~150GB.
Also, Amazon i3 instances allow local SSDs, which give you 100K IOPS with 4KB block sizes — you can easily achieve that on a desktop as well. These are much better numbers than laptops or remotely accessed file systems (like EBS or Digital Ocean in this case).