Maestro Stacks vs. CloudFormation Stacks
Although AWS CloudFormation and Maestro stack templates have similar goals, there are some differences in their operation principles and syntax.
The main difference is that AWS CloudFormation templates describe the state of infrastructure to be obtained, while Maestro templates describe the actions to be taken.
Therefore, the structure of templates also has some differences. At the same time, there are blocks that have similar functions and syntax.
Below, you can see the generalized structures of CloudFormation and Maestro Stacks .json files:
The blocks of the same color have similar functions in stack templates. Outputs and Parameters sections have similar syntax for both template types.
In case it is necessary to use a Maestro Stack template outside EPAM Orchestrator, you can easily convert it to a CloudFormation template using the
or2-convert-maestro-stack-template (or2cmst) command:
or2cmst -p project -r aws_region -f maestro_stack_file_path [-d output_aws_stack_file_path]
Here, you specify the name of the AWS region in which the stack will be run. Due to image names mapping specifics, the retrieved template will be
unusable in the regions other than the one specified at the or2cmst command run.
If you need your stack to work in other regions, repeat the command for all AWS regions in which you plan to use the stack template.
The output file path (the -d parameter) defines where the resulting template (.json) will be saved. If you do not specify the output file path,
the CloudFormation template text will be displayed in the console.
If you need to convert a Maestro Stack template which was uploaded to Orchestration, but you do not have it on your workstation, open the stack template in the
Stack Builder wizard, copy the template text and save it in the .json format. Then use the or2cmst command described above.
CloudFormation Manipulation Commands
Maestro CLI tool has a set of commands designed to manipulate CloudFormation stacks. Below, you can see
the list of the commands and their purpose:
or2-run-aws-stack |
or2rawss |
Runs a new stack based on the specified template |
or2-describe-aws-stacks |
or2dawss |
Describes the existing stacks for the specified project and region |
or2-describe-aws-stack-events |
or2dawsse |
Returns the events related to the specified stack |
or2-describe-aws-stack-resources |
or2dawssr |
Describes the resources created during the stack execution |
or2-delete-aws-stack |
or2delawss |
Deletes the specified stack |
The AWS-related commands can be used only for AWS-type regions.
Maestro Stacks Manipulation Commands
Maestro Stacks are manipulated with another set of Maestro CLI commands:
or2-upload-file |
or2uf |
Uploads a template file to the server |
or2-describe-files |
or2df |
Describes the templates uploaded to the server |
or2-run-maestro-stack |
or2rmstack |
Runs a new stack based on the specified template |
or2-describe-maestro-stacks |
or2dmstack |
Describes the existing stacks for the specified project and region |
or2-describe-maestro-stack-resources |
or2dmsr |
Describes the resources created during the stack execution |
or2-delete-maestro-stack |
or2delmstack |
Deletes the specified stack |
or2-validate-maestro-stack-template |
or2vmst |
Validates the specified stack template |
or2-convert-maestro-stack-template |
or2cmst |
Converts the specified Maestro Stack template to CloudFormation |
Maestro Stack commands can be run in EPAM Cloud, AWS, and Azure regions.
Stack Templates
A CloudFormation Template is a simple JSON file that describes the AWS infrastructure to be created. It allows creating and using resources
which are not available through Maestro CLI commands.
A template contains several sections. The Resources section is the only obligatory one.
The template text should start with an open brace symbol ({) and end with a closed brace (}).
Below, you can see the basic anatomy of a template with all the possible sections:
{
"Description" : "JSON string",
"Parameters" : { set of parameters },
"Mappings" : { set of mappings },
"Conditions" : { set of conditions },
"Resources" : { set of resources },
"Outputs" : { set of outputs }
}
For more information about templates and snippets please visit the
CloudFormation Template Reference page.
Maestro Stack template has a bit different syntax and structure, but the basic approach is similar:
{
Context : {variables list},
Flow : {
{Command: command name
command details
next[{command....}}]
outputs: [{outputs settings}]
parameters: [{parameters settings}]}
}
For more details on the Maestro Stack template structure, please see the attached document.
Running stacks via Management Console
EPAM Orchestration provides EPAM Cloud users with the ability to run Maestro and AWS stacks using a graphical wizard, the same which is used for running instances.
The wizard is reached from the Main Page of the
EO Management Console.
Follow the step by step instruction by selecting the target project, region, stack and stack parameters:
The Run Wizard is dynamic, that is, the set of custom parameters which the user has to enter for the stack execution may differ depending on the selected stack.
For the detailed description of the Run Wizard please visit the
Run Wizard page.
Pricing
The stack influence on the project cost depends on the resource manipulation actions invoked by this stack.
However, you can get an approximate estimation of the resources to be created before you run the stack via the Cloud Management Console:
The estimations include three prices:
-
100% load - the price for a VM running 24/7
-
30% load - the price for a VM, running during standard working hours
-
Average - the average monthly price for the VM of the specified configuration.
The estimations are based on the assumption that 100% of the system storage is used. Additional volumes usage is not taken into account.
To calculate the price for the resources in external regions, use the native pricing calculator tools from the external cloud providers.
Please note that storage usage can significantly influence the actual price of your resources
Documentation
Below is a list of documents related to this section. You can find the full list of our documents
in the Documentation Storage.
Please select the required document: