An Interest In:
Web News this Week
- March 21, 2024
- March 20, 2024
- March 19, 2024
- March 18, 2024
- March 17, 2024
- March 16, 2024
- March 15, 2024
AWS Automation using Terraform
What is Terraform?
HashiCorp Terraform is an open-source infrastructure as code (IaC) software tool that allows DevOps engineers to programmatically provision the physical resources an application requires to run. Infrastructure as code is an IT practice that manages an application's underlying IT infrastructure through programming.
What is AWS Automation?
Automation, a capability of AWS Systems Manager, simplifies common maintenance and deployment tasks of Amazon Elastic Compute Cloud (Amazon EC2) instances and other AWS resources. ... Build automations to configure and manage instances and AWS resources.
Here is the full tutorial video (Concept + Demo) based on AWS Automation using Terraform
Resource: aws_launch_configuration
Provides a resource to create a new launch configuration, used for autoscaling groups.
Example Usage
data "aws_ami" "ubuntu" { most_recent = true filter { name = "name" values = ["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"] } filter { name = "virtualization-type" values = ["hvm"] } owners = ["099720109477"] # Canonical}resource "aws_launch_configuration" "as_conf" { name = "web_config" image_id = data.aws_ami.ubuntu.id instance_type = "t2.micro"}
Using with AutoScaling Groups
Launch Configurations cannot be updated after creation with the Amazon Web Service API. In order to update a Launch Configuration, Terraform will destroy the existing resource and create a replacement. In order to effectively use a Launch Configuration resource with an AutoScaling Group resource, it's recommended to specify create_before_destroy in a lifecycle block. Either omit the Launch Configuration name attribute, or specify a partial name with name_prefix. Example:
data "aws_ami" "ubuntu" { most_recent = true filter { name = "name" values = ["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"] } filter { name = "virtualization-type" values = ["hvm"] } owners = ["099720109477"] # Canonical}resource "aws_launch_configuration" "as_conf" { name_prefix = "terraform-lc-example-" image_id = data.aws_ami.ubuntu.id instance_type = "t2.micro" lifecycle { create_before_destroy = true }}resource "aws_autoscaling_group" "bar" { name = "terraform-asg-example" launch_configuration = aws_launch_configuration.as_conf.name min_size = 1 max_size = 2 lifecycle { create_before_destroy = true }}
With this setup Terraform generates a unique name for your Launch Configuration and can then update the AutoScaling Group without conflict before destroying the previous Launch Configuration.
WANT TO LEARN MORE?
Full Terraform tutorial https://bit.ly/2GwK8V2
DevOps Tools, like Ansible https://bit.ly/3iASHuP
Docker Tutorial https://bit.ly/3iAT9Jx
AWS Tutorial https://bit.ly/3iAT9Jx
Original Link: https://dev.to/easyawslearn/aws-automation-using-terraform-5140
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To