That's a very ambitious project you got there. I will try to answer as best as I can.
My opinion is my personal one so it doesn't reflect PythonAnywhere as a whole.
I will also try to be pragmatic, but do not let this discourage you. The greatest achievements overcome or sidestep limitations in clever ways, so I hope you will find a way to work around this behemoth of a project you describe.
1. Running licensed desktop software like Photoshop on PythonAnywhere
No, that’s not something PythonAnywhere is designed for. Neither AWS as far as I know, unless we talk about running a virtual machine in remote desktop. This is generally very flaky, resource intensive and inefficient. Machines do not like GUIs so, generally speaking, you will have a very hard time trying to make a machine use a program as users do. I might be getting ahead of myself though and you might have a cli tool in mind though.
The reason why these tools are not working is that you can’t install or run arbitrary GUI desktop applications on our servers, and you won’t get the kind of OS-level access you’d need to manage licensing, background GUI processes, or automation around them. PythonAnywhere is for running Python code (web apps, scripts, scheduled tasks, always-on tasks), not for hosting general-purpose software.
If what you really need is “run a program and generate files”, the typical approach is to use a server-friendly toolchain (for example, ImageMagick/Pillow for images, ffmpeg for video, etc) rather than a GUI desktop app.
<hr />
2. Estimating CPU seconds
A good starting point is to benchmark your workload locally:
- Run the core job once (or in a loop for 10–100 iterations).
- Measure runtime and peak CPU usage.
- Convert that into “runs per day × seconds per run”.
Then add a safety margin, because production workloads tend to have variation (bigger inputs, bursts, slower external APIs, etc). If your processing is heavy or long-running, it’s often better to design it as a background task and keep the web request path fast.
<hr />
3. A terabyte or more of storage
PythonAnywhere generally isn’t the right place for TB-scale storage. For that kind of volume, most people store the bulk data on an external object store and only keep code and small working sets on PythonAnywhere.
Common patterns:
- Store files in an object store (S3-like) and access them from your PythonAnywhere code.
- Use a CDN in front if you need to deliver lots of static content efficiently.
<hr />
4. Cost effectiveness vs AWS
PythonAnywhere is usually “paying for simplicity”: easy deployment, managed environment, fewer moving parts, and less DevOps overhead. AWS can be cheaper at scale or for certain workloads, but you pay in setup and operations complexity (networking, instances, scaling, patching, logging, security hardening, etc).
A simple rule of thumb:
- If you want fast setup and low ops overhead for a Python web app + background jobs, PythonAnywhere is often great value.
- If you need custom system software, specialized services, or large-scale storage/throughput, AWS (or similar) tends to be the better fit.
<hr />
TLDR; I don't think wrapping an app around a GUI licensed software is achievable in any of these systems and the operational overhead alone with be a huge issue. You need to think more about APIs, services and pipelines.
What are you trying to achieve is very ambitious and a back of the napkin estimations is at least a few thousands on bills every month, especially if you take into account how expensive is to process image and video.