terraform-aws-ecs-private-ethereum-blockchain
A terraform module to setup a private Ethereum network, using Go Ethereum, including Ethereum Network Stats and Ethereum Lite Explorer on Amazon ECS.
Usage
module "private_ethereum" {
source = "SCB-TechX-Saber-Labs/ecs-private-ethereum-blockchain/aws"
version = "0.1.0"
region = "ap-southeast-1"
network_name = "devel"
subnet_ids = [
"subnet-0d3dd066f35696746",
"subnet-0233a4b40b131621b",
"subnet-05580a63c0e79abd2"
]
is_public_subnets = false
vpc_id = "vpc-0204ec5c6f7ad746e"
initial_eth_allocations = {
"0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7": "100"
}
}
output "status" {
value = module.private_ethereum._status
}
output "chain_id" {
value = module.private_ethereum.chain_id
}
output "ecs_cluster_name" {
value = module.private_ethereum.ecs_cluster_name
}
output "ethereum_explorer_endpoint" {
value = module.private_ethereum.ethereum_explorer_endpoint
}
output "ethstats_endpoint" {
value = module.private_ethereum.ethstats_endpoint
}
output "geth_rpc_endpoint" {
value = module.private_ethereum.geth_rpc_endpoint
}
output "nlb_dns" {
value = module.private_ethereum.nlb_dns
}Requirements
| Name | Version |
|---|---|
| terraform | ~> 1.0 |
Providers
| Name | Version |
|---|---|
| hashicorp/aws | ~> 4 |
| hashicorp/local | ~> 2.1 |
| hashicorp/random | ~> 3.1 |
Modules
No modules.
Resources
Inputs
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| aws_cli_docker_image | The AWS CLI image to work with AWS services | string |
"amazon/aws-cli" |
no |
| ethereum_explorer_port | The port number to expose the ethereum explorer endpoint | number |
80 |
no |
| ethereum_lite_explorer_docker_image | The Ethereum Lite Explorer docker image | string |
"alethio/ethereum-lite-explorer:v1.0.0-beta.10" |
no |
| ethstats_docker_image | The Ethereum ethstats monitoring tool docker image | string |
"puppeth/ethstats:latest" |
no |
| ethstats_port | The port number to expose the ethstats endpoint | number |
3000 |
no |
| go_ethereum_docker_image | The Go Ethereum docker image to run Ethereum client node | string |
"ethereum/client-go:alltools-v1.10.8" |
no |
| go_ethereum_p2p_port | The port number to expose the ethereum rpc endpoint | number |
21000 |
no |
| go_ethereum_rpc_port | The port number for ethereum p2p communication | number |
22000 |
no |
| initial_eth_allocations | The map of wallet addresses and amounts in ETH to allocate the initial funds | map |
{} |
no |
| is_public_subnets | Indicate that if subnets supplied in subnet_ids are public subnets | bool |
n/a | yes |
| network_name | The network name to distinguish this deployment from others | string |
n/a | yes |
| number_of_nodes | Number of Ethereum nodes | number |
2 |
no |
| region | The target AWS region | string |
n/a | yes |
| subnet_ids | The AWS subnets for ECS tasks deployments and Load Balancer provisioning | list |
n/a | yes |
| vpc_id | The target AWS VPC | string |
n/a | yes |
Outputs
| Name | Description |
|---|---|
| _status | n/a |
| chain_id | n/a |
| ecs_cluster_name | n/a |
| ethereum_explorer_endpoint | n/a |
| ethstats_endpoint | n/a |
| geth_rpc_endpoint | n/a |
| nlb_dns | n/a |
Credits
This terraform module is modified from the ConsenSys's Quorum Cloud repository.