AWSエンジニアのためのブログメディア
AWSのAmazon EC2におけるvCPUの役割と管理方法の概要

目次
仮想CPU(vCPU)とは
今回紹介する仮想CPU(vCPU)とは、仮想化技術で使われている技術の1つでゲストOSから見える仮想的なCPUコアのことです。
AWSのようなクラウドでは、仮想化技術を利用して1台の物理的なサーバー専用機に幾つものサーバーOSを稼働させています。そのため、AWSではインスタンスを作成する際、利用目的に応じたvCPUの数を指定することが重要です。
AWSでvCPUを利用する方法を説明する前に、まずはvCPUの概要について解説します。
仮想化とは
AWSのようなクラウドで利用されている仮想化とは、1台の物理的なコンピュータに複数のOSをインストールし、それぞれが別のコンピュータのように稼働させる技術です。この技術を利用することで物理的な1台のサーバー専用機で複数の仮想サーバーを運用できます。
そして仮想サーバーにインストールされたOSでは、割り当てられたCPUコアまたはスレッドとメモリーをまるで物理的なコンピュータのCPUやメモリーのように扱うことが可能です。
ただし、仮想サーバーに割り当てできるCPUコアやスレッドの数およびメモリーの量は、物理的なコンピュータのリソースに限られます。
そのためレンタルサーバーを扱う業者は、利用できるサーバーのCPUのコア数やメモリーを制限し、物理的なコンピュータのリソースの範囲内で貸出するのが一般的です。
CPUのスレッドとvCPUの関係
パソコンに搭載されるCPUのスペックには、コア数とスレッド数が表示されます。AWSでもよく利用されるIntel製のCPUでもコア数とスレッド数が決まっており、今回紹介するvCPUはスレッド数を基に計算されます。
なおスレッドとは処理を並列して行う際の単位でハイパースレッディングに対応した、Intel製のCPUではコア数の2倍のスレッドを利用可能です。
ハイパースレッディングを簡単に説明すると、今使われているIntel製のCPUは、命令を解析するユニット、データの入出力ユニット、演算ユニットに分けられます。
命令を解析するユニットがそれ以外のユニットを動作させるのですが、データの入出力ユニットが動作している間、演算ユニットは動作していません。また演算ユニットが動作している間、データの入出力ユニットが止まっています。
そこで命令を解析するユニットを拡張してコア2つ分の命令を引き受け、各ユニットを効率的に使えるようにしたのがハイパースレッディングです。
100を超えるvCPUも可能
一般的なパソコンで使われるIntel製CPUは4コア8スレッドですが、16コア32スレッドのCPUを搭載した高性能なパソコンも購入できます。
クラウドのデータセンターで使われているサーバー専用機はさらに高性能で、40コアのCPUを複数搭載し1台で100スレッドを超える並列処理も可能です。
AWSでは128個のvCPUを割り当てたインスタンスを作成することも可能です。そのため、これまでは高性能な専用コンピュータを必要とするシミュレーションなどの複雑な計算処理も、AWSのインスタンスで実行できます。
AWSにおけるvCPUの扱い
AWSのAmazon EC2で利用できるインスタンスは以前なら用途別にインスタンスタイプが設定されていましたが、現在はvCPUベースの制限によるインスタンスの選択が可能です。
次からAWSにおけるvCPUベースのインスタンスの特徴について紹介します。
AWSではCPUタイプを選べる
AWSの管理コンソールでAmazon EC2のインスタンスタイプ選択画面を開くと、多くの選択肢があります。
AWSでは、Intel製やAMD製のサーバー用CPU、さらにAmazon製のArmベースのCPUなどからCPUの種類を選べます。さらに目的に応じてvCPUの数やメモリーの量、ストレージの量などで最適化したインスタンスが用意されており、最適なインスタンスを選択可能です。
ただし、CPUタイプによっては選択できるインスタンスに制限があるので、まずはどのCPUタイプを利用すればいいか検討してください。
実績が多いIntel製のCPU
Amazon EC2のインスタンスでも汎用性が高いCPUがIntel製のXeonシリーズです。Intel製のXeonシリーズは多くのデータセンターでサーバー機のCPUとして利用されており、AWSでも以前から多くのCPUが稼働しています。
ただしIntel製のCPUはハイパースレッディングに対応しており、コア数の2倍のスレッド数がvCPUの数です。つまりIntel製のCPUを採用したインスタンスのvCPUの数はコアの数ではありません。そのため負荷が集中した際、vCPUに余裕があるのでコアがフル稼働状態になって性能が発揮できないケースもあります。
AWSではIntel製の他、AMD製のEPYCプロセッサを採用したインスタンスも提供していますが、このCPUもハイパースレッディングと同じような仕組みでコア数の2倍のスレッドを実行します。AMD製のEPYCプロセッサでもIntel製のCPUと同じ注意が必要です。
AWS製のArmコアCPU
AWSでは、自社のクラウド専用にArmコアをベースにしたCPU、「AWS Graviton 2」プロセッサを採用したサーバーを運用しており、このCPUを利用したインスタンスも選択可能です。
なおArmコアとはスマートフォンなどで使われる省電力高性能が特徴のCPUコアです。高性能な小さなCPUコアを1つのチップに幾つも組み込むことが可能で、さらに消費電力が少ないこともデータセンターに高密度に設置するサーバーに向いています。
なおArmコアにはIntel製CPUのようなハイパースレッディングがありません。「AWS Graviton 2」プロセッサを利用したインスタンスではコア数とvCPUが同じで、負荷が集中してもvCPUの数に見合った性能を発揮します。
vCPUを利用したインスタンス管理方法
先ほど紹介したようにAWSではCPUタイプや用途などに最適化された多くのインスタンスから選べます。それらのインスタンスでは処理する負荷に応じてvCPUの制限数も選べ、さらに必要ならvCPUを拡張するといった管理も可能です。
次からvCPUを利用したインスタンス管理方法について紹介します。
vCPUの数を選べる
AWSのAmazon EC2では多くのインスタンスタイプから選択できます。その多くの選択肢からvCPUに着目してください。vCPUが1だけのシンプルな構成のインスタンスから、vCPUが96もある高性能なインスタンスまで、様々な組み合わせから選ぶことが可能です。
具体例としてIntel製Xeonの最新モデルで構成されたM5インスタンスでは、標準的なm5.largeのvCPUは2ですが、m5.xlargeで4、m5.2xlargeで8、m5.4xlargeで16とvCPU数が倍になり、m5.24xlargeでのvCPUは96です。
1つのインスタンスでこれだけのスレッドを処理できます。
なお、先ほども紹介したようにIntel製のCPUではハイパースレッディングにより1つのCPUコアで2つのスレッドを実行できます。
そのため、負荷によってはvCPUの数分の性能が出ないこともあります。Armコアのインスタンスを利用するかvCPUの制限値を多めに設定しておく必要があるので注意してください。
vCPUの数による拡張
AWSでは現在vCPUの数をベースにしたインスタンスの管理が可能になっており、必要に応じてvCPUの数を増やすことでシステムのスケールアップが可能です。
これはシステムの処理能力を高めるために、新たにインスタンスの追加するのではなく、既存のインスタンス毎に割り当てられているvCPUの数を増やすことでシステムをスケールアップします。
インスタンスの稼働率の上昇に合わせてシステムのスケールアップが可能になることから、AWSで多数のインスタンスを運用している管理者にとっては便利な仕組みです。
AWSを活用するならvCPUに着目を
AWSを利用するメリットは、たとえWebサービスの利用者が急激に増加したとしても、その増加に合わせてシステムをスケールアップしていける点です。
Amazon EC2では高負荷時でも稼働できる高性能なインスタンスを多数用意しているので、その中から目的に応じて選び、システムをスケールアップしていけます。
今回紹介したvCPUは、スケールアップに対応できるAWSのメリットをより大きくできる仕組みです。AWSを活用するならインスタンスのvCPUの数にも着目してください。
Search キーワード検索
Popular 人気の記事
reccomended おすすめ記事
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
通信キャリア向け基盤構築/東京都渋谷区/【WEB面談可/インフラ業界経験者/AWSソリューションアーキテクト/AWS経験者活躍中】/在宅ワーク
月給65万~65万円東京都渋谷区(神泉駅) -
各種対応/東京都新宿区/【WEB面談可/インフラ業界経験者/AWSソリューションアーキテクト/AWS経験者活躍中】/テレワーク
月給60万~60万円東京都新宿区(高田馬場駅) -
要件定義、構築/東京都千代田区/【WEB面談可/インフラ業界経験者/AWSソリューションアーキテクト/AWS経験者活躍中】/テレワーク
月給60万~60万円東京都千代田区(飯田橋駅) -
運用構築/東京都千代田区/【WEB面談可/インフラ業界経験者/AWSソリューションアーキテクト/AWS経験者活躍中】/テレワーク
月給56万~56万円東京都千代田区(飯田橋駅) -
監視システムの保守、更改/東京都千代田区/【WEB面談可/インフラ業界経験者/AWSソリューションアーキテクト/AWS経験者活躍中】/テレワーク
月給55万~55万円東京都千代田区(神保町駅)