Without knowing more details, this reads like "our square peg didn't fit into App Engine's round hole". Pre-computing massive amounts of data on instance startup sounds like they don't have the correct mindset. Since every new instance starts from the same state, it must be true that whatever is being computed is, in fact, the same for each instance. This is a bunch of work which should be offloaded to a task once (or on a schedule) and saved somewhere like blob storage. Then each new instance can just load that precomputed data without having to duplicate the work that has already been done. I'm guessing that this lengthy computation is the search index which they reference elsewhere. They also complain that datastore reads are quite slow. Presumably if new instances are building a search index, they will be churning through lots of datastore queries which degrades performance and raises costs.
Bubblesort is slow on App Engine too, and you'd do much better switching to a different sort algorithm on EC2 as well. Every platform has a way to shoot yourself in the foot. Perhaps the solution isn't to move off, but to just not do that. Or, this blog post could be titled "How we didn't do our due diligence and chose a platform which was unsuitable for our problem space".
Bubblesort is slow on App Engine too, and you'd do much better switching to a different sort algorithm on EC2 as well. Every platform has a way to shoot yourself in the foot. Perhaps the solution isn't to move off, but to just not do that. Or, this blog post could be titled "How we didn't do our due diligence and chose a platform which was unsuitable for our problem space".