全3717文字
PR

 米Amazon Web Services(アマゾン・ウェブ・サービス、AWS)は、クラウドで使用する数百万台以上のサーバーハードウエアをすべて自社で開発・製造してきた。そのハードの中身が近年、市販のPCサーバーとは大きく異なり、メインフレームに近い構成になっていた事実が明らかになった。

 AWSのサーバーが「IBMメインフレーム互換」になったわけではない。AWSは2012年、AWS専用サーバーハードの内部に、CPUとは別にI/Oやサービス管理を担う専用プロセッサーを自社で開発して搭載する方針を決断した。そうした専用プロセッサーを使う手法は、メインフレームを参考にしたものだったと、AWS幹部が2022年8月にオンライン講演で明らかにしたのだ。

 その幹部とはAWSのJames Hamilton(ジェームス・ハミルトン)シニア・バイス・プレジデント(SVP)だ。ハミルトン氏はこれまでも、自社イベントのAWS re:InventでAWSの内部仕様を明らかにしてきた。今回はAWSのサーバーに2000万個以上も搭載されてきた独自半導体「Nitroチップ」の開発史を、2022年8月3日に開催したイベントAWS Silicon Innovation Day 2022の講演「History of Silicon Innovation at AWS」で解説した。

ハイパーバイザーなどの処理を肩代わりするNitroチップ

 Nitroチップの役割そのものは、2017年11月のAWS re:Inventで初公開されている。2013年からAmazon EC2のサーバーに搭載され始めたNitroチップは、従来はサーバーのCPUが担ってきた様々なワークロードを、CPUに代わって処理する(オフロードする)存在である。

 具体的にはNitroチップは現在、ネットワークのパケット処理や暗号化処理に加えて、ハイパーバイザーや各種管理ソフトウエアが担うクラスター管理やセキュリティー管理、パフォーマンス監視などのワークロードを処理している。

 2017年11月の発表では、Nitroチップに各種ワークロードをオフロードすることで、サーバーのCPUパワーを従来よりも最大12.5%多く、ゲストの仮想マシンに振り分けられるようになったと説明している。同じ量のサーバーでより多くのサービス収入を得るのに、Nitroチップは貢献しているわけだ。

ベアメタル実現が課題だった

 EC2開発の主要メンバーであるPeter Desantis(ピーター・デサンティス)氏がNitroチップの開発を思い付いたのは、2012年のことだ。当時のAWSはベアメタルサーバーを顧客に提供する手段について検討していた。

 ハイパーバイザー上で稼働する仮想マシンではなく、ハイパーバイザーを介さないベアメタルサーバーを提供することは、当時のAWSにとっては不可能だった。EC2を使うユーザーが他の顧客の領域やAWSのシステム領域に侵入できなくする様々なセキュリティー機能が、ハイパーバイザー上に実装されていたためだ。「AWSはセキュリティーを最優先する」(ハミルトン氏)との原則はゆずれない。

 そこでデサンティス氏が考案したのは「サーバーの中にサーバーを設ける」というアイデアだ。物理サーバーの内部にサービス管理専用サーバーを内蔵し、物理サーバーへのあらゆるトラフィックをサービス管理専用サーバーで隔離する。こうすればハイパーバイザーを介さなくても、サーバー資源を安全にユーザーに提供できるようになる。当時のデサンティス氏はこのアイデアを「すべてのコンピューターにドングル(専用デバイス)を導入する」と表現していた。

メインフレームと同じ仕組みを10分の1のコストで実現せよ

 デサンティス氏から相談されたハミルトン氏は、すぐにそれが価値のあるアイデアだと直感する。サーバーとは別にネットワーク管理やサービス管理のサーバーを本体に内蔵する手法はメインフレームで採用されており、メインフレームの高性能やRAS(信頼性、可用性、サービス性)を実現するのに役立っていたからだ。

 ハミルトン氏はAWSに転じる以前に、米Microsoft(マイクロソフト)でSQL Serverの開発を率いていたことで知られるが、マイクロソフトの前には米IBMでDB2の開発チームに所属していた。IBM出身でメインフレームを熟知するハミルトン氏だからこそ、デサンティス氏のアイデアの価値を判断できたわけだ。

 メインフレームではサービス専用サーバーはその後、サービス専用チップへと姿を変えた。メインフレームのような専用チップをEC2のサーバーに導入すれば、EC2にメインフレーム並みのRASをもたらせるのは間違いない。しかし課題はコストである。クラウドを安価に提供する必要があるAWSにとって、ハードがメインフレームのように高価になるのは受け入れられない。Nitroチップは「予想されるコストの10分の1」(ハミルトン氏)で実現する必要があった。

 そこでAWSが考えたのは、自社専用サーバーを垂直統合で開発する手法をより進め、チップまで自社開発することだった。まずは今は存在しないネットワーク管理チップメーカーである米Bigfoot Networks(ビッグフットネットワークス)や、同じく今は存在しないプロセッサーメーカーである米Cavium(カビウム)などと協力し、自社チップの開発を始めた。

ARMの「規模の力」に頼る

 コストを10分の1にするうえでハミルトン氏が目を付けたのは「規模の力」だ。半導体の世界では生産規模が大きければ大きくなるほどコストが安価になるという規模の力が働く。そこでハミルトン氏はNitroチップのアーキテクチャーとして、スマートフォンや組み込みデバイスで主流であるARMを選んだ。ARMプロセッサーは数百億個生産されており、規模の力が働くと判断したからだ。カビウムのARMプロセッサーを採用して、2013年に最初のNitroチップが実現した。

 AWSはその後、イスラエルの半導体メーカーAnnapurnaLabs(アンナプルナラブズ)を2015年に買収し、Nitroチップの完全な自社開発を始めた。そして現在はNitroチップ以外にも、ARMサーバーCPUである「Graviton」や機械学習の推論専用チップである「Inferentia」、機械学習のトレーニング専用チップである「Trainium」、SSDコントローラーなどの半導体を自社開発している。AWSは今や半導体メーカーにもなった。

サーバーのワンチップ化を想定し、半導体開発に参入

 ハミルトン氏によれば米Amazon.com(アマゾン・ドット・コム)は2013年に、自社による半導体開発に全面的にコミットすることを、創業者であるJeff Bezos(ジェフ・ベゾス)氏や現CEO(最高経営責任者)で当時はAWSのトップだったAndy Jassy(アンディー・ジャシー)氏を交えて決断したのだという。

 その際に根拠としたのが「コンピューターは将来的にすべてSoC(システム・オン・チップ)になる。つまりサーバーも含めてすべてワンチップになる」との予測だった。当時の時点でスマホはSoC化が進んでいた。それがサーバーにもやってくるのは時間の問題だと考えた。

 実はアマゾンにおいては2013年の時点で、自社で開発したサーバーが競争力の源泉になっていた。今後もサーバーの自社開発を推進するのであれば、サーバーのワンチップ化が進む中で、必然的にチップ開発も進めなければならない。そう考えてアマゾンは、自社半導体開発にまい進するようになった。

 一見すると、サーバーがワンチップ化するとの見通しと、AWSがCPU以外にもNitroチップや機械学習専用チップなど開発してサーバーをマルチチップ化している現状は矛盾しているように感じられる。しかしそうではないのだろう。

 ハミルトン氏は明言しなかったが、AWSが現在ひそかに、CPUやNitroチップ、機械学習専用チップをワンチップ化した「ワンチップサーバー」を開発している可能性は十分ある、と筆者は考えている。

ARMサーバー開発も10年近く秘密にしていた

 実はハミルトン氏が自身のブログで「将来的にARMプロセッサーがサーバーの世界で主流になる」と宣言したのは2009年のことだ。それに対して実際にAWSがGravitonを発表し、ARMサーバーのサービスを始めたのは2018年のこと。その間、10年近くにわたって、AWSがARMサーバーを開発していることは、公式には伏せられていた。

 よって筆者はハミルトン氏が「サーバーはワンチップになる」と宣言している以上、AWSがワンチップサーバーを開発しているだろうと推測している。そして将来AWSが発表するであろうワンチップサーバーは、高い信頼性や可用性を確保する仕組みを踏まえると「ワンチップメインフレーム」と呼ぶのがふさわしい。筆者はそう考えているのだ。