I cover what goes on during those operations in chapter 4, which you may have already read and understood by now :)
As for properly sizing... that depends on the data. I've seen snapshots vary in size from 1/20th to 1/5 the size of the Redis memory use. If you make an effort, you can get the snapshot to be similar in size, but you have to make an effort for that to be the case.
For AOF, it mostly depends on how many write operations you are performing. An AOF just after BGREWRITEAOF will be of similar size to a snapshot holding the same data, but for every write it receives, it writes that data to disk. How much to provision will depend on your actual data processing requirements, how often you want Redis to perform background rewriting, etc. The best advice I can offer is: test it out with a fraction of what you should reasonably expect, then multiply it out.
- Josiah