Skip to content

Pyxis-Portal/tf-aws-ec2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EC2 Module

  • Creating EC2 instance
  • Creating Auto Scaling Group
  • Provides an EC2 launch template resource. Can be used to create instances or auto scaling groups.

Requirements

Name Version
terraform >= 0.14
aws >= 3.61.0

Providers

Name Version
aws >= 3.61.0

Modules

Name Source Version
ec2_instance terraform-aws-modules/ec2-instance/aws 3.3.0

Resources

Name Type
aws_autoscaling_group.this resource
aws_autoscaling_schedule.down resource
aws_autoscaling_schedule.up resource
aws_eip.eip resource
aws_eip_association.eip_assoc resource
aws_iam_instance_profile.this resource
aws_iam_policy.this resource
aws_iam_role.this resource
aws_iam_role_policy_attachment.attach resource
aws_iam_role_policy_attachment.attach_aws resource
aws_key_pair.this resource
aws_launch_template.this resource
aws_lb_target_group_attachment.test resource
aws_security_group.ec2_sg resource
aws_iam_policy_document.policy_role data source

Inputs

Name Description Type Default Required
attach_aws_policy_arn The ARN of the policy you want to apply list(string) [] no
autoscaling_desired_capacity description number 1 no
autoscaling_max_size description number 1 no
autoscaling_min_size description number 1 no
autoscaling_name description string "" no
autoscaling_subnets description list(string)
[
""
]
no
autoscaling_target_group_arns A set of aws_alb_target_group ARNs, for use with Application or Network Load Balancing. list(string)
[
""
]
no
block_device_mappings Specify volumes to attach to the instance besides the volumes specified by the AMI
list(object({
device_name = string
no_device = bool
virtual_name = string
ebs = object({
delete_on_termination = bool
encrypted = bool
iops = number
kms_key_id = string
snapshot_id = string
volume_size = number
volume_type = string
})
}))
[] no
create_attachment_role if true, enable create attachment rol bool false no
create_autoscaling_group n/a bool false no
create_autoscaling_schedule_down if this valus is true, you'll create a schedule_down bool false no
create_autoscaling_schedule_up if this valus is true, you'll create a schedule_up bool false no
create_ec2 description bool false no
create_eip Creates EIPs for the instances when create_ec2 is True bool false no
create_eip_association Creates EIPs for the instances when create_ec2 is True bool false no
create_iam_instance_profile n/a bool false no
create_key_pair if true, enable create key pair bool false no
create_lauch_template description bool false no
create_policy if true, enable create rol bool false no
create_role n/a bool false no
create_sg if true, enable create security gruop bool false no
create_target_group_attachment description bool false no
down_end_time description string null no
down_recurrence description string "" no
down_star_time description string "2014-06-01T00:00:00Z" no
ec2_ami ID of AMI to use for the instance string n/a yes
ec2_associate_public_ip_address Whether to associate a public IP address with an instance in a VPC bool false no
ec2_availability_zone AZ to start the instance in string null no
ec2_ebs_block_device Additional EBS block devices to attach to the instance any [] no
ec2_ebs_optimized If true, the launched EC2 instance will be EBS-optimized bool false no
ec2_hibernation If true, the launched EC2 instance will support hibernation bool false no
ec2_instance_count Number of identical instances to create in the same subnet number 1 no
ec2_instance_type The type of instance to start string n/a yes
ec2_ipv6_address_count A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet number null no
ec2_ipv6_addresses Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface list(string) null no
ec2_key_name Key name of the Key Pair to use for the instance; which can be managed using the aws_key_pair resource string null no
ec2_monitoring If true, the launched EC2 instance will have detailed monitoring enabled bool false no
ec2_name Name to be used on EC2 instance created. string n/a yes
ec2_private_ip Private IP address to associate with the instance in a VPC string null no
ec2_private_ips description list(string)
[
""
]
no
ec2_secondary_private_ips A list of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a network_interface block list(string) null no
ec2_sg_egress_rules all configuration for rules ingress of security group any [] no
ec2_sg_ingress_rules all configuration for rules ingress of security group any [] no
ec2_subnet_id The VPC Subnet ID to launch in. REQUIRED IF create_ec2 = True string null no
ec2_subnet_ids description list(string)
[
""
]
no
ec2_user_data The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead. string null no
ec2_user_data_base64 Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. string null no
ec2_vpc_security_group_ids A list of security group IDs to associate with list(string) null no
eip_address IP address from an EC2 BYOIP pool. This option is only available for VPC EIPs. string "" no
eip_association_allocation_id The allocation ID. This is required for EC2-VPC. string "" no
health_check_grace_period Time (in seconds) after instance comes into service before checking health number 300 no
iam_policy_name Specific name for the Policy. string "" no
instance_market_options The market (purchasing) option for the instances
object({
market_type = string
spot_options = object({
block_duration_minutes = number
instance_interruption_behavior = string
max_price = number
spot_instance_type = string
valid_until = string
})
})
null no
instance_profile_name IAM Role profile name for instance string "" no
instance_profile_role description string null no
key_name The name for the key pair. string "" no
name_lauch_template description string "" no
policy_json n/a string null no
public_key The public key material. string "" no
sg_vpc_id n/a string "" no
tags all tags for all recursives any null no
target_group list ARN of target Groups any [] no
time_zone Time zone selection for instance string null no
up_end_time description string null no
up_recurrence description string "" no
up_star_time description string "2014-06-01T00:00:00Z" no

Outputs

Name Description
arn The ARN of the instance
id The ID of the instance
id_security_group n/a
ip The ARN of the instance
name_autoscaling Name of the Auto Scaling Group
name_instance Name of instance create for only bastion and ASG
public_dns The ARN of the instance

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages