Module: ec2-ami-snapshot
Terraform module to easily generate AMI snapshots to create replica instances
Usage
Create an AWS instance
resource "aws_instance" "default" {
ami = "ami-408c7f28"
instance_type = "t1.micro"
tags = {
Name = "test1"
}
}
Create AMI from an AWS instance. Instance ID is required"
module "tf_ami_from_instance" {
source = "git::https://github.com/cloudposse/tf_ami_from_instance.git?ref=master"
source_instance_id = "${aws_instance.web.id}"
stage = "${var.stage}"
namespace = "${var.namespace}"
name = "${var.name}"
attributes = "${var.attributes}"
tags = "${var.tags}"
}
Caveats
- Terraform will only keep the latest AMI snapshot (terraform will delete the previously generated AMI) See our Lamda based solution which avoids this pitfall: https://github.com/cloudposse/tf_lambda_ami_backup
- This is is not compatible with autoscaling groups
Variables
Required Variables
source_instance_id
(any
) required
Optional Variables
snapshot_without_reboot
(string
) optionalDefault value:
"true"
Context Variables
The following variables are defined in the context.tf
file of this module and part of the terraform-null-label pattern.
context.tf
file of this module and part of the terraform-null-label pattern.attributes
(list(string)
) optionalAdditional attributes (e.g.
policy
orrole
)
Required: NoDefault value:
[ ]
delimiter
(string
) optionalDelimiter to be used between
name
,namespace
,stage
, etc.
Required: NoDefault value:
"-"
name
(string
) optionalThe Name of the application or solution (e.g.
bastion
orportal
)
Required: NoDefault value:
""
namespace
(string
) optionalNamespace (e.g.
cp
orcloudposse
)
Required: NoDefault value:
""
stage
(string
) optionalStage (e.g.
prod
,dev
,staging
)
Required: NoDefault value:
""
tags
(map(string)
) optionalAdditional tags (e.g.
map('BusinessUnit','XYZ')
)
Required: NoDefault value:
{ }
Outputs
ami_id
AMI ID depends on the instance type and region in which you're launching your stack. And IDs can change regularly, such as when an AMI is updated with software updates.
Dependencies
Providers
aws
Modules
Name | Version | Source | Description |
---|---|---|---|
label | 0.2.0 | git::https://github.com/cloudposse/tf_label.git | n/a |
Resources
The following resources are used by this module:
aws_ami_from_instance.default
(resource)
Data Sources
The following data sources are used by this module: