As online services and applications are moving towards a more human-centered design, many app vendors are taking the quality of experience (QoE) increasingly seriously. End-to-end latency is a key factor that determines the QoE experienced by users, especially for latency-sensitive applications such as online gaming, autonomous vehicles, critical warning systems and so on. Edge computing has then been introduced as an effort to reduce network latency. In a mobile edge computing system, edge servers are usually deployed at, or near cellular base stations, offering processing power and low network latency to users within their proximity. In this work, we tackle the edge user allocation (EUA) problem from the perspective of an app vendor, who needs to decide which edge servers to serve which users in a specific area. Also, the vendor must consider the various levels of quality of service (QoS) for its users. Each QoS level leads to a different QoE level. Thus, the app vendor also needs to decide the QoS level for each user so that the overall user experience is maximized. We first optimally solve this problem using Integer Linear Programming technique. Being an -hard problem, it is intractable to solve it optimally in large-scale scenarios. Thus, we propose a heuristic approach that is able to effectively and efficiently find sub-optimal solutions to the QoE-aware EUA problem. We conduct a series of experiments on a real-world dataset to evaluate the performance of our approach against several state-of-the-art and baseline approaches.