COLUMN

Amazon EC2で利用できるCPUの種別と特徴・選定のポイントと注意点

Amazon EC2の導入をご検討されている方は、NTT東日本までお気軽にご相談ください。

AWSを利用しているとたくさんのインスタンスタイプがあり、選定で迷われるかと思います。その際、CPUコア数やメモリのサイズ以外に重要な検討項目であるCPUアーキテクチャの選定が難しいので、各アーキテクチャの概要説明と選定の方法を本コラムではお話したいと思います。

迷った時はIntelを選択

これからプロセッサの歴史や特徴など長い説明が続きますが、本コラム執筆時の2023年現在AWSのインスタンスタイプにおいてMac OS以外ではCPU選定で迷った場合はIntel (x86-64)を選べば問題ないかと思います。AMDも良いのですが、判断がつかない場合はIntelにしておきます。また、ARMも良いプロセッサなのですがARMの特徴やデメリットを理解していないとAWSでの使いどころがわからないのではないかと思います。Intel / AMDに慣れている人にとっては、少し癖のあるプロセッサ(*1)と言えますので、ARMベースのインスタンス採用時にはその選定理由をしっかり説明できるようになっておくと良いかと思います。

1 – 実際のところCISC型のIntel/AMDよりRISC型のARMの方がCPUの論理設計はシンプルです

Amazon EC2の導入をご検討されている方は、NTT東日本までお気軽にご相談ください。

マイクロプロセッサ・CPU市場の概要

では、ここから下は2023年AWSで利用できる3つの主要CPUアーキテクチャとメーカーの説明をしていきたいと思います。

INTEL

「Intel Inside」のシールとCMで有名、かつてMicrosoftと共にWintelと呼ばれ、現在でも世界のサーバー・パソコン市場で圧倒的なシェアを誇るCPUや半導体製品のメーカーです。2023年現在のメインストリームは、サーバー用途ではXeon、家庭用ではIntel Coreシリーズ。AWSでも利用することも多いかと思います。

世界初のマイクロプロセッサ i4004 は、嶋正利さんと米国人技術者テッド・ホフらの3名により、日米の共同開発で生まれました。そこから今日まで連綿と続く長いインテルプロセッサの歴史があります。マイクロプロセッサは米国に莫大な富を生みだし米国経済の発展に貢献、昔の一部のインテル製品には嶋家の家紋がプリントされ出荷されていた時代もありました。

AMD(Advanced Micro Devices)

INTEL互換プロセッサの設計・製造を主として、昔からINTELと激しい開発競争を繰り返して生き残ったインテル互換プロセッサメーカーの雄です。価格が安価で高速に動作することから自作パソコンファンから人気が高く、メーカー製品でもSONYのVAIOシリーズに搭載されるなど、尖った印象のあるメーカーで、昨今ではPlayStation 4 / PlayStation 5にもCPU / GPU (APU) を提供し、存在感が出てきているメーカーです。

本コラム執筆時点でのAMD製品のメインストリームは、サーバー向けのEPYCやパソコン向けのRyzenシリーズとなり、EPYCはサーバー市場でシェアを伸ばしています。2006年カナダのGPUメーカー ATI を買収し、GPU製品のRadeonもAMDの製品ラインナップに含まれることとなりました。

ARM (Advanced RISC Machine)

イギリスのAcorn ComputersでARMプロセッサの開発がスタート、その後スピンオフし、Apple Computer (Apple)らと共にARM (Advanced RISC Machine)がジョイントベンチャーとして設立されました。

松下電器産業(Panasonic)のマルチメディアゲーム機3DO REAL、Apple Newton (*2)、Gameboy Advance、Nintendo DS、PlayStation VITA、Macの最新機種、iPod touch、iPhone、ラズパイ(*3)、タブレット、携帯電話、自動車、家電など組み込み用CPU、特に省電力の特性を活かし携帯端末や携帯ゲーム機で採用事例が多く、組み込み用マイクロプロセッサとしては最大シェアを誇っています。AWSではARM64命令セットを利用したAWS独自開発のGravitonプロセッサとApple開発のM1プロセッサ・M2プロセッサが利用可能です。

2 – Apple Computerから発売された世界最初期のPDA(携帯情報端末)でiPod touchやiPhoneの原型とも言える携帯型小型コンピューター。もちろん電話の機能はありません。

3 – Raspberry Pi (ラズパイ) ARMを搭載した教育用ワンボードコンピューター。Linuxや*BSDの他、Acorn  Computers製のOSであるRISC OSも公開されています。

Amazon EC2の導入をご検討されている方は、NTT東日本までお気軽にご相談ください。

EC2インスタンスのネーミングルール

EC2インスタンスのネーミングルールには細かなルールはたくさんあるのですが、CPUに関する部分は、以下のように3文字目で見分けます。NVMe (Non-Volatile Memory Express)を示すdのようにCPU以外の拡張項目を示す文字もあるので、CPUだけであればこのiとaとgで見分けます。

2023年時点のOS・CPUの対応状況(AWS)

実務上でのCPUアーキテクチャの選定は、どのOSを使うかである程度決まってしまいますので、迷うところはあまりありません。以下に2023年時点のAWSにおけるOSとプロセッサの対応表を記載しています。

  • 横にスクロールします
OS 対応CPU オンプレの場合
Windows INTEL/AMD SurfaceなどでARM版Windows10/11もありますが、Windows ServerのARM版は開発・テスト中です。近い将来、まずAzureでリリースされ、AWSにも移植されるものと想定されます。
MacOS 両対応(将来はARMオンリーへ移行) オンプレミスMacではPowerPC → Intel/AMD → ARMへとアーキテクチャの移行が完了しましたが、AWSでは、Intel Core i7、ARMベースのApple製CPUのM1とM2プロセッサが利用可能です。利用予定のソフトウェア要件の確認は必須ですね。
Linux 両対応 Intel/AMD、ARMの他にも古いCPU・古いパソコン、ゲーム機までさまざまなコンピューターに移植されています。口述しますがdockerコンテナ利用の際は要注意です。
FreeBSD 両対応 i386 amd64 PowerPC ARMなどのアーキテクチャで最新版が開発・リリースされています。
NetBSD 両対応 驚くほど幅広いアーキテクチャに対応しているNetBSDですが、AWSではARM版のみ公開されています。自前でイメージを作成することでINTEL/AMDでも利用可能かと思います。

オンプレミスの場合、ARM版のWindowsもありますし、インテルプロセッサ向けのMac OSもありましたが、AWSで利用できるアーキテクチャは2023年のコラム執筆時では制限があります。

ARM版Windows 10/11では、x86アーキテクチャのソフトウェアをそのまま動作させることが可能ですが、CPUそのものに互換性はなく、Windows OSに搭載されているWOW64サブシステムによるARMエミュレーション機能を使って動作させています。INTEL/ADMとARMには互換性はないのでご注意下さい。

Amazon EC2の導入をご検討されている方は、NTT東日本までお気軽にご相談ください。

選定のポイントと注意点 (Windows)

Windowsを使う場合に選定が必要な項目として、Intelを選ぶかAMDを選ぶかと言う点になります。INTELプロセッサとAMDプロセッサは同じ命令セットで動いており、互いにその機能を取り入れていることから細かな違いはありますが、「どちらを選んでもほぼ同じ」と言う理解で良いと思います。

どちらを選んでもだいたい同じと言う前提を押さえた上で、もう少し解像度を上げるとコストパフォーマンスが高いのはAMDとなります。安く仕上げたい場合はAMDが最適ですね。また、インテルプロセッサは特定のアプリケーション利用時に優位です。プログラムからアプリケーションソフトを作成する際にコンパイルと言う作業を行いますが、ソフトウェアによってはインテルのプロセッサ向けに最適化してコンパイルされているものがあり、こう言った利用用途ではAMDのプロセッサで実行するよりかなり高速に動作することがあります。特にシミュレーション、科学技術計算や映像・音声などの処理でインテルプロセッサに最適化されたソフトウェアが多く、強みとなります。

選定のポイント
インテル向け最適化 一部の科学技術計算、物理シミュレーションや映像音声処理など特定分野でインテルプロセッサに最適化されているアプリケーションがあり、そう言った利用用途の場合はIntel一択となります。インテル最適化済ソフトウェアですとAMDではIntel製品ほどの実効速度がでません。
コストパフォーマンス 全体的にAMD製品はコスパが高く、安価でかつ高速と評判上々です。※その時代時代でIntelとAMDとで業界最速のポジションが入れ替わり、良いライバル関係です

選定のポイントと注意点 (Linux)

LinuxはIntel/AMDでもARMでもAWSで動作しますので、「CPUはどれでもいい」と考えられがちです。しかしながら、とても深刻なはまりポイント(案件の炎上にご注意)が潜んでいますので、業務での利用には注意が必要です。目的のLinuxでARM版リリースが見つかったとしても、利用予定の商用ミドルウェアやアプリケーションがIntel / AMDのみリリースと言った場合もあります。私が関わったPHP開発案件(*4) では、「ARMとINTELの途中切り替えはできない」「ARMだと必要なパッケージが見つからないことがある」と散々お伝えしたのですがgravitonプロセッサ採用で強行したアプリ開発会社がありました。結局いつまで経ってもシステムが未完成のまま数年が過ぎ、未完成のままプロジェクトから逃げ出した事例もあります。

4 – yum、dnf、aptなどのOS標準のパッケージ管理ツール、開発言語固有のcomposer、npmなどのライブラリ・パッケージ管理ツール等において、必要なパッケージやモジュールのARM版バイナリが入手できない可能性があります。rpmのレポジトリにおいてもi386やx86-64のみを公開していて、arm64バイナリは未作成・未公開の場合があります。

選定のポイント
インテル向け最適化 Windowsの選定ポイントで記載した最適化はLinuxなどのアプリケーションでも同様です。一部の科学技術計算、物理シミュレーションや映像音声処理など特定分野でインテルプロセッサに最適化されているアプリケーションがあり、そう言った利用用途の場合はIntel一択となります。インテル最適化済ソフトウェアですとAMDではIntel製品ほどの実効速度がでません。ARMも同様です。
コストパフォーマンス 全体的にAMD製品はコスパが高く、安価でかつ高速と評判です。また、ARMはさらに安価ですので、更なるコストダウンが期待できます。
商用アプリケーションソフトの対応状況注意 LinuxがARMに対応していても肝心の商用のミドルウェアやアプリケーションがIntel / AMDのみリリースの場合がありますので、必ず確認が必要です。さらに、アンチウイルスや監視エージェントなどは後回しでチェック漏れとなりがちです。
バイナリ提供の有無注意 OSS(オープンソースソフトウェア)だからどこかの誰かがボランティアが用意してくれていると言うわけにはいきません。特定のアーキテクチャ向けのパッケージが存在しない、バグがあって使えない、ダウンロードできないなどの問題もあります。自分自身でコンパイルしてもいいのですが、運用チームに引き渡した後、高い確率で運用が崩壊します。
dockerコンテナ利用時の注意注意 ARM版コンテナ基盤やARM向けLinuxカーネルでIntelプロセッサ向けにビルドされたコンテナイメージは原則ネイティブ動作しませんので要注意です。逆も然りです。自作のDockerfileからビルドをする際もdnfやaptなど管理ツールでARM版もバイナリが見つからない場合があるのでこの問題もケアしておく必要があります。
アーキテクチャ変更不可注意 EC2にはインスタンスの変更機能があり、IntelとAMDの変更やインスタンスのタイプ・サイズを後から変更することができます。しかし、これは、同じ命令セットを使っているIntelとAMDの間でのみ可能な変更処理です。「とりあえずARM使ってみて問題があればIntel/AMDに変更したらいいや」はできません。EC2インスタンスを1から作り直しになるので、ご注意下さい。

Amazon EC2の導入をご検討されている方は、NTT東日本までお気軽にご相談ください。

略称・略語

AMIインスタンスを起動する際に、利用したいソフトウェアの動作環境を確認するかと思いますが、CPUアーキテクチャは以下のような略称で記載されているかと思いますので、事前に十分に確認と検討をして下さい。

  • 横にスクロールします

x86 

i386 

IA-32

Intelおよび互換CPUの32bit CPU。FreeBSDやNetBSDなど古いアーキテクチャをサポートするOSでは今でもよく見かけます。この頃はAMD以外にもCyrixやTransmetaなどたくさんの尖った互換CPUメーカーがありました。なお、x86にはx86-64(amd64)も含められている場合もあるので注意が必要です。

amd64 

x86-64 

x64

Intel64 

EM64T

Intel/AMDの64bit CPUで現在のメインストリームです。amd64またはx86-64と呼ぶことが多いかと思います。 AWSのサーバーとしては、Intelの Xeon、AMDのEPYCから選ぶことが多いかと思いますが、MacインスタンスでCore i7を選ぶこともできます。x86 (32bit版) 向けのOSやコンテナ・ソフトウェアを動作させることも可能です(下位互換あり)。
IA-64 INTELとHPによる共同開発の64bit CPUアーキテクチャ。x86やamd64との互換性はありません。2023年現在、LinuxのISOファイルダウンロード時にIA-64向けのビルドはあまり見かけなくなりました。IA-64向けのOSやソフトウェアはAWSでは利用できません。

Arm64

Aarch64

64bit版ARMです。Gravitonの他、Apple開発のM1プロセッサ、M2プロセッサなど以前より身近になりました。

INTEL系CPUの最新アーキテクチャをamd64と呼ぶ経緯

マイクロプロセッサ黎明期から最新製品の開発競争や特許を巡る裁判などINTELとAMDは熾烈な競争を繰り返してきました。1994年にはINTELは、HP (Hewlett Packard Company)と共同でサーバー・パソコン向けの次世代64bit CPUであるItanium (IA-64)を発表しましたが、期待したほどの性能が出ないことや開発の遅れから一部のメーカーのサーバーで採用されたもののなかなか浸透せず、苦戦している状況が続きました。2003年、AMDが従来のインテルプロセッサx86を拡張したAMD独自の命令セットAMD64を発表。MicrosoftがWindows XP (64bit版) の命令セットにIA-64ではなくAMD64を採用したことで、互換プロセッサメーカーが本家との競争に勝利すると言う大逆転を演じました。現在のINTELはAMD64命令セットを採用したCPUを開発・販売していることとなり、XeonやIntel Coreはamd64互換プロセッサと言う位置づけとなります。

Amazon EC2の導入をご検討されている方は、NTT東日本までお気軽にご相談ください。

付録:INTEL / AMD / ARM以外のプロセッサ

その他のCPUアーキテクチャ:AWSとは関係ないので興味がある方だけ読んで下さい

  • 横にスクロールします
RISC-V BSDを生みだしたカルフォルニア大学バークレー校で開発されているRISC型CPUアーキテクチャ・命令セット。オープンなライセンスで公開されており、CPU開発製造でライセンス費用が不要な上、低消費電力な設計を期待できますので、将来AWSにも搭載される日が来るかもしれません。
SPARC Sun Microsystems (Oracle)と富士通が開発・製造しているマイクロプロセッサ。日本では富士通がSPARCアーキテクチャのCPUを製造し、スーパーコンピュータ「京」にも搭載されていました。Unix系OSのSolaris (Oracle) をはじめ、NeXTSTEP (MacOSの原型)、*BSD (BSD FreeBSD NetBSD OpenBSD等の各種BSD系OS)、Linuxなどが移植されました。なお、2022年、富士通はSPARCを搭載したサーバーを2030年まで開発・販売し、それ以降は中止すると発表しました。
POWER IBMのプロセッサで、中期のiMacやibook、PlayStation3で採用されたアーキテクチャとして知られています。IBMのUnix系OSであるAIXやLinux、*BSDの他、MacOSX、Windows NT (*5)、Windows XP(XBOX開発環境)などがリリースされました。現在でも現役のプロセッサです。
MIPS かつてMIPS Technologiesがかつて開発していたプロセッサ。Unix系OSとしては、*BSD、UNIX System V、IRIX (Silicon Graphics International)、NeXTSTEP (NeXT Computer)、NEWS (SONY)、EWS-UX (NEC)など各社Unixワークステーションに採用された他、Windows NT、組み込み用途でWindows CE、PlayStation、PlayStation2、PlayStation Portable、Nintendo64、Ciscoルータなど幅広く採用されていました。
ALPHA DEC(Digital Equipment Corporation - HPに吸収合併)がかつて開発していた初期の64bitプロセッサで、対応OSはTru64 UNIX、OpenVMS、Windows NT、*BSDやLinuxなど。
PA-RISC HPがかつて開発していたプロセッサ。対応OSは、HPのUnix系OSであるHP-UXの他、NeXTSTEP、Windows NT、*BSD、Linuxなど。HPは後にPA-RISCの製造を中止し、INTELと共同でItanium (IA-64)を開発しリリースしましたが、AMD64に市場のシェアを奪われてしまいました。

5 – Windows NT – 当時、Windows OSは業務用のWindows NTと家庭用のWindows 9x (NTにマージされ新規開発は終了)の2種の完全に異なるOSがラインナップ (その他にWindows CEなど組み込み用途のOSも存在) されており、このWindows NT最新バージョンが現在のWindows ServerやWindows 10/11の最新リリースとして続いている。

本コラムのまとめ

かなり長くなりましたので、この辺りで本コラムを締めたいと思います。ざっとまとめると以下のようになります。

  • AWSでは INTEL / AMD / ARMの3系統を選べる
  • 迷った場合はINTEL(INTEL最適化バイナリでない場合はAMDがベスト)
  • 価格はARM、AMD、INTELの順番に安いが、ARM選定は慎重に
  • INTELとAMD間でインスタンスタイプを変更できる(互換性あり)
  • INTEL/AMDとARM間でインスタンスタイプを変更することはできない
  • ARM選択の場合は必要なパッケージ全てが揃うことを必ず確認する
  • IA-64向けソフトウェアはAWSでは動作しないので注意 (x64と互換性なし)
  • コンテナ基盤OSとコンテナのCPUアーキテクチャは揃える必要あり

たくさん書いたのですが、CPUについてはまだまだ書きたいことがありますので、またの機会にしたいと思います。

ページ上部へ戻る

相談無料!プロが中立的にアドバイスいたします

クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。