Oh, I forgot to mention that you can cut the amount of memory required per storage node by using more storage nodes/hosts. So if you've 4GB data, you could spread that across 8 machines with 4 nodes in each node group and need only 1GB (plus indexes and system overhead) per machine. Obviously you're still going to need ~8GB to store the data (4GB x 2 replicas), but since (at least where I live) 2 x 512MB RAM boards are cheaper than a single 1GB board, that might save you a few $__LOCAL_CURRENCY_UNIT__.
Check out "How much RAM do I need?" in the Cluster FAQ for a brief explanation:
http://dev.mysql.com/doc/mysql/en/mysql-cluster-faq.html
You might be able to save some memory by making sure that all your primary keys and any unique indexes are declared with USING HASH.
And of course, your tables are normalised and using the smallest columns needed to fit the data, right? :)
Jon Stephens
MySQL Documentation Team @ Oracle
MySQL Dev Zone
MySQL Server Documentation
Oracle