Если экземпляр подходит или нет, зависит от многих вещей. Исходя из моего опыта, для многих случаев использования микроэкземпляра недостаточно.
Я предлагаю начать с экземпляра t3.small, начать сбор метрик в CloudWatch, чтобы установить sh базовый уровень на несколько дней. Затем решите, достаточно это или нет. Если вы заполняете все свои ресурсы, вы можете в конечном итоге перейти на более крупный экземпляр. Однако, если ваше приложение имеет дело с Java, я думаю, что средний размер - это минимальное начало.
О задержке и других вещах, первое предложение - поставить CloudFront поверх EC2 хотя бы для всех ваших stati c content (предложение: поместите ваши stati c content на S3, не позволяйте EC2 обслуживать их). Тогда я думаю, что единственный вариант - это использовать какой-нибудь сторонний инструмент для повышения производительности, внешний по отношению к AWS.
Кстати, я создал одно и то же приложение на iOS много лет назад go, с веб-сайтом поддержки, размещенным на AWS. Теперь приложение исчезло, а веб-сайт не поддерживается: -)