Lab complete!
Now that you have completed this lab, make sure to update your Well-Architected review if you have implemented these changes in your workload.
Click here to access the Well-Architected Tool
In the previous step, we setup a question and the best pracitices. We collected all the necessary resources like developer guide and blog posts as guidance reference. Our next step is to create a logical rule for these options to indicate the risk level if the best practices was not applied.
Referencing the Custom Lenses Format Specification , we can see all the “riskRules” are combinations of “choice id” and operators -
As a result, we list out all the options defined in the previous step as well as the risk level we want the operating team to be aware of. We also need to assign a unique “choice id” for each best practice option.
Choice | Risk Level if not applied. | Choices[][“id”] | |
---|---|---|---|
1 | Manually trigger Amazon DynamoDB Backup process | High | ddbops1_1 |
2 | Enable Amazon DynamoDB PITR Feature | Medium, if covered by other backup process. | ddbops1_2 |
3 | Use AWS Backup for Amazon DynamoDB tabls | Medium, if covered by other backup process. | ddbops1_3 |
4 | Export DynamoDB to other storage media | Medium, if covered by other backup process. | ddbops1_4 |
5 | None of Above | High | ddbops1_5 |
We now need to design our rule logic for this question:
{
"condition":"ddbops1_1 && ddbops1_2 && ddbops1_3 && ddbops1_4",
"risk":"NO_RISK"
}
For some cases, one of the options being applied will be good enough. We can design our rule by using “OR” operator ("||"):
{
"condition":"ddbops1_1 || ddbops1_2 || ddbops1_3 || ddbops1_4",
"risk":"NO_RISK"
}
Usually the “None of Above” answer is one frequent option of question we can see. Here if “None of Above” (ddbops1_5) was checked, we should set it as “HIGH_RISK”.
{
"condition":"(!ddbops1_1) || ddbops1_5",
"risk":"HIGH_RISK"
}
After we listed out all the different risk conditions, we can put it all together and go to next step.
"riskRules":[
{
"condition":"ddbops1_1 && ddbops1_2 && ddbops1_3 && ddbops1_4",
"risk":"NO_RISK"
},
{
"condition":"(!ddbops1_1) || ddbops1_5",
"risk":"HIGH_RISK"
},
{
"condition":"default",
"risk":"MEDIUM_RISK"
}
]
Now that you have completed this lab, make sure to update your Well-Architected review if you have implemented these changes in your workload.
Click here to access the Well-Architected Tool