Farms - Stacks
What is a Farm in Brender Studio
A farm in Brender Studio is essentially a CloudFormation stack, which is a collection of AWS resources grouped together. This grouping is necessary to automatically create the entire rendering logic.
What is CloudFormation?
AWS CloudFormation is a service that allows you to model and provision AWS resources using templates. To learn more, visit the AWS CloudFormation website.
Configurable Parameters for Creating a Farm
Brender Studio allows users to adjust several parameters when creating a farm, including:
- VPC with Public/Private Subnets: Users can configure the Virtual Private Cloud (VPC) with both public and private subnets according to their needs.
- Maximum vCPU Capacity: The maximum vCPU capacity for the compute environments (AWS Batch) can be set for various queues such as spot CPU, spot GPU, on-demand CPU, and on-demand GPU.
- Bid Percentage for Spot Instances: The bid percentage for spot instances can be configured to control the maximum price a user is willing to pay for spot instances.
- Blender Versions: Users can choose from a list of different Blender versions, such as 3.6.0, 4.1.0, etc. These versions are essentially Docker images associated with a tag in an ECR (Elastic Container Registry) repository. For more information, users can refer to the Blender Repository section.
Important
Deployment of Stacks
The stacks are deployed in the cloud using a service called CodeBuild. Brender Studio builds Docker images with different tags and then performs a CDK (Cloud Development Kit) deploy with the customized parameters for each farm.
CDK is a software development framework for defining cloud infrastructure in code and provisioning it through AWS CloudFormation. For more information on CDK, visit the AWS CDK website.
Learn More
To learn more about CodeBuild and how Brender Studio builds resources, visit the Farm Builds section.
Resources in a Stack
A typical farm can include the following resources:
- S3 Bucket: An S3 bucket is used to store the input and output files of the rendering tasks.
- EFS (Elastic File System): EFS is used to store the Blender files and assets shared among the farm resources.
- AWS Batch: AWS Batch is used to manage the rendering tasks, including job queues, compute environments, and job definitions.
- VPC (Virtual Private Cloud): A VPC is used to isolate the farm resources and provide network security.