title: RDS Read Replica Considerations
body: <p>We hired an intern and want to let him play around with our data to generate useful reports. Currently we just took a database snapshot and created a new RDS instance that we gave him access to. But that is out of date almost immediately due to changes on the production database.</p>
  
  <p>What we'd like is a live (or close-to-live) mirror of our actual database that we can give him access to without worrying about him modifying any real data or accidentally bringing down our production database (eg by running a silly query like <code>SELECT (*) FROM ourbigtable</code> or a really slow join).</p>
  
  <p>Would a read replica be suitable for this purpose? It looks like it would at least be staying up to date but I'm not clear what would happen if a read replica went down or if data was accidentally changed on it or any other potential liabilities.</p>
  
  <p>The only thing I could find related to this <a href="https://stackoverflow.com/questions/14405163/on-rds-can-i-create-tables-in-a-read-replica-that-are-not-present-on-the-master">was this SO question</a> and this has me a bit worried (emphasis mine):</p>
  
  <blockquote>
    <p>If you're trying to pre-calculate a lot of data and otherwise modify
    what's on the read replica you need to be really careful you're not
    changing data -- <strong>if the read is no longer consistent then you're in
    trouble</strong> :)</p>
    
    <p>TL;DR Don't do it unless you really know what you're doing and you
    understand all the ramifications.</p>
    
    <p>And bluntly, MySQL replication can be quirky in my experience, so even
    knowing what is supposed to happen and what does happen <strong>if there's as
    the master tries to write updated data to slave you've also
    updated.... who knows.</strong></p>
  </blockquote>
  
  <p>Is there any risk to the production database if we let an intern have at it on an unreferenced read replica?</p>