I have some experience of both scenarios, and they are both very simple to achieve.
Connecting to Redshift is pretty much the same as connecting to any other PostGreSQL database, it's just that the endpoint is in the cloud. It's worth noting that the ODBC driver for this isn't the latest version.
I've personally found performance to be pretty good. As with any other data loads keep your queries tight, maybe consider incremental loading, and you should have no real issues.
No real challenges either. Not too sure about initial set up of the VPN, but once this is out of the way, it works just the same as any other PostGreSQL environment.