web-dev-qa-db-ja.com

FargateのvCPUとはどういう意味ですか?

私の質問 here および here に対する回答を得ようとしていましたが、vCPUのFargate実装を具体的に知る必要があることを理解しました。だから私の質問は:

  1. タスクに4つのvCPUを割り当てると、このタスクのコンテナーで実行されているsingle-threadedアプリは、このすべてを完全に使用できることになりますvCPUは本質的に私が使用できるプロセッサーのコアの時間の一部に過ぎないので?
  2. たとえば、タスクに4vCPUを割り当てましたが、技術レベルでは、1つのスレッド(またはハイパースレッディングでさらに)を自由に処理できる物理コアに4vCPUを割り当てました。私のロジックはファーゲートのケースに対して正しいですか?

pSこれはnode.jsアプリで、複数のプレーヤーが相互に作用してセッションを実行するため、最大容量のsinglenode.jsプロセスを提供したい。

11
Petro Koval

Fargateは、バックグラウンドでECS(Elastic Container Service)を使用して、Fargateコンテナーを調整します。 ECSは、EC2がホストコンテナーに提供する計算リソースに依存しています。 AWS Fargateによると FAQ's

Amazon Elastic Container Service(ECS)は、Dockerコンテナーをサポートし、Amazon EC2インスタンスのマネージドクラスターでアプリケーションを簡単に実行できる、非常にスケーラブルで高性能なコンテナー管理サービスです...

ECSは、Fargateによってプロビジョニングされたコンテナーを使用して、コンテナーのスケーリング、負荷分散、およびスケジュールの管理を自動的に行います

つまり、vCPUは基本的にEC2インスタンスのvCPUと同じです。 docs から:

Amazon EC2インスタンスはIntel Hyper-Threading Technologyをサポートしています。これにより、単一のIntel Xeon CPUコアで複数のスレッドを同時に実行できます。 T2インスタンスを除き、各vCPUはIntel Xeon CPUコアのハイパースレッドです。

だからあなたの質問に答えるには:

  1. 4つのvCPUをシングルスレッドアプリケーションに割り当てた場合、vCPUはシングルコアのハイパースレッドであるため、1つのvCPUのみが使用されます。

  2. 4つのvCPUを選択すると、基本的に4つのハイパースレッドを単一の物理コアに割り当てます。そのため、シングルスレッドアプリケーションは、依然としてシングルコアのみを使用します。

CPUリソースのより細かい制御が必要な場合(シングルスレッドアプリで使用できる複数のコアの割り当てなど)、Fargateを使用するのではなく、EC2起動タイプを使用(および独自のサーバーを管理)する必要があります。

5
moebius