Skip to main content
In this guide, you’ll learn how to deploy a three-node Vault High Availability (HA) cluster on EC2. By configuring the retry_join stanza in each Vault server’s configuration file, nodes will automatically discover and join the Raft-based cluster—eliminating any manual join steps after initialization.

Prerequisites

  • Three EC2 instances named vault-1, vault-2, vault-3, each running Vault 1.10.3+ent
  • Raft storage backend
  • AWS KMS auto-unseal configured
  • Vault binary installed and a systemd unit in place
Ensure all nodes can communicate over ports 8200 (API) and 8201 (Raft). Configure your security groups accordingly.

1. Verify a Clean State

On any node (for example, vault-3), stop Vault and clear existing data. Then confirm that Vault is uninitialized:

2. Stop Vault on All Nodes

Before updating configuration, stop Vault on each server:

3. Configure retry_join on vault-3 (10.1.101.25)

Edit /etc/vault/vault.hcl on vault-3 and add both peer addresses under the Raft storage stanza:

4. Configure retry_join on vault-2 (10.1.101.108)

On vault-2, update /etc/vault/vault.hcl:

5. Configure retry_join on vault-1 (10.1.101.199)

Finally, modify /etc/vault/vault.hcl on vault-1:

6. Start Vault on All Nodes

Bring Vault back online on each server:
Verify that the service is running without errors:

7. Initialize the Cluster

Pick one node (e.g., vault-1) to initialize Vault:
Since AWS KMS auto-unseal is enabled, Vault will automatically unseal itself—no manual unseal commands are needed.

8. Verify Cluster Peers

Authenticate using the root token you received:
Then list your Raft peers:
Congratulations—your Vault HA cluster is up and running, with each node automatically discovering its peers via the retry_join configuration.

What’s Next?

Watch Video