One thing to consider is that especially if you build your own battery pack, you will probably not need to replace ALL the cells in the pack at once. What happens is that individual cells within the pack will degrade differently, due to minute differences. Most notably, you want to keep the cells balanced, which works in two ways.
In the rendering above, all the cells in each of the 4 strings represented by the alternating red and green plates are wired in parallel. The trick here is keeping all of the individual cells in that parallel string balanced with each other. Simply connecting all the cells together in parallel will cause them to balance among themselves, to the extent they are of matched capacity.
The individual parallel strings, then, need to be balanced to each other in series. This is generally done using a BMS (Battery Management System), which come in varieties supporting 4/8/16 strings (12v/24v/48v) very commonly, though there are considerably more expensive versions that can handle hundreds of strings, which would be necessary for high voltage battery packs.
Bottom line, though, it's highly likely that when it comes time to start replacing batteries, you might only actually need to replace a small percentage of the individual cells that make up the battery. It can be a bit time-consuming, but you can pretty easily design a battery pack in such a way that one set of strings in an array can be removed from service at a time, leaving your battery still functioning, just with a temporarily reduced run-time.