Renderbot: Scalable and Affordable Blender Rendering in the AWS Cloud. No middleman.

Wow, that´s what I call detailed instructions. will definitely find use for this. Thanks! :slight_smile:

Thanks for the support! AWS does not allow you to rent a server for less than one hour. So while, in theory, your math is correct, and the BMW cost for the time used was $0.004, you would have been forced to rent that server for the full hour at a cost of $0.31. So it would be up to you to make the determination as to whether you have enough work to render, or are in enough of a hurry, to justify spending that amount. In the end, it comes down to a calculation of the amount of rendering needed, the money you are willing to spend, and the time you want it to take. You can always choose to rent a less powerful server for a lower cost if you are willing to have the process take longer (e.g. overnight).

No problem!

Also, a big thank you to user Ibu Profen for pointing out some bugs in version 1.0.2. I will push a 1.0.3 update to the AWS marketplace as soon as possible, and believe that that update should resolve any issues any of you may be having (particularly with the instance status reports and render jobs not starting).

Keep in mind that in order to update your version, you will need to terminate your Client server and start a new, updated one using the same procedure as for the first (available on the guide at renderbot.net). Unfortunately, until I come up with a smoother update method, you will lose all your settings from the first server. To avoid any unnecessary headaches, I would recommend making a note of your settings before terminating the first server and transferring them to your new Client. I will post here when the 1.0.3 update is released.

Thanks for the clarification. Ok, even with this in mind it is very wonderful solution! :slight_smile:

Great news Thank you!

Quick update: I just updated the Node AMI to 1.0.3, which fixed the issue reported by Ibu Profen which caused the render jobs to fail to start and the queue to stagnate. The Running Instance Status report is still not loading, but I have identified the problem and will update the Client when I have time. For now, no big deal, you can just view your running nodes on the AWS console. You do not need to restart your Client to upgrade to the new Node AMI, the next Nodes you start will automatically be the new version.

i really like the idea of rendering on amazons cloud, but after reading 5 of the 30 pages with instructions i was really out

Hi, I just had some time and tried to set up a Renderbot.
In the end when I connect to the running EC2 instance i log in like the manual tells me. After that the manual says I´m supposed to see the Renderbot start screen. I don´t see that. Instead I just see what looks like an Ubuntu root directory or something like that.

I tried this by loggin in via Putty from Windows 7 as well as by logging in from Ubuntu (in a Virtual Box on a Windows Machine).

This is what I see instead of the start screen. What could be the problem?


login as: ubuntu
Authenticating with public key "imported-openssh-key"
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-48-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Wed Aug 12 20:09:48 UTC 2015

  System load:  0.02              Processes:           101
  Usage of /:   34.4% of 7.74GB   Users logged in:     0
  Memory usage: 6%                IP address for eth0: xxx.xx.xx.xx
  Swap usage:   0%

  Graph this data and manage this system at:
    https://landscape.canonical.com/

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

75 packages can be updated.
32 updates are security updates.


ubuntu@ip-xxx-xx-xx-xx:~$

I just tried the setup again, this time with the Renderbot Client 1.0.2 (last time was with 1.0.3) and now the Renderbot menu shows up.
Is there something wrong with 1.0.3?

A question about the running time: For example if I have 10 different .blend files to render using Cycles on renderbot server, will compute the cumulated time or will compute every single .blend file like an hour of render? If will take less than an hour to render all 10 frames I need from the 10 files I have, how much I will be charged? Like 1 hour render-time or like 10 hour render-time?

I haven´t gotten it to work yet due to the problems mentioned above but the manual states that when a renderjob is finished you can keep the render slaves running for the next project.

I´ve got it to run. I didn´t know that there had to be two instances running, one with the 1.02 Client and one with the 1.03 Node.

This is awesome, Renderbot, thanks for making brenda rendering so much less pain in the ass.

There are two bugs I´ve experienced besides the things I assume you´ve addressed in post #28:
The first and more important is that I can´t seem to save images in OpenEXR. I setup my scene in Blender to save the output files as MultiLayer OpenEXR but the Renderbot Farm saves them as PNG.

The second is less important:
I don´t get visual feedback when I return form a submenu to the main menu. For example: I start Renderbot and am in the main menu. I press 1 and now i´m in the “Setup” menu. Now I press 3 to return to the main menu but I´m still seeing the “Setup” menu. I can press a different number, like 4 for example and I will be directed to the “Start Instance” menu but I do not see the main menu.

Is it possible to somehow choose the - I don´t know how to call it - perhaps availability sub zone? When checking for the price you get 4 different offers. US-east-1a, US-east-1b, US-east-1c, US-east-1d. They often have extreme differences in price. The worst I´ve seen was for a c4.8xlarge instance that was 0.35$ in US-east-1a and over 6.00$ in US-east-1c.

So, sometimes it will happen that I order an instance at a price within the range (0.35$ for example) of one sub zone. On the AWS EC2 Spot Request page I am then told that I the price is too low because I´d have to bid at least 6.00$.

Sorry for not responding earlier. I should have made the instructions clearer. The Renderbot Client is the image you should be starting. The Client launches the Nodes, which do the actual rendering (and have no user interface). So the way it works is you launch the Client (latest version is 1.0.2), input your settings, and then launch Nodes through the Client interface (Node latest version is 1.0.3).

You just pay for the time used for however many servers you launch. If it takes less than an hour to render your 10 frames, you would pay for one hour per server only of use. Now of course, if you had launched 10 servers, you would pay for one hour x 10 servers running. You can launch however many servers you want, depending on how complex your scene is. Renderbot is a framework that runs on Amazon Web Services. Renderbot itself is free, and you just pay AWS for whatever time you use. You can get an idea of the specifications of the server options and how long it would take you to render each frame of your scene here: https://aws.amazon.com/ec2/instance-types/

Keep in mind that the cost of each server is much lower if you bid on it in the Spot Market (I discuss this more in the PDF). Also, if you are rendering 10 different files in one hour, you would need to change the settings on the Client image each time you want to change files, and use the “Push settings to servers” option to send the new file to the render nodes.

I hope this answers your questions.

Great that you got it running! Brenda was always set up to render in PNG format, and that will override any options you set in the .blend file. I will, in the future, try to get it to allow you to customize your output type. In the meantime, would converting to OpenEXR when your file is rendered be an ok workaround? I realize that the layer features of Open EXR might have been what attracted you to the format in the first place. Perhaps you could create one .blend for each layer and render them as separate PNGs?

As for the second issue, I’ll take a look at that and update the Client accordingly.

Thanks for trying it out and for the bugs.

Wow, I am sorry that that happened. I actually noticed that problem before. Basically AWS automatically assigns you a subzone, and instead of logically giving you the lowest-cost subzone it just sort of randomly assigns it, which means that sometimes the bids don’t work when they should. I hard-coded into Renderbot a search function that would find the lowest price and automatically bid on that subzone, but it must not be working. I’ll take a look at that and get back to you.

Converting wouldn´t be an option because I want to render 32 bit images with integrated render passes and png simply can not do that.
The png preset in the Brenda scripts is defined in an entry in the frames.txt file. The standard entry James Yonan gives on his git hub weg page is:

blender -b *.blend -F PNG -o $OUTDIR/frame_###### -s $START -e $END -j $STEP -t 0 -a

This PNG entry overrides everything defined in the Blender file. The way I understand it this is simply a file that starts command line rendering with things like $END and $START being variables defined by the user via the brenda-work command.

However, in my own installation of brenda I simply deleted the “-F PNG” from the frames.txt file and it worked fine.
Brenda then saves as the format defined by the user in the .blend file.