  Cloud storage systems generally add redundancy in storing content files such
that $K$ files are replicated or erasure coded and stored on $N > K$ nodes. In
addition to providing reliability against failures, the redundant copies can be
used to serve a larger volume of content access requests. A request for one of
the files can be either be sent to a systematic node, or one of the repair
groups. In this paper, we seek to maximize the service capacity region, that
is, the set of request arrival rates for the $K$ files that can be supported by
a coded storage system. We explore two aspects of this problem: 1) for a given
erasure code, how to optimally split incoming requests between systematic nodes
and repair groups, and 2) choosing an underlying erasure code that maximizes
the achievable service capacity region. In particular, we consider MDS and
Simplex codes. Our analysis demonstrates that erasure coding makes the system
more robust to skews in file popularity than simply replicating a file at
multiple servers, and that coding and replication together can make the
capacity region larger than either alone.
