In the documentation it recommends using at least m1.small instances however in my experience these don’t provide good value for money.
We’ve been trialling T2 instances and they seem to be serving requests just fine with minimal latency. They’re more responsive than M1 instances and our CPU credit is never exhausted because CPU usage is never above 1%.
Are there any other gotchas with T2s?
The main gotcha is with CPU credits and the ability to automatically scale under load. If you were to get a sudden sustained peak that exhausted your CPU credits then your instances would be throttled which would result in:
- Higher latency as your instances cannot process as fast as they normally would.
- Inability to scale appropriately (based on CPU) as they are throttled and will not trigger those rules - unless they are below the throttled threshold.
Using T2 instances is generally fine as long as you control the source of the event stream and can then ensure there won’t be any sustained spikes.
Hope that helps,