This template provides a "One-Click" production-ready deployment of a Hyperlane Validator on AWS using ECS Fargate.
- Serverless: Uses ECS Fargate for compute (no EC2 instances to manage).
- Secure: Uses AWS KMS (Asymmetric ECC_SECG_P256K1) for signing keys.
- Persistent: Uses Amazon EFS for the validator database.
- Durable Storage: Automatic S3 bucket creation for validator signatures (checkpointing).
- Networking: Isolated VPC with public subnets (configurable for private subnets with NAT/VPC Endpoints).
- ECS Fargate Task: Runs the
hyperlane-agentcontainer. - KMS Key: Used by the agent to sign merkle roots.
- S3 Bucket: Stores signatures for the Relayer to aggregate.
- EFS File System: Mounts to
/hyperlane_dbfor persistent indexing state. - CloudWatch Logs: Centralized logging for the validator.
- AWS Account with appropriate permissions to create IAM roles, ECS services, S3 buckets, and KMS keys.
- A primary RPC URL for the chain you wish to validate.
Click the "Deploy to AWS" button or use the AWS CLI:
aws cloudformation create-stack \
--stack-name hyperlane-validator-ethereum \
--template-body file://hyperlane-validator.yaml \
--parameters \
ParameterKey=OriginChainName,ParameterValue=ethereum \
ParameterKey=RpcUrls,ParameterValue=https://your-rpc-url.com \
--capabilities CAPABILITY_NAMED_IAMOnce deployed, the validator will automatically create a KMS key. You need to fund the address associated with this key so it can announce itself on-chain.
- Find the KmsKeyArn in the Stack Outputs.
- The Ethereum address for this KMS key can be derived (the logs will output the address when the validator starts and fails to announce due to lack of funds).
- Send a small amount of gas tokens (e.g., 0.1 ETH/POL/BNB) to that address.
- Check the LogGroup output to see the validator logs in CloudWatch.
- Verify that JSON files are being created in the S3BucketName under the
/<originChainName>folder.
| Parameter | Description | Default |
|---|---|---|
OriginChainName |
Name of the chain (e.g., ethereum, polygon) |
- |
RpcUrls |
Comma-separated list of RPC URLs | - |
ImageTag |
hyperlane-agent Docker tag |
agents-v2.0.0 |
S3BucketName |
Optional: Use an existing bucket for signatures | (New bucket created) |
Cpu |
CPU units (1024 = 1 vCPU) | 1024 |
Memory |
Memory in MB | 2048 |
- Updates: Update the
ImageTagparameter and update the stack to perform a rolling deployment. - Monitoring: Check CloudWatch Metrics for the ECS Service and EFS throughput.
- Backups: EFS is automatically backed up if AWS Backup is enabled in your account.