What is our primary use case?
We are a computer consulting company and AWS CloudFormation is one of the solutions that we provide to our customers.
CloudFormation is definitely an integral part of AWS Native solutions. It is used for setting up your environment, such as your DNS structure. If something happens in your current environment, such as a disaster, then you can bring up the environment in another region by using the CloudFormation template. Essentially, it is a tool that is used for automating cloud deployment.
What is most valuable?
The templates are helpful because they can help to get a quick start on a project. You can spin up your development environment immediately, do some jobs, and get it out of the way.
There is a cost-benefit to using CloudFormation that comes about because of the automation that it provides.
One really good thing is that you don't have to be specific when it comes to sequencing.
The automatically template creation feature is good, although it needs to be made a bit more extensive.
What needs improvement?
This tool is not intuitive and there are others that are easier to understand. It is very powerful but it can be developed to make it much easier to use. The learning curve is pretty steep. Unless you have been working with it for a long time, looking at a CloudFormation template is a tough job. The aim should be usability for a person with a non-coding background.
There is a lot of syntax and components that require you to look at the documentation, whereas with the inclusion of a few drop-down menus and choices, it would be much easier to work with.
You can have CloudFormation create a template based on your existing infrastructure, but not all of the services are included. For example, if you manually set up an environment and you have put in all of the scaling information then you can extract the entire infrastructure and get back a template. CloudFormation is then capable of recreating the environment but it might not have the scaling included automatically.
For how long have I used the solution?
We have been using AWS CloudFormation for six to seven months.
What do I think about the stability of the solution?
This is a stable solution. It is a bit of a challenge because the learning curve is steep and it requires a lot of expertise, but it is stable.
What do I think about the scalability of the solution?
Our customers are a mix in terms of size. We have small, medium, and large-sized companies as clients.
How are customer service and technical support?
We have interacted with technical support at times and from my experience, it has been pretty nice. The support is okay.
Which solution did I use previously and why did I switch?
I have also used Terraform, which is a bit more user-friendly than CloudFormation. It is quite a bit more intuitive.
How was the initial setup?
CloudFormation doesn't require any installation. In fact, it is part of the services provided by AWS. The length of time for deployment depends on the type of infrastructure that you're deploying. For example, a simple three-tier, without scaling, with perhaps six or seven instances, will probably take ten or fifteen minutes. Speed-wise it is pretty good, although ultimately it depends on what services you want.
What about the implementation team?
When you are providing this solution to a customer there are a lot of things to consider because there are a lot of moving parts. You always have to get them validated from the AWS site.
What's my experience with pricing, setup cost, and licensing?
This solution is free to use and does not require a license.
What other advice do I have?
When it comes to this solution, there are a lot of things that happen. New features can come out every week and down the line, there are a lot of new things that come very fast. Keeping up with the innovations or product services that are being introduced is a taxing job.
CloudFormation is not used on a daily basis. It is only used for specific purposes whenever there is a requirement. You use it to set up a certain environment.
My advice for anybody who is considering using this solution to implement their environment is to consider the complexity of what they want to do. If you want to bring up a simple environment and are familiar with coding using JSON or YAML then try it on your own. Importantly, however, it is not enough to be familiar with the scripting language. You need to understand AWS architecture. The combination of these things is required for the template. If you do build it on your own then I would still suggest having it validated by AWS.
If you are unfamiliar with coding or the infrastructure then I would suggest involving a third-party to assist. Not having the proper expertise internally will increase the time required for the project. I feel that it is not a bad idea to involve AWS, as well.
Overall, this solution is good but there is always room for improvement.
I would rate this solution a seven out of ten.
Which deployment model are you using for this solution?
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Amazon Web Services (AWS)