I have a server instance (Ubuntu) running on AWS EC2. What's the best way to use GUI-based Python editor (e.g., Spyder, Sublimetext, PyCharm) with that server instance?
You could handle things a few ways, but I would simply mount the instance's filesystem locally, and keep a Putty (Windows) terminal open to execute commands remotely. 
Trying to install a GUI on the EC2 instance is probably more trouble than it's worth, and a waste of resources.
In most cases, I build everything inside a local (small) Ubuntu Server VM while I'm working on it, until it's ready for some sort of deployment before moving to an EC2/DO Droplet/What-have-you. The principles are basically the same - having to work with a machine that you don't have immediate full command of - and it's cheaper, to boot.
Using Python GUI Editor on Ubuntu AWS