AWS CloudFormation gives developers and systems administrators a way to create and manage a collection of related AWS resources, provisioning and updating them in a predictable fashion. Use AWS CloudFormation’s sample templates or create templates to describe the AWS resources, and any associated dependencies or runtime parameters, required to run an application. Users don’t need to figure out the order for provisioning AWS services or the subtleties of making those dependencies work.…
$0
HashiCorp Vagrant
Score 10.0 out of 10
N/A
Vagrant is a tool designed to create and configure lightweight, reproducible, and portable development environments. It leverages a declarative configuration file which describes all software requirements, packages, operating system configuration, and users.
N/A
Pricing
AWS CloudFormation
HashiCorp Vagrant
Editions & Modules
Free Tier - 1,000 Handler Operations per Month per Account
$0.00
Handler Operation
$0.0009
per handler operation
No answers on this topic
Offerings
Pricing Offerings
AWS CloudFormation
HashiCorp Vagrant
Free Trial
Yes
No
Free/Freemium Version
Yes
Yes
Premium Consulting/Integration Services
No
No
Entry-level Setup Fee
No setup fee
No setup fee
Additional Details
There is no additional charge for using AWS CloudFormation with resource providers in the following namespaces: AWS::*, Alexa::*, and Custom::*. In this case you pay for AWS resources (such as Amazon EC2 instances, Elastic Load Balancing load balancers, etc.) created using AWS CloudFormation as if you created them manually. You only pay for what you use, as you use it; there are no minimum fees and no required upfront commitments.
When you use resource providers with AWS CloudFormation outside the namespaces mentioned above, you incur charges per handler operation. Handler operations are create, update, delete, read, or list actions on a resource.
Cloning a virtual machine creates a virtual machine that is a copy of the original. The new virtual machine is configured with the Cloning Cloning a virtual machine creates a virtual machine that is a copy of the original. The new virtual machine is configured with the same virtual hardware, installed software, and other properties that were configured for the original virtual machine. For information about persistent memory and PMem storage, see the vSphere Resource Management Guide. For information virtual machine creates a virtual machine that is a copy of the original. The new virtual machine is configured with the same virtual hardware, installed software, and other properties that were configured for the original virtual machine. For information about persistent memory and PMem storage, see the vSphere Resource. Management guide. For information virtual hardware, installed software cloning a virtual machine creates a virtual machine that is a copy of the original. The new virtual machine is configured with the same virtual hardware, installed software, and other properties that were configured for the original virtual machine. For information about persistent memory and PMem storage, see the vSphere Resource Management Guide. For information and other properties that were configured for the original virtual machine. For information about persistent memory and PMem storage, see the vSphere Resource Management Guide. For information.
If you're writing software, particularly software that depends on other services (web servers or databases for example) then Vagrant is great. I know some people skip Vagrant and just set up virtual machines on their own, but I've found that Vagrant streamlines the process nicely and makes it easy to update or swap out versions. If you're a web developer (which I am) it's amazing. I can have several boxes configured for my different projects and I just spin them up or down based on what I'm working on. One scenario where this might not be ideal is if you're running Vagrant on a computer that has limited resources. Since you're running a virtual machine with its own operating system and such you'll want a host computer with enough RAM, hard drive space and CPU to run the virtual machine properly without killing the performance of the host. The virtual disks can also take up a lot of space if you're not careful so if you have many virtual machines provisioned and don't clean up the old ones that you're not using, you may find that your hard drive is full. Each of my Linux servers take up about 10GB of disk space.
Easy to create machines with different OS's, list of them can be found from Vagrant's website with configuration details.
Flexible configuration, user can determine what software will be pre-installed to machine. Saves time because it doesn't need to be done manually every time.
Easily manage full environments, not just single machines, with single command.
Learning curve is steep - It can be challenging for someone to set up initially. After some coaching, the basics come pretty quickly though.
Relies on external Virtual Machine applications - It would be great if Vagrant itself could run the virtual machine instead of leaning on other virtualization software. This is a small detail, but would make setup simple.
It's easy enough to get a shared template & apply it. You don't even have to download-then-upload or copy-and-paste, a publicly-accessible url works.
Diving deeper, it has enough powerful capabilities to make the life of a platform / DevOps engineer bearable.
However, you need equally deep knowledge to troubleshoot issues, when they inevitably pop up. This is the same for all IaC technologies, as they are additional abstraction layers on top of the native API provided by the cloud providers.
Since the product I'm involved is primarily hosted on AWS we use CloudFormation but in some other products where we have hybrid cloud deployments we prefer Terraform which is opensource.
Docker has a few advantages, especially with the disk size bloat brought on by Vagrant's hosting an entire OS and project in a VM. It relies on native tools, however, and may not support every software. Vagrant provides uniformity, efficiency and repeatability within team work and for deployment and testing.