I'd opt for Elasticache over EC2 so I will avoid a number of the operational aspects of managing a Redis instance. With Redis on EC2, you're accountable for scaling, updating, monitoring, and maintenance of the host and also the Redis instance. If you're fine dealing with the operational aspects of Redis, then it shouldn't be a problem. A lot of folks overlook the costs of the operational aspects of running a Redis instance. Unless you're well-seasoned with Redis, I'd consider Elasticache. I've been using it and have been pretty happy with it so far.
Now, EC2 is smarter when you want custom configurations of Redis that are not supported by Elasticache.
For more information, check out this official documentation: