I'm setting up an ElastiCache Redis cluster, however event when disabling the Multi-AZ option the nodes are being distributed across multiple AZs. I want them to be in the same AZ as my EC2 nodes to avoid data transfer costs. It also seems impossible to move existing nodes to another AZ.
Is there a way to have all cluster nodes in the same AZ?
Depends. Multi-AZ is required for Redis with Cluster Mode Enabled (CME). So different AZs are also required and you can't change it.
But with Cluster Mode Disabled (CMD), you can create your cluster in even one subnet. For that you have to create your own subnet group and choose it when you create the CMD cluster.