Tigeraのアドボケイトが、x86とARMのマルチアーキテクチャークラスターを解説
Cloud Native Computing Foundation(CNCF)が公開している動画シリーズから、x86サーバーとARMサーバーを混在させたマルチクラスターの構築を解説するセッションを紹介する。セッションを担当したのは、eBPFをベースにしたネットワークスタックCalicoのエバンジェリストであるReza Ramezanpour氏だ。Ramezanpour氏は、Tigeraのデベロッパーアドボケイトでもある。
動画:Cloud Native Live: Multi Architectural Kubernetes Clusters
CPU市場はIntelの寡占が続いてきたが、近年はスマートフォンに代表される高速性と省電力、小さなフォームファクターと言った特性を実現するためにARMのISA(命令セットアーキテクチャー)を使ったCPUがシェアを高めている。そして、その流れがサーバーの市場にも徐々に浸透しつつあるというのが2022年現在の状況だろう。パブリッククラウドの市場でもAWSがGravitonという自社製のARM CPUを使ったインスタンスを提供しており、コストパフォーマンスを意識した顧客の支持を得ている。
このセッションではARMとIntelのベンチマークを示しながら、クラウドコンピューティング領域におけるARMの優位性をいくつかのベンチマークを元に解説し、デモを交えて実際のオペレーションを見せているところが特徴的だ。
セッションの内容はCalicoの概要、マルチアーキテクチャーのクラスターの概要説明、ベンチマークの紹介、そしてデモを通してAWS上にx86とARMのサーバーを立てる操作を解説するものだ。
最初に紹介したのは自身がアドボケイトを務めるCalicoの概要だが、Calico自体はこの後の解説にはベンチマークの際に登場するだけで、このセッションとしてはあくまでも宣伝という意味合いだろう。Calicoに関しては公式サイトを参照されたい。
Calico公式サイト:Project Calico
最初に、どうしてマルチアーキテクチャーのクラスターが必要とされているのかについて解説した。ここでは、それぞれのCPUアーキテクチャーに最適なワークロード、アプリケーション、使われ方が存在することを解説している。
IoTデバイスなどの物理的サイズや省電力が要点になる使われ方では、スマートフォンにおいてARMを採用したCPUが多数使われていることからもARMの優位性は明らかだろう。一方、クラウドコンピューティングにおけるサーバーという使われ方では、コストパフォーマンスや電力消費に焦点を絞って比較するべきだろう。
このスライドではスマートフォン以外にも、スーパーコンピューターの富岳において64ビットのARMプロセッサが使われていることを説明し、ARMの存在感が増していることを示している。
コストの比較では、CPUアーキテクチャー以外は同じ構成のサーバーインスタンスを選択して月額のコストを比較している。m6g.largeというARMノードインスタンスでは56.21ドル、一方x86のインスタンスであるm5.largeでは70.08ドルというコストが発生することが解説されている。ここでARMインスタンスが約20%程度の低コストになっているのがわかる。
ここからはベンチマークの結果を元に、ARMアーキテクチャーがx86よりも高速にアプリケーションを実行できることを解説した。
このベンチマークはオープンソースのインメモリーデータベースのRedisにおいて、SETとGETというオペレーションを行った際の1秒間に処理できるリクエスト数を比較している。グラフでは、オレンジで示されているARMが、青で示されるx86よりもはるかに多数のリクエストを処理できていることがわかる(グラフがゼロから始まっていない点に注意)。
またここ数年ではWebサーバー市場においてApacheを超えるシェアを誇るNGINXについても、ARMのほうが高速であるという値が出ている。ここでCalicoのiptablesという凡例が出てきていることから、Calicoを使ってベンチマークを行っていることがわかる。Calico自体はiptablesが非効率的であることからeBPFを使って開発されていると思われるので、ここでiptablesを使うのは興味深い発想と言える。CalicoのeBPFをARMで稼働させるためのポーティングはCalicoコミュニティによって実行されたとして、バージョン3.21以降だけを対象とすることがRamezanpour氏のGitHubに記載されている。
ここからは実際にAWSのEKSを使ってデモを行い、Kubernetes上にm6g.largeというノードインスタンスを立ち上げる操作を見せた。
またCPUアーキテクチャーが違うからと言ってソースコードから変更する必要はないとして、コマンドラインひとつで変換が行えることを解説。
例としてGoogleが公開しているマイクロサービスの実装例であるOnline Boutiqueを使って、複数のプログラミング言語で構成されるマイクロサービスの一部をARMのノードで実行するというデモを実行した。
Googleが公開しているオンラインデモのサイトは以下のURLから参照されたい。
GCPのOnline Boutique:https://github.com/GoogleCloudPlatform/microservices-demo
マイクロサービスで構成されているオンラインブティックデモについては日本語でも公開されている。
日本語ドキュメント:Online Boutique アプリのデプロイ
なお、Ramezanpour氏が利用したコマンドなどは、以下のGitHubページに公開されている。
ここまでで、ARMを使ったサーバーにおけるアプリケーションの高速性やコストパフォーマンスの良さが訴求されたことになる。
サーバー用のARMプロセッサのベンダーとしては、元Intel CEOのRenee James氏が立ち上げたAmpere Computingが挙げられる。Ampere Computingが開発するAmpere Altraは、Oracleがクラウド向けサーバーとして採用している。日本オラクルのサイトには詳細な解説が掲載されているので、検討する際の参考にして欲しい。
日本オラクルが公開しているAmpereサーバーの解説:https://www.oracle.com/jp/cloud/compute/arm/
このグラフは上記の日本オラクルのサイトから引用したものだが、ここでもIntelとAMDのCPUに比較してコストパフォーマンスが優れていることが解説されている。
またARMとIntelの比較については以下のページも参照されたい。
InfoQの解説:Arm CPU対x86 CPU - クラウドでのパフォーマンス分析
2022年におけるAmpereのロードマップに関しては以下のサイトで解説されており、2022年にはよりデータセンター向けのコア数の多いプロセッサが計画されているという。
参考:Ampereがデータセンター用のARMプロセッサを計画中:Ampere Roadmap Update: Switching to In-House CPU Designs
ARMアーキテクチャーのCPUが、パブリッククラウドやオンプレミスサーバー市場においてどのようなシェアを獲得するのか、引き続き見守っていきたい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- CNDT 2022、IsovalentのアドボケイトがeBPFを解説
- 新しいセキュリティアプローチ、CalicoとIstio、Kubernetesによるゼロトラストネットワークとは
- Project Calicoとはなにか
- Open Infrastructure Summit上海、展示ブースで感じた宴の終わり
- Xeon初のSoC、マイクロサーバー向けプロセッサのアーキテクチャ(後)
- 初めてでも安心! OCIチュートリアルを活用して、MySQLのマネージド・データベース・サービスを体験してみよう
- クロスプラットフォームのベンチマークソフトウェア「Geekbench 5.4」リリース
- CloudNative Days Spring 2021開催。CNCFのCTOが語るクラウドネイティブの近未来
- クロスプラットフォーム開発を始める前に
- eBPF Foundation&LF ResearchがeBPF技術の進化とオープンソースエコシステムへの影響を調査したレポート「eBPFの現状」日本語版を公開