5 min readVCF VM + EC2 failover rehearsal

Run a VCF VM failover drill into EC2

Watch a real LAB failover drill: warm a tagged EC2 target, drain the VCF web deployment, verify the app from AWS, restore VCF, and clean the cloud lane back to zero.

This rehearsal uses the real LAB lanes. We read the live VCF modern workload, launch a tagged EC2 host, stage a lightweight failover page on that host, intentionally drain the VCF web deployment, prove the health endpoint is now answering from AWS, restore the VCF service, and then tear the cloud host back down. It is a compact failover drill, not a staged animation.

Sign in as admin10 stepsready

current raw commands

Step 1/10
kubectl get deploy -n modern-workloads
kubectl get pods -n modern-workloads
01

Read the VCF baseline

Confirm the VCF workload first

ready
kubectl get deploy -n modern-workloads
kubectl get pods -n modern-workloads
02

Confirm the app is live on VCF

Confirm the VCF workload first

pending
03

Launch the EC2 failover host

Stand up the AWS failover lane

pending
04

Verify the host is healthy

Stand up the AWS failover lane

pending
05

Install the app on EC2

Stand up the AWS failover lane

pending
06

Turn off the VCF app

Flip the service and clean up

pending
07

Prove the app on EC2

Flip the service and clean up

pending
08

Restore the VCF app

Flip the service and clean up

pending
09

Verify VCF is healthy again

Flip the service and clean up

pending
10

Tear the EC2 host back down

Flip the service and clean up

pending
>

Guided demo workflow

Expand to see the phase-by-phase operator sequence for this tab.

3 phases
>
phase 01Confirm the VCF workload firstlive

Start from the real VCF workload so the audience sees the healthy lane before any AWS resources are touched.

2 cmds
  1. 01
    Read the live deployment inventory inside the modern-workloads namespace before the cloud lane is introduced.
    show raw commands
    selected command
    kubectl get deploy -n modern-workloads
    raw step 01
    kubectl get pods -n modern-workloads
  2. 02
    Confirm the modern-web deployment is healthy before the cutover rehearsal starts.
    show raw commands
    selected command
    kubectl rollout status deploy/modern-web -n modern-workloads
    raw step 01
    kubectl get svc -n modern-workloads
>
phase 02Stand up the AWS failover lanelive

Build the short-lived AWS landing zone, verify the host, and warm the failover page there before the VCF side is drained.

3 cmds
  1. 01
    Create the tagged EC2 host the failover drill will use as the temporary landing zone.
    show raw commands
    selected command
    lab aws create db-host
    raw step 01
    aws ec2 run-instances ...
  2. 02
    Show the real instance, IPs, and attached volume state before the failover app is staged.
    show raw commands
    selected command
    lab aws verify db-host
    raw step 01
    aws ec2 describe-instances --filters Name=tag:Name,Values=lab-db-aws-ttl01
  3. 03
    Install the lightweight failover page on the EC2 host while the VCF copy is still serving.
    show raw commands
    selected command
    lab aws install failover app
    raw step 01
    aws ssm send-command --document-name AWS-RunShellScript ...
>
phase 03Flip the service and clean uplive

Drain the VCF service, prove the app from AWS, restore the VCF deployment, and return the cloud lane to zero.

5 cmds
  1. 01
    Intentionally drain the VCF web deployment so the warmed EC2 lane becomes the surviving endpoint.
    show raw commands
    selected command
    kubectl scale deploy/modern-web --replicas=0 -n modern-workloads
    raw step 01
    kubectl get deploy -n modern-workloads
  2. 02
    Verify the failover page is answering from the real EC2 host after the VCF deployment is drained.
    show raw commands
    selected command
    lab aws verify failover app
    raw step 01
    aws ssm get-command-invocation ...
  3. 03
    Bring the VCF deployment back so the primary lane is ready to take traffic again.
    show raw commands
    selected command
    kubectl scale deploy/modern-web --replicas=1 -n modern-workloads
    raw step 01
    kubectl get deploy -n modern-workloads
  4. 04
    Wait for the restored VCF web deployment to report healthy again before tearing down AWS.
    show raw commands
    selected command
    kubectl rollout status deploy/modern-web -n modern-workloads
    raw step 01
    kubectl get pods -n modern-workloads
  5. 05
    End the drill by tearing down the temporary AWS resources so the rehearsal finishes cleanly.
    show raw commands
    selected command
    lab aws kill all lab resources
    raw step 01
    lab aws running instances
live terminalproof@lab

Run a VCF VM failover drill into EC2 terminal

Guided failover playback. Raw commands and response blocks advance automatically.

command lineidle
proof@lab$

history buffer

Run a command to capture the last five entries here. Each row stays compact until you expand it.