title: Java EE application deployment on Amazon EC2
body: <p>We have a Java EE application (<a href="http://en.wikipedia.org/wiki/EAR_%28file_format%29" rel="nofollow">EAR</a> file deployed on <a href="http://en.wikipedia.org/wiki/JBoss" rel="nofollow">JBoss</a>, MySQL, <a href="http://en.wikipedia.org/wiki/MongoDB" rel="nofollow">MongoDB</a>) which we would like to deploy on an Amazon EC2 instance. I have several questions regarding deployment best practices.</p>
  
  <ol>
  <li>What is the most commonly used Linux <a href="http://en.wikipedia.org/wiki/Amazon_Machine_Image" rel="nofollow">AMI</a> which we can rely on for a robust deployment (There are so many Linux variants, and I am not sure which AMI is commonly used, is it Fedora, CentOS, Red Hat, SUSE ...)</li>
  <li>How do we handle production upgrades (EAR file modifications or schema upgrades). Are there any tools which are available to handle this installation or rollback of these changes.</li>
  <li>What kind of data backup capability is available for the database?</li>
  <li>Should I rely on <a href="http://en.wikipedia.org/wiki/Amazon_RDS" rel="nofollow">Amazon RDS</a> for MySQL support?</li>
  <li>How should I handle support for MongoDB?</li>
  </ol>
  
  <p>This is the first time, I am hosting an web-app and would appreciate some inputs on how to manage the production instance.</p>