0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者】AWSのvCPUとインスタンス選択の肌感覚

Last updated at Posted at 2025-02-16

そもそもCPUって方?

こちらのサイトをご覧ください。(非常に親切でわかりやすいです。)

本題のvCPUについて

一言でいうとvCPU(仮想のCPU)。バーチャルCPU。
仮想化技術のもとで成り立っている。
ゲストOSから見える仮想的なCPUコアのこと。

当然の話ではあるが、スレッド数やメモリーの量は物理的なリソースに依存。

よくPCに搭載される情報でCPUのコア数やスレッド数が表示されてると思う。
もちろん、AWSにもIntel製のCPUが存在していてコア数やスレッド数が決まっている。また、Intel製のCPUはハイパースレッディングを利用していてコア数の2倍のスレッドを処理可能。

100超えのvCPUも可能

クラウドならではですよね。
16コア32スレッドのかなり高性能なパソコンもawsで購入できる!

CPUの一般的なコア数と用途の肌感覚(トグルになってます。)

・1~2コア/1~2スレッド
最近は全く見ない、メール、ブラウジング程度にしか使えない。

・4コア/4~8スレッド
普通に事務作業する文には全然問題ない。オフィスソフトやWeb会議など

・6~8コア/12~16スレッド
モデラーとかゲーム好きが買う高性能PC。

・10コア以上/20スレッド以上
個人で持ってる人はほとんどいないと思う。
大規模なデータ解析とかわりと大規模なマイクラサーバー運営してますみたいな人(?)

人気なのはやはりIntel製!

実際、EC2インスタンスでも汎用性が高いのはIntel製のXeonシリーズ。
多くのデータセンターでも採用されている。

ハイパースレッディングの関係上、表記されているvCPUのコア数の2倍のスレッド数=vCPUの数。
→性能過剰の恐れ、性能低下(仮想リソース > 物理リソース)

chatGPTに噛み砕いた説明を求めてみた。(トグルになってます。)

ハイパースレッディングとvCPUの関係

ハイパースレッディング(Hyper-Threading)は、Intel社の技術で、1つの物理コアが同時に2つのスレッドを処理できるようにするものです。これにより、OSや仮想環境からは、物理コア数の2倍の論理コア(vCPU)として認識されます。例えば、4つの物理コアを持つCPUでは、ハイパースレッディングにより8つのvCPUが提供されます。

性能過剰の意味

「性能過剰になってしまう」という表現は、vCPUの数が物理コア数の2倍になることで、実際の物理リソース以上に仮想リソースが割り当てられ、期待した性能が得られない可能性を指していると考えられます。ハイパースレッディングにより、各物理コアは2つのスレッドを処理できますが、物理コアのリソース(演算ユニットやキャッシュなど)は共有されます。そのため、全てのvCPUが同時に高負荷の処理を行うと、物理コアのリソースが競合し、性能が低下する可能性があります。

適切なvCPUの割り当て

仮想環境でのvCPUの割り当ては、物理コアの数やワークロードの特性を考慮して行う必要があります。ハイパースレッディングにより、物理コア数の2倍のvCPUを割り当てることは可能ですが、常に性能が2倍になるわけではありません。むしろ、適切なバランスを取らないと、リソースの競合により性能が低下するリスクがあります。そのため、システムの負荷やアプリケーションの特性を考慮し、必要以上にvCPUを割り当てないことが重要です。

まとめ

ハイパースレッディング:1つの物理コアで2つのスレッドを同時に処理する技術。
vCPUの数:ハイパースレッディングにより、物理コア数の2倍として認識される。
性能過剰のリスク:vCPUを過剰に割り当てると、物理リソースの競合により性能が低下する可能性がある。
適切な割り当て:システムの負荷やアプリケーションの特性を考慮し、適切なvCPU数を設定することが重要。
このように、ハイパースレッディングとvCPUの関係を正しく理解し、適切なリソース割り当てを行うことで、システムの性能を最適化できます。

vCPU数の拡張もできる。

必要に応じてvCPUの数を後付けできる。
スケールアップのしやすさがクラウドのメリットでもありますね。

vCPUやインスタンス選択の肌感覚について

1~2 vCPU:

用途: 低トラフィックのウェブサイト、まずはこれで試してみてってやつ。(個人開発)
インスタンスタイプ例: t2.micro、t3.micro、t3a.microなど。
特徴: コストを抑えつつ、基本的な処理能力を提供。バースト可能なパフォーマンスを持つインスタンスが多く、継続的な高負荷には不向き。

4~8 vCPU:

用途: 中程度のトラフィックを持つウェブアプリケーション、ミドルサイズのデータベースサーバー、コンテナオーケストレーション。(企業向け)
インスタンスタイプ例: m5.xlarge、m5.2xlarge、c5.xlarge、c5.2xlargeなど。
特徴: コンピューティングリソースとメモリのバランスが良く、一般的なビジネスアプリケーションに適している。

16~32 vCPU:

用途: 高トラフィックのウェブアプリケーション、大規模なデータベース、ビッグデータ処理、機械学習モデルのトレーニング。(ここからコストもかなり上がってくる。)
インスタンスタイプ例: m5.4xlarge、m5.8xlarge、r5.4xlarge、r5.8xlargeなど。
特徴: 高い計算能力とメモリ容量を持ち、リソース集約型のアプリケーションやデータ処理に適している。

48 vCPU以上:

用途: ハイパフォーマンスコンピューティング(HPC)、大規模なデータ解析、リアルタイム処理、ディープラーニングのトレーニング。(研究用?)
インスタンスタイプ例: c5.12xlarge、c5.24xlarge、p3.16xlargeなど。
特徴: 非常に高い計算能力を提供し、専門的かつ高負荷なワークロードに対応可能。ただし、コストも高くなるため、必要性を十分に検討することが重要。

参考文献(参照日2025年2月16日)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?