title: Terraform + AWS ECS, continuous deployment process?
body: <p>I'm currently migrating to AWS ECS, after using AWS Elastic Beanstalk with the Ruby platform to host &amp; deploy my Rails app for the last 6+ years.</p>
  <p>As such, I've had to dockerize my app and other services with docker-compose, and am now considering how to provision the infrastructure and prepare code deployments.</p>
  <p>I've spent weeks studying to make this migration, but I'm now a bit overwhelmed with the variety of methods to deploy the infrastructure and app to AWS (co-pilot, docker-compose, eb w/ docker, etc.).</p>
  <p>Also, I was hoping to remain as cloud-platform-agnostic as possible, as I will be moving some of my AWS infrastructure to Digital Ocean in the future. So I was hoping to use Terraform, but since the options mentioned above all seem to use CloudFormation internally, Terraform seems unnecessary.</p>
  <p>Given that context, <strong>what processes and tools should I be using if I want to:</strong></p>
  <ol>
  <li><p>Provision my infrastructure on AWS with Terraform.</p>
  </li>
  <li><p>Quickly and simply deploy code changes to production with no downtime. Ideally, we wouldn't use AWS-based Dev-ops tools (CodeCommit, CodeDeploy, etc).</p>
  </li>
  </ol>
  <p>I'm new to docker and elastic beanstalk made code deployments so easy, that I'm feeling uncertain about where else I should be looking. I've never used tools like Jenkins before and am not entirely sure if/how that fits into my processes.</p>
  <p>Thank you for the guidance!</p>