ec2-basic-layout
binbashar/ec2-basic-layout/aws
Terraform module to deploy a typical EC2 layout that includes an instance with a security group and a dns record.
Install
README
Terraform Module: AWS EC2 Basic Layout Overview This module could be useful if you find yourself creating a layout that includes the following resources: EC2 Instance w/ configurable AMI, family type, key pair, networking, userdata, among others. EC2 Profile with a customizable IAM Role supporting both AWS and customer managed policies. Multiple EBS dynamic blocks (root_block_device, ebs_block_device and ephemeral_block_device) w/ configurable type, size, device name and encryption configs among others. Security group for the instance above. Optionally associate a public IP address with the instance. DNS record with a record that points to the instance private IP / public IP. Tags: both EC2 and EBS. SSM support for interactive shell access via browser or AWS CLI Personally we have seen the
Inputs (31)
| Name | Type | Description | Default |
|---|---|---|---|
| key_pair_name | string | Key Pair Name | required |
| name | string | Name | required |
| vpc_id | string | VPC ID | required |
| subnet_id | string | Subnet ID | required |
| private_ip | string | Private IP address to associate with the instance in the VPC | null |
| tag_approved_ami_value | string | Set the specific tag ApprovedAMI ('true' | 'false') that identifies aws-config c | "false" |
| ebs_block_device | list(map(string)) | Additional EBS block devices to attach to the instance | [] |
| dns_records_public_hosted_zone | list(any) | A list of DNS public (public hosted zone) records to create with the instance's | [] |
| disable_api_termination | string | If true, enables EC2 Instance Termination Protection | "false" |
| instance_type | string | EC2 Instance Type | "t3.micro" |
| instance_profile | string | The IAM Instance Profile to launch the instance with. Specified as the name of t | "" |
| associate_public_ip_address | bool | Associate a public IP address with the instance | false |
| aws_ami_os_owner | string | AWS AMI Operating System Owner, eg: 099720109477 for Canonical | "099720109477" |
| ebs_optimized | string | Enable EBS Optimized | "false" |
| user_data | string | The user data to provide when launching the instance. Do not pass gzip-compresse | null |
| user_data_base64 | string | Can be used instead of user_data to pass base64-encoded binary data directly. Us | null |
| tags | map(string) | Tags | {} |
| security_group_ids | list(string) | A list of security group ids | [] |
| root_block_device | list(map(string)) | Customize details about the root block device of the instance. See Block Devices | [] |
| credit_specification_cpu | string | Can be applied/modified to the EC2 at any time. The credit option for CPU usage. | "unlimited" |
| enable_ssm_access | bool | If true, attaches SSM policy to instance role | false |
| ephemeral_block_device | list(map(string)) | Customize Ephemeral (also known as Instance Store) volumes on the instance | [] |
| root_device_backup_tag | string | EC2 Root Block Device backup tag | "True" |
| policy_arn | list(string) | Attach AWS IAM managed policies to the IAM Role. | [] |
Outputs (12)
dns_record_privateaws_instance_type — The type of the Instance.aws_instance_iam_profile — The IAM instance profile of the EC2.aws_instance_assume_role_name — The IAM instance profile of the EC2.dns_record_publicinstanceaws_instance_private_ip — Contains the instance private IP address.aws_instance_public_ip — Contains the instance public IP address.aws_instance_ami — The AMI of the Instance.aws_instance_key_name — The ssh key pair name of the Instance.aws_instance_volume_tags — The root EBS volume tags of the instace.security_groupResources (9)
Topics & Tags
Details
Similar packages
Azure landing zones Terraform module
Terraform supermodule for the Terraform platform engineering for Azure
Terraform module to deploy landing zone subscriptions (and much more) in Azure
Terraform Module to define a consistent naming convention by (namespace, stage,