I understand Elasticache is faster than RDS for retrieving data. What I don't understand is where Elasticache's data is actually stored.
AWS documentation says it is stored "in-memory", but... the memory of which machine(s)?
When creating an ElastiCache cluster, you define the type of the nodes that make your cluster. Node type maps to a group of supported EC2 instance types. When your cluster is created, the ElastiCache services provisions EC2 machines with that instance type - meaning the data resides in-memory of the EC2 machines provisioned by the ElastiCache service.
Note that for certain node types (from the r6gd family) have their data tiered between memory and local SSD (solid state drives) storage.