Fargate использует ECS (Elastic Container Service) в фоновом режиме для организации контейнеров Fargate. ECS, в свою очередь, использует вычислительные ресурсы, предоставляемые EC2 для размещения контейнеров. Согласно AWS Fargate FAQ :
Amazon Elastic Container Service (ECS) - это масштабируемая, высокопроизводительная служба управления контейнерами, которая поддерживает контейнеры Docker и позволяет легко запускать приложения в управляемом кластере экземпляров Amazon EC2.
...
ECS использует контейнеры, предоставленные Fargate, для автоматического масштабирования, балансировки нагрузки и управления расписанием ваших контейнеров
Это означает, что vCPU по существу совпадает с vCPU экземпляра EC2. Из документов :
Экземпляры Amazon EC2 поддерживают технологию Intel Hyper-Threading, которая позволяет одновременно выполнять несколько потоков на одном ядре ЦП Intel Xeon. Каждый виртуальный процессор представляет собой гиперпоток ядра процессора Intel Xeon, за исключением экземпляров T2.
Итак, чтобы ответить на ваши вопросы:
Если вы выделите 4 виртуальных ЦП однопоточному приложению - оно будет использовать только один виртуальный ЦП, поскольку виртуальный ЦП представляет собой просто гиперпоточность одного ядра.
Когда вы выбираете 4 виртуальных ЦП, вы фактически назначаете 4 гиперпотока одному физическому ядру. Таким образом, ваше однопоточное приложение будет по-прежнему использовать только одно ядро.
Если вы хотите более детально контролировать ресурсы ЦП, такие как выделение нескольких ядер (которые могут использоваться однопоточным приложением), вам, вероятно, придется использовать тип запуска EC2 (и управлять своими собственными серверами), а не используйте Fargate.