What is our primary use case?
I primarily use
AWS CloudFormation to deploy our services, including Cognito pools,
S3 buckets, CloudFront,
EC2, and more.
AWS CloudFormation allows me to write code for each service and deploy it automatically, creating a server with a single command for different stages like development, pre-prod testing, and production.
What is most valuable?
AWS CloudFormation is valuable because it allows me to create resources using YAML files without needing to learn a specific language. It simplifies the process of writing code and deploying infrastructure. Managing, maintaining, and deploying become easier as it allows the creation of the same resources on multiple accounts, making it efficient for infrastructure management. The template validation feature is also significant as it provides errors and explanations for code validation, ensuring necessary corrections before deployment.
What needs improvement?
Improvements are needed for sharing resources between template files, especially when using
AWS SAM. Documentation can be difficult to understand, and I suggest
AWS provide small instructional videos on their website. Additionally, creating microservices and connecting multiple APIs into a single API gateway can be challenging; documentation should address specific needs. The ability to split CloudFormation templates without losing data due to changes in resources like API gateway URLs or Cognito pools is also needed.
For how long have I used the solution?
For the past one and a half years, I have been working on AWS CloudFormation.
What was my experience with deployment of the solution?
Deploying AWS CloudFormation can be time-consuming, especially for large applications with many resources such as APIs,
S3, and CloudFront. The initial deployment might take around twenty-five to thirty minutes, while subsequent deployments take about twelve to fifteen minutes.
What do I think about the stability of the solution?
I rate stability seven out of ten. Data loss can occur when splitting or scaling applications due to changes in resources. Scaling the application, especially dividing it into microservices, presents difficulties.
What do I think about the scalability of the solution?
I rate scalability six out of ten. Splitting CloudFormation into multiple formations results in changes to resources like API gateway URLs and Cognito pools, which causes issues, especially when trying to maintain consistency across resources. Assigning identity to resources to prevent deletion would improve scalability.
How are customer service and support?
I rate customer support six out of ten. Free support for AWS CloudFormation is not provided, and while some support is understandable due to its complexity, assistance for service-related issues should be accessible without a cost.
How would you rate customer service and support?
Which solution did I use previously and why did I switch?
Before AWS CloudFormation, I was manually creating resources. CloudFormation is unique in offering the ability to create AWS resources without manual intervention.
How was the initial setup?
I rate the initial setup eight out of ten. Some functionalities do not work as expected, requiring searches outside documentation for solutions. However, overall, it provides a useful transition from manual creation to automated setup.
What about the implementation team?
I manage the deployments myself. For maintenance, it depends on the product size. Small projects can be managed by one person, but larger applications, like e-commerce, require a team of two to three people.
What's my experience with pricing, setup cost, and licensing?
AWS CloudFormation is free. However, there may be unexpected costs if developers deploy services incorrectly without cost awareness.
What other advice do I have?
I rate AWS CloudFormation eight out of ten. I advise new users to experiment and learn CloudFormation during the development process. Be sure about the code before deploying, as mistakes can lead to unexpected costs and data loss. Learning CloudFormation quickly is beneficial to avoid managing difficulties.
Which deployment model are you using for this solution?
Hybrid Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Amazon Web Services (AWS)