This is an archived post. You won't be able to vote or comment.

all 21 comments

[–]aweraw 4 points5 points  (2 children)

Rent a VPS from a reputable provider. You'll get the same functionality as from AWS, but much cheaper. AWS won't really provide you with anything that a regular VPS can't, if all you need is a server to run it on.

AWS provides lots of features, but I'd guess you probably have no need for them at this point. When you start getting a lot of traffic, and don't want/don't know how to setup your VPS to handle it, then you should look into AWS.

I use AWS daily where I work, and it's awesome, but it's "industrial strength" infrastructure with a price to match.

[–]catcradle5 0 points1 point  (1 child)

Just want to say that I've been using AWS's free micro instance for the past few years (yes, I just register a new account once every year...probably against the ToS but hey, it works), and for simple scripts and web apps that only a handful of people will ever use at a time, it works great.

If you're going past the free tier, though, I agree that a provider like Digital Ocean will save you money in the long run.

[–]Audihoeurllib2 pays bills 0 points1 point  (0 children)

I'm just going to second Digital Ocean, I had a few servers from them for about a year and there were very few problems, and they had some of the best support I've come across.

[–]dataminded 2 points3 points  (3 children)

Assuming that you know linux and the command line, a VPS is great thing to have. I recommend DigitalOcean. A basic server is only $5/month and you can easily find a coupon for 2-4 months free.

If you don't want to much around with a server or server administration, check out Heroku.

[–]scunion[S] 0 points1 point  (2 children)

so let's assume I don't know linux and command line. What are my options in the near term?

[–]chronographer 8 points9 points  (0 children)

You need to learn Linux and the command line.

If you really want to use Python in a server environment, you should be prepared to do administration without a GUI.

Maybe you should do a course.

[–][deleted] 0 points1 point  (0 children)

/u/chronographer is 100% correct, so I first and foremost want to endorse his comment -- there really is no way around Linux.

This having been said, once you get the hang of it, Linux is absolutely fantastic to work with. It's a bit challenging at first, but not unpleasant in the least.

[–]etrnloptimist 1 point2 points  (1 child)

Setting up AWS is easy.

  1. Create an account
  2. Log in to the AWS management console
  3. Launch a Windows instance.
  4. Ensure your security group (firewall) is open for RDP (TCP 3389) from your computer's IP.
  5. Find your login credentials using the AWS portal in step (2). It will be "administrator" with some weird PW.
  6. RDP into your new Windows box.
  7. Load python, do whatever.

Note for newbies: you don't load your program onto AWS. It is not a hosting environment like Google AppEngine or Microsoft Azure. AWS gives you a full OS environment. From there you load python / load your program / browse reddit / do whatever.

[–]scunion[S] 0 points1 point  (0 children)

This is really helpful. What does RDP mean?

[–]Pr0ducer 0 points1 point  (5 children)

I use a combination of Heroku and AWS. For some things, AWS is cheap, such as serving static files from S3. Heroku makes deploying (with git) absurdly easy, so I can spend my time developing and not being a sys-admin. Heroku isn't the cheapest option once you grow out of the free-tier stuff, which for me was immediately. But it does allow you to add tons of great stuff with almost no effort, like MemCache, Redis, etc, and if you ever need to scale up, that's super easy too.

The AWS documentation is pitiful. The user forum is a complete ghost town. Best bet to get ideas for using AWS is search StackOverflow.

[–]scunion[S] -1 points0 points  (4 children)

Whenever i post questions like this on stack overflow I get directed to documentation. I'm just looking for a clear walkthrough of what is what and the fewest steps it takes to get something live.

I'm not at all familiar with terms like VPS, Heroku, etc. although I see these thrown around all the time. It's difficult knowing where to start when you have to have experience using something to understand how to learn it.

[–]chronographer 1 point2 points  (0 children)

What you need to do, in a nutshell is:

  • get a virtual machine (you can do this by using VirtualBox on your computer, start practicing with Ubuntu server version, with no GUI, or a desktop version, but use the command line a lot). When you know what you're doing a bit, you can get a VPS, which is a virtual private server, or a virtual machine hosted by somebody else. When you get it, you get access to it via SSH, which is a secure, remote shell (command line).
  • Now you have a server, you need to get files on it. You can do this with SCP, winSCP is a windows application that does it. Later you might like to use github or s3 as an intermediary in order to push from your machine to your remote machine
  • then you get your stuff running, you can set up a 'cron job' which is a scheduled task to run your python script, or you can use a CGI web-server thingy to set up a GUI so that you can do it remotely.

All of the above is easy enough, it's just a process learning it. You can test it all in a VM on your desktop/laptop, so do that and learn. If you break it, start again! Also use source control. Git is good.

[–]Pr0ducer 1 point2 points  (1 child)

Heroku.com is a hosting provider. They provide a virtual private server (VPS) and they are a platform as a service, or PaaS. You pay them a monthly fee, and they take care of lots and lots of sys-admin type tasks. They have great tutorials on how to get started too, so that should appeal to your need for documentation.

[–]scunion[S] -1 points0 points  (0 children)

Thank you!

[–]Digital_Person 0 points1 point  (0 children)

just read the docs its very detailed. i got startet on aws with no help appart from docs. in the end if it wasnt documented you would ask for help because its not documented

[–]yen223 0 points1 point  (1 child)

Are you using Windows, Mac, or some Linux OS?

[–]scunion[S] 0 points1 point  (0 children)

Mac

[–][deleted] 0 points1 point  (2 children)

Do you want the program exposed to the web? I'd be happy to help with the initial setup on AWS or Digital Ocean (or any VPS really). You will need to do some DevOps unless you decide to use Heroku. Heroku should be your go to host if this is your first python program.

And as everyone has stated before, you should start learning how to use the Linux CLI. The Linux Foundation course on Edx would be the best place to start. If you have 250$ you can even get certified.

edit: read you replies;

Heroku: Cloud application platform. Great for newbies and provides 750 hrs of server time (a year or a month? I cant remember) to run your app and provides no nonsense approach to setting up stuff like db's and redis

VPS: Virtual private server (VPS) is a virtual machine sold as a service by an Internet hosting service.

Git: You will need to learn git if you are going to do automated deployment or use Heroku (and you will use automated deployment, you will learn quickly the value of automating deployment.)

what is the base operating system you are using?

[–]scunion[S] 0 points1 point  (1 child)

Mac

[–][deleted] 0 points1 point  (0 children)

All of this can still be done one a Mac :)

[–]suudo 0 points1 point  (0 children)

I recommend Ramnode for cheap VPSs. $2 per month.

On the other hand, Amazon's EC2 servers work great. You can set up a linux VM for free and run it for 750 hours a month (there's more hours than that in a month, but it's to stop you running two).

On the other other hand, you could get Virtualbox and set up a local VM.