I am just starting to play around with AWS and am going to try out Renderbot (is there anything easier with open source licensing?). I just want to make it possible to use AWS to make rendering my scenes a bit more pleasant. I want to mainly start with individual frames (however I’m not sure if that’s feasible from what I understand of AWS pricing so far, 3x15mins sessions that are started and stopped are the same as a single 3hr session?). I am hoping to hear from someone with first hand knowledge using this on a small scale for small personal projects.
That is true. The smallest time unit you can rent an istance (AWS calls computer instances) is 1 hour. For a very fast instance (36 cores) you pay about 35 to 45 cents. If you terminate an instance and restart it you pay again.
In the settings of renderbot you can tell renderbot to terminate the instance after finishing a render job. If you don´t set that to terminate the instance will keep running. After finishing the job simply upload your next scene and add your frame to the render queque. The scene should start rendering. I´ve never tried this to be honest because I usually render animations.
Beware, the instance will continue running even if you close renderbot. You will have to terminate it manually in the AWS console. If you forget and the instance runs for a month this is very expensive.
In fact that is general advice. After stopping renderbot allways check in the AWS console if you still have instances running. Also check if there are any open spot requests and if there are cancel them all.
To my knowledge there is nothing easier which is as cheap as Renderbot. There are render farms for Blender but they cost more.
But the renderbot manual is pretty straight forward. If you do exactly what it says it shouldnt be that difficult. If you are stuck at a specific point don´t hesitate to post you problem here.
Excellent info, thank you. As far as actual instances what do you tend to use? CPU or GPU and which if so? (PS I setup a billing alert within 10 minutes of setting up my AWS as I’ve heard of people getting pretty burnt with the whole AWS thing). I will be continuously checking my instances to make sure they are gone when I’m done.
CPU instances have a much better price per performance ratio than GPU ones. I usually use c4.4xlarge or c4.8xlarge instances because it is a bit easier to fit faster instance render times into full hours than slow ones.
I run Brenda scripts (under windows) through an Ubuntu VM that runs in Oracle Virtualbox. Brenda has very good documentation and it is easy to use it through command line also. From brendapro.com site you can find tutorials on how to create your own AMIs with updated Blender versions etc.
Renderbot is actually just a GUI for Brenda. Renderbot makes using Brenda a lot easier and if you are on Windows you don´t have to go through the trouble of setting up a virtual box.
I use 4.8xlarge mainly and 4.4xlarge if I run out of 4.8xlarge. Both on CPU. In the beginning you only have - I think - One 4.8xlarge and and one 4.4xlarge. You have to increase the limit in the AWS console. This is free but can take a day or two so do it early on.
I now have a limit of 20 4.8xlarge and 20 4.4xlarge which has so far been enough for everything I needed.
I am printing the small guide that comes with Renderbot tonight and giving this a shot. The only thing that is somewhat confusing me is in your post and the one above kesonmis you both had mentioned virtual machines and Windows? I didn’t see any mention of this in the Renderbot guide. I understood it ran as a t2.micro instance for the client and the nodes ran under whichever instances you had chosen in the client? (and whether it was on demand or spot)
Was the reference to the VM only to using the Brenda scripts minus the Renderbot GUI? Also I had noticed in the Renderbot GUI there is a spot for a queue, am I able to upload say 30 zipped blender files to my s3 storage and queue them all up to render one after another?
You only need the VM if you use Brenda without Renderbot.
Renderbot runs on an t2.micro but you connect to it from Windows via Putty which is a program that allows ssh connection from Windowns.
You can upload 30 files but you can not batch render them unfortunately. At least I don´t think so. The render queue is there to define which frames of an animation Brenda renders.
I use virtualbox and an Ubuntu VM there just because I once set it up and don’t have real need for a Windowsable solution like Renderbot. Renderbot takes some edge off, but the underlying logic is the same as Lumpengnom said. My VM serves the same purpose as the micro instance with Renderbot.
As a side note, if you need to upload a lot of stuff to S3 or download lots of frames, install the amazon command line tools AWS CLI. And then set the config file so that the max concurrent threads value is big, like 500. I had rather slow up/down speeds with S3 even when using S3 Explorer Pro with multipart and threaded load, but with CLI I was able to saturate my 500mbit connection easily.
In config file, add this (second and third row must be indented, can’t format it here correctly) for fast S3 speed using CLI:
s3 =
max_concurrent_requests = 500
max_queue_size = 10000
The aws config file sits in C:\Users%user%.aws\ folder in windows.
I just rendered out a baseline animation https://www.youtube.com/watch?v=KyY6lwSJ2-E&feature=youtu.be (mind you the original is uncompressed 250samples/250 frames - 1080p@60fps). I wanted to see how long my machine took to render it out which was just over 10hr45min. I plan to attempt to render the same thing out once I get my AWS Renderbot up and going. Can you tell me which version of Blender it is using for the render? I’m hoping 2.78.
AWS public image list shows three renderbot node images, one of them says it is Blender 2.75a and other images do not describe a change in version. So I would not count on them having newer versions. Renderbot seems to have a hardcoded image to use, at least you can’t set the AMI name, so you can’t use a different one if you want.
This is the part where rolling with plain brenda can be more helpful as you can always start the node image (that is yours, not some public image) on a VM, ssh into it, install newer Blender version, save modified instance state as new image and then just change the blender path and AMI name in brenda config files.
I was hoping it was Blender 2.78 but no such luck. I will resort to the command line tools of Brenda if need be. I watched about 45mins of that conference and talking about Brenda usage and it looked more or less straight forward (a friend of mine is a fairly seasoned programmer maybe I can convince him to write a ncurses based GUI).
As far as creating my own AMI is it as simple as just picking one of the generic ubuntu images and slapping the newest blender on with sudo apt-get? do I then have to do the same and install brenda onto the image and save the state back as a new instance? Also go get GPU rendering working I’d need to install the Nvidia drivers on also yes? (I could see that going rather bad - but from what I keep reading its a bit over-rated using GPU instances anyway).
Check this thread in brendapro.com forum, it describes step by step what to do to get a custom image with all the stuff set up: http://brendapro.com/forum/viewtopic.php?f=7&t=37
When you already have the image prepped with boto and brenda etc, updating Blender is basically only apt-get yes.
I would say don’t bother with GPU drivers unless there is a really justified need for GPU use. Rendering with CPU is cheaper and with fast VMs as fast as with GPU but without memory and feature set limitations. Just don’t forget to set the blend file up for cpu rendering: change the device and also tile size.
Hi guys… Sorry for the necroposting, but I’m going through the same process. The link to Brenda pro seems dead, is there any link with some good guide you can recommend?
Thanks!