{"id":18624784,"url":"https://github.com/opszero/terraform-aws-instance","last_synced_at":"2026-01-24T12:07:53.996Z","repository":{"id":39869925,"uuid":"485451069","full_name":"opszero/terraform-aws-instance","owner":"opszero","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-06T12:43:06.000Z","size":160,"stargazers_count":0,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-06T14:28:28.374Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://opszero.com","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opszero.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"SUPPORT","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["abhiyerra"],"custom":["https://www.opszero.com"]}},"created_at":"2022-04-25T16:35:25.000Z","updated_at":"2025-11-06T12:43:08.000Z","dependencies_parsed_at":"2024-03-18T21:28:58.872Z","dependency_job_id":"f408bfd7-942c-45db-9783-1ed5f79d6068","html_url":"https://github.com/opszero/terraform-aws-instance","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/opszero/terraform-aws-instance","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Fterraform-aws-instance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Fterraform-aws-instance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Fterraform-aws-instance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Fterraform-aws-instance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opszero","download_url":"https://codeload.github.com/opszero/terraform-aws-instance/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Fterraform-aws-instance/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28727384,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T10:24:43.181Z","status":"ssl_error","status_checked_at":"2026-01-24T10:24:36.112Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T04:31:01.556Z","updated_at":"2026-01-24T12:07:53.991Z","avatar_url":"https://github.com/opszero.png","language":"HCL","funding_links":["https://github.com/sponsors/abhiyerra","https://www.opszero.com"],"categories":[],"sub_categories":[],"readme":"\u003c!-- BEGIN_TF_DOCS --\u003e\n# Instance (AWS)\n\nAWS Instance with multiple SSH Key support.\n\n## Usage\n\n``` sh\nssh-keygen -t rsa\n```\n\n``` sh\nmodule \"bastion\" {\n  source = \"github.com/opszero/terraform-aws-bastion\"\n\n  ssh_keys = [ \"ssh-rsa ...\" ]\n  \n  users = {\n    \"username\" = {\n      ssh-keys = [\n         \"ssh-rs ...\"\n      ]\n    }\n  }\n}\n```\n\n## Connect\n\n - Use [MrMgr](https://github.com/opszero/terraform-aws-bastion) to setup IAM access to the Bastion\n - `pip3 install pip3 install ec2instanceconnectcli`\n - `mssh --profile awsprofile ubuntu@i-1234566`\n\n## Deployment\n\n```sh\nterraform init\nterraform plan\nterraform apply -auto-approve\n```\n\n## Teardown\n\n```sh\nterraform destroy -auto-approve\n```\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | n/a |\n| \u003ca name=\"provider_cloudinit\"\u003e\u003c/a\u003e [cloudinit](#provider\\_cloudinit) | n/a |\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_ami_id\"\u003e\u003c/a\u003e [ami\\_id](#input\\_ami\\_id) | The AMI ID of the bastion host | `string` | `null` | no |\n| \u003ca name=\"input_efs_mounts\"\u003e\u003c/a\u003e [efs\\_mounts](#input\\_efs\\_mounts) | EFS multiple mounts | `map` | `{}` | no |\n| \u003ca name=\"input_ingress_cidrs\"\u003e\u003c/a\u003e [ingress\\_cidrs](#input\\_ingress\\_cidrs) | Configuration block for ingress rules | `any` | n/a | yes |\n| \u003ca name=\"input_instance_profile\"\u003e\u003c/a\u003e [instance\\_profile](#input\\_instance\\_profile) | n/a | \u003cpre\u003eobject({\u003cbr/\u003e    role_name           = string\u003cbr/\u003e    assume_role_service = string\u003cbr/\u003e    policy_arns         = list(string)\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_instance_type\"\u003e\u003c/a\u003e [instance\\_type](#input\\_instance\\_type) | EC2 Instance Type of the bastion host | `string` | `\"t3.micro\"` | no |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | The name of the bastion host | `string` | n/a | yes |\n| \u003ca name=\"input_security_group_ids\"\u003e\u003c/a\u003e [security\\_group\\_ids](#input\\_security\\_group\\_ids) | A list of security group names to associate with. | `list(any)` | `[]` | no |\n| \u003ca name=\"input_ssh_keys\"\u003e\u003c/a\u003e [ssh\\_keys](#input\\_ssh\\_keys) | SSH public keys to add to the image | `list(any)` | `[]` | no |\n| \u003ca name=\"input_subnet_id\"\u003e\u003c/a\u003e [subnet\\_id](#input\\_subnet\\_id) | The VPC subnet ID to launch in EC2 bastion host | `string` | n/a | yes |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | A map of tags to assign to the resource | `map(any)` | `{}` | no |\n| \u003ca name=\"input_ubuntu_version\"\u003e\u003c/a\u003e [ubuntu\\_version](#input\\_ubuntu\\_version) | Ubuntu Server Version | `string` | `\"24.04\"` | no |\n| \u003ca name=\"input_user_data\"\u003e\u003c/a\u003e [user\\_data](#input\\_user\\_data) | User data to provide when launching the instance | `string` | `\"\"` | no |\n| \u003ca name=\"input_user_data_replace_on_change\"\u003e\u003c/a\u003e [user\\_data\\_replace\\_on\\_change](#input\\_user\\_data\\_replace\\_on\\_change) | To recreate the instance when user\\_data is changed | `bool` | `false` | no |\n| \u003ca name=\"input_userdata\"\u003e\u003c/a\u003e [userdata](#input\\_userdata) | User data to provide when launching the instance | `string` | `\"\"` | no |\n| \u003ca name=\"input_users\"\u003e\u003c/a\u003e [users](#input\\_users) | Custom user accounts of the instance | `map` | \u003cpre\u003e{\u003cbr/\u003e  \"retool\": {\u003cbr/\u003e    \"ssh-keys\": []\u003cbr/\u003e  }\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_volume_size\"\u003e\u003c/a\u003e [volume\\_size](#input\\_volume\\_size) | Size of the volume in gibibytes (GiB) | `number` | `20` | no |\n| \u003ca name=\"input_vpc_id\"\u003e\u003c/a\u003e [vpc\\_id](#input\\_vpc\\_id) | The VPC ID to create security group for bastion host | `string` | n/a | yes |\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_cloudwatch_metric_alarm.aws_bastion_cpu_threshold](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_metric_alarm) | resource |\n| [aws_eip.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eip) | resource |\n| [aws_iam_instance_profile.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_instance_profile) | resource |\n| [aws_iam_role.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role_policy_attachment.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [aws_instance.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance) | resource |\n| [aws_security_group.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |\n| [aws_security_group_rule.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |\n| [aws_ssm_parameter.ubuntu](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/ssm_parameter) | data source |\n| [cloudinit_config.config](https://registry.terraform.io/providers/hashicorp/cloudinit/latest/docs/data-sources/config) | data source |\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_instance_id\"\u003e\u003c/a\u003e [instance\\_id](#output\\_instance\\_id) | n/a |\n| \u003ca name=\"output_public_ip\"\u003e\u003c/a\u003e [public\\_ip](#output\\_public\\_ip) | n/a |\n# 🚀 Built by opsZero!\n\n\u003ca href=\"https://opszero.com\"\u003e\u003cimg src=\"https://opszero.com/img/common/opsZero-Logo-Large.webp\" width=\"300px\"/\u003e\u003c/a\u003e\n\n[opsZero](https://opszero.com) provides software and consulting for Cloud + AI. With our decade plus of experience scaling some of the world’s most innovative companies we have developed deep expertise in Kubernetes, DevOps, FinOps, and Compliance.\n\nOur software and consulting solutions enable organizations to:\n\n- migrate workloads to the Cloud\n- setup compliance frameworks including SOC2, HIPAA, PCI-DSS, ITAR, FedRamp, CMMC, and more.\n- FinOps solutions to reduce the cost of running Cloud workloads\n- Kubernetes optimized for web scale and AI workloads\n- finding underutilized Cloud resources\n- setting up custom AI training and delivery\n- building data integrations and scrapers\n- modernizing onto modern ARM based processors\n\nWe do this with a high-touch support model where you:\n\n- Get access to us on Slack, Microsoft Teams or Email\n- Get 24/7 coverage of your infrastructure\n- Get an accelerated migration to Kubernetes\n\nPlease [schedule a call](https://calendly.com/opszero-llc/discovery) if you need support.\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n\u003cdiv style=\"display: block\"\u003e\n  \u003cimg src=\"https://opszero.com/img/common/aws-advanced.png\" alt=\"AWS Advanced Tier\" width=\"150px\" \u003e\n  \u003cimg src=\"https://opszero.com/img/common/aws-devops-competency.png\" alt=\"AWS DevOps Competency\" width=\"150px\" \u003e\n  \u003cimg src=\"https://opszero.com/img/common/aws-eks.png\" alt=\"AWS EKS Delivery\" width=\"150px\" \u003e\n  \u003cimg src=\"https://opszero.com/img/common/aws-public-sector.png\" alt=\"AWS Public Sector\" width=\"150px\" \u003e\n\u003c/div\u003e\n\u003c!-- END_TF_DOCS --\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopszero%2Fterraform-aws-instance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopszero%2Fterraform-aws-instance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopszero%2Fterraform-aws-instance/lists"}