Instead of using an Amazon machine, why not use a low-power ARM device? I have been running a small ARM computer at home for doing sshuttle, iodine, and samba over ssh (with port binding) for the past few weeks and it works very well. I know tcp over tcp is usually not good but it still works quickly for some reason. This costs less than a VM on Amazon and gives you more flexibility.
A nicer sshuttle command for VPN may be:
$ ./sshuttle -v --remote=server_USERNAME@serverIP:port_number --dns 0/0
If you sshuttle to your home router you may be able to samba or nfs to the ARM on your home network (using tcp and udp, I think).
Alternatively, SSHFS or something more normal could be used for mounting the ARM filesystem without a VPN but if you want to try Samba over SSH you could try:
$ ssh -C -c blowfish -L[host_bind_port]:localhost:445 server_USERNAME@serverIP
$ mkdir /Users/username/mount_spot
$ mount -t smbfs //server_USERNAME@localhost:[host_bind_port]/server_drive ~/mount_spot
Tools like rsync over SSH and UFTP are also nice for moving large files to and from the ARM server.
The sshuttle docs explicitely mention that it doesn't do TCP over TCP (rather as I understand, it's a transparent TCP proxy). I wonder how it handles UDP, my main interest in a VPN is for VoIP (SIP); I guess turning UDP into TCP still won't fly for this, especially over 3G. I guess I'll have to try it.
A nicer sshuttle command for VPN may be: $ ./sshuttle -v --remote=server_USERNAME@serverIP:port_number --dns 0/0
If you sshuttle to your home router you may be able to samba or nfs to the ARM on your home network (using tcp and udp, I think).
Alternatively, SSHFS or something more normal could be used for mounting the ARM filesystem without a VPN but if you want to try Samba over SSH you could try: $ ssh -C -c blowfish -L[host_bind_port]:localhost:445 server_USERNAME@serverIP $ mkdir /Users/username/mount_spot $ mount -t smbfs //server_USERNAME@localhost:[host_bind_port]/server_drive ~/mount_spot
Tools like rsync over SSH and UFTP are also nice for moving large files to and from the ARM server.
I tried making an instructible on this last week but it's kinda poor: http://www.instructables.com/id/Personal-ARM-Cloud-Server/