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.
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
| 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. | [] |
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_groupAzure 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,