Companies occasionally get married and change their names, then want to change their instance names to match.
- Create a new instance, export the first instance, import it into a second instance. This is doable but a mess for us and for users.
- Keep the instance, but rename all the stuff we put the instance name in. This is the nicest approach in some ways and most stuff is easy to rename (mostly databases and directories) but some is not (like S3).
- Put an indirection layer into instances so that all the database/directory stuff stays the same but the instance name can change. Downsides are: stuff gets tougher to administrate because instance "abc" may have a database named "definitelynotabc_user"; we may need to do more queries/lookups in more places to get the mapping from instance name to underlying resource locations.
- Combine (3) and (4) to do some renaming and some indirection. Maybe fine to rename the easy stuff and put indirection on S3.
Since this is currently very rare (one request ever) I'm inclined to try to pursue (2) and then maybe compromise and do something like (4) if moving resources in S3 turns out to be more than I want to deal with.