{"id":20740206,"url":"https://github.com/lbkolev/terraform-aws-eth-node","last_synced_at":"2025-08-01T10:07:27.335Z","repository":{"id":193265975,"uuid":"688103919","full_name":"lbkolev/terraform-aws-eth-node","owner":"lbkolev","description":"Spin up Ethereum execution/consensus clients on AWS","archived":false,"fork":false,"pushed_at":"2024-01-31T09:08:54.000Z","size":41,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-17T06:36:47.867Z","etag":null,"topics":["aws","ethereum","ethereum-node","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/lbkolev/eth-node","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lbkolev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-09-06T16:54:14.000Z","updated_at":"2024-10-05T21:41:39.000Z","dependencies_parsed_at":"2024-01-31T10:28:09.154Z","dependency_job_id":"8455ebd2-66c9-47cc-be8b-7e5979d23e5a","html_url":"https://github.com/lbkolev/terraform-aws-eth-node","commit_stats":null,"previous_names":["lbkolev/terraform-aws-eth-node"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbkolev%2Fterraform-aws-eth-node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbkolev%2Fterraform-aws-eth-node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbkolev%2Fterraform-aws-eth-node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbkolev%2Fterraform-aws-eth-node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lbkolev","download_url":"https://codeload.github.com/lbkolev/terraform-aws-eth-node/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234452029,"owners_count":18834739,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["aws","ethereum","ethereum-node","terraform","terraform-module"],"created_at":"2024-11-17T06:27:45.269Z","updated_at":"2025-01-18T01:43:26.005Z","avatar_url":"https://github.com/lbkolev.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"## \u003cp align=\"center\"\u003eterraform-aws-eth-node\u003c/p\u003e\n### \u003cp align=\"center\"\u003eSpin up Ethereum execution/consensus clients on AWS.\u003c/p\u003e\n\n- The deployment takes no more than a minute\n- All clients are managed through systemd\n\n- The module takes care of the:\n  - EC2's setup, configuration \u0026 lifecycle\n  - Creation \u0026 management of the volumes that'll hold the data\n\n- Full examples can be found in the [examples](./examples/) directory.\n\u003e :warning: Be mindful with the security group's configuration. All the examples are simplified to allow all external traffic, which in most cases isn't recommended.\n\n## License\nMIT Licensed. See [LICENSE](./LICENSE) for full details.\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.0 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 5.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | 5.30.0 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_autoscaling_group.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/autoscaling_group) | resource |\n| [aws_ebs_volume.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ebs_volume) | 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_launch_template.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/launch_template) | resource |\n| [aws_security_group.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |\n| [aws_ami.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/ami) | data source |\n| [aws_iam_policy_document.attach_ebs_volume_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_iam_policy_document.policy_document](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_subnet.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/subnet) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_ami\"\u003e\u003c/a\u003e [ami](#input\\_ami) | The base AMI to use for the Autoscaling grp | \u003cpre\u003eobject({\u003cbr\u003e    name = string\u003cbr\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr\u003e  \"name\": \"debian-12-amd64-20230711-1438\"\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_clients\"\u003e\u003c/a\u003e [clients](#input\\_clients) | The list of ethereum clients to deploy | \u003cpre\u003elist(\u003cbr\u003e    object({\u003cbr\u003e      name        = string # name of the ethereum client\u003cbr\u003e      package_url = string # link to the url of the binary to download\u003cbr\u003e      cmd         = string # the startup command of the client\u003cbr\u003e\u003cbr\u003e      ebs = optional(object({\u003cbr\u003e        device_name = string\u003cbr\u003e        mountpoint  = string\u003cbr\u003e        type        = string\u003cbr\u003e        size        = number\u003cbr\u003e      }))\u003cbr\u003e  }))\u003c/pre\u003e | n/a | yes |\n| \u003ca name=\"input_compute\"\u003e\u003c/a\u003e [compute](#input\\_compute) | The EC2 configuration | \u003cpre\u003eobject({\u003cbr\u003e    type                        = optional(string, \"t2.micro\")\u003cbr\u003e    state                       = optional(string, \"running\")\u003cbr\u003e    associate_public_ip_address = bool\u003cbr\u003e    security_group_ids          = optional(list(string)) # external SGs;\u003cbr\u003e    ebs_optimized               = optional(bool)\u003cbr\u003e    disable_api_stop            = optional(bool)\u003cbr\u003e    disable_api_termination     = optional(bool)\u003cbr\u003e    key_name                    = optional(string)\u003cbr\u003e    max_instance_lifetime       = optional(number)\u003cbr\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr\u003e  \"associate_public_ip_address\": true,\u003cbr\u003e  \"state\": \"running\",\u003cbr\u003e  \"type\": \"t2.micro\"\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | The generic name to apply across the different resources | `string` | n/a | yes |\n| \u003ca name=\"input_security_group\"\u003e\u003c/a\u003e [security\\_group](#input\\_security\\_group) | The security group rules to apply to the Autoscaling grp | \u003cpre\u003elist(object({\u003cbr\u003e    type        = string\u003cbr\u003e    description = optional(string)\u003cbr\u003e    from        = number\u003cbr\u003e    to          = number\u003cbr\u003e    protocol    = string\u003cbr\u003e    cidr_blocks = list(string)\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_subnet_id\"\u003e\u003c/a\u003e [subnet\\_id](#input\\_subnet\\_id) | The subnet to deploy the Autoscaling grp in | `string` | n/a | yes |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_compute\"\u003e\u003c/a\u003e [compute](#output\\_compute) | Compute created for the client(s) |\n| \u003ca name=\"output_ebs\"\u003e\u003c/a\u003e [ebs](#output\\_ebs) | EBS volumes created for the client(s) |\n| \u003ca name=\"output_security_group\"\u003e\u003c/a\u003e [security\\_group](#output\\_security\\_group) | Security group created for the client(s) |\n\u003c!-- END_TF_DOCS --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flbkolev%2Fterraform-aws-eth-node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flbkolev%2Fterraform-aws-eth-node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flbkolev%2Fterraform-aws-eth-node/lists"}