<p>We have a product that each device will report data to our server every minute, we've sold 10K and it'll be more than 100K within the next 2 years.</p>

<p>Now, we just use <code>AWS EC2</code>(8 CPUs) + <code>Nginx</code> + <code>Koa2</code>, there're 8 instances, according to the requirement increasing, it won't be appropriate anymore.</p>

<p>So, I'm confused about which one should I choose?</p>

<p>BTW, I've been using <code>AWS Lambda</code> for 2 years to develop IOT issues and I used Docker 5 years ago, I think all of these three ways can solve my issue.</p>

<p>Kubernetes is a great tool if you are not sure how your application is going to scale out. Using Amazon's Kubernetes engine or GCP equivalent Kubernetes engine can help you create and manage these clusters with click of few buttons and manage your application containers using Kubernetes's superior container orchestration framework.</p>

<p>Docker swarm , IMO , has lost to kubernetes because they did not seem to have jumped into this part of architecture soon enough and kubernetes has already created a very mature framework with great adoption in many production environments and lot of community support for any issues related to it.</p>

<p>Another advantage of using an Orchestration mechanism instead of AWS native services would be that you do not get into Vendor lock-in situations and you can move your stack to any other cloud platform hosting Kubernetes easily. </p>

<p>If you are also interested in continue to use your Serverless architecture , you might want to look at Open FAAS which can be leverage on top of your Kubernetes framework. Check <a href="https://docs.openfaas.com/deployment/kubernetes/" rel="nofollow noreferrer">this</a> link for more details.</p>
