Tigeraのアドボケイトが、x86とARMのマルチアーキテクチャークラスターを解説

2022年4月7日(木)
松下 康之 - Yasuyuki Matsushita
ARMの優位性を解説しながら、ARMをx86クラスターに追加するマルチアーキテクチャークラスターを、デモを用いて解説。

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の優位性をいくつかのベンチマークを元に解説し、デモを交えて実際のオペレーションを見せているところが特徴的だ。

プレゼンテーションのタイトルは「Multi Architectural Kubernetes Cluster」

プレゼンテーションのタイトルは「Multi Architectural Kubernetes Cluster」

セッションの内容はCalicoの概要、マルチアーキテクチャーのクラスターの概要説明、ベンチマークの紹介、そしてデモを通してAWS上にx86とARMのサーバーを立てる操作を解説するものだ。

セッションのアジェンダ。デモでは実際にAWS上にクラスターをデプロイ

セッションのアジェンダ。デモでは実際にAWS上にクラスターをデプロイ

最初に紹介したのは自身がアドボケイトを務めるCalicoの概要だが、Calico自体はこの後の解説にはベンチマークの際に登場するだけで、このセッションとしてはあくまでも宣伝という意味合いだろう。Calicoに関しては公式サイトを参照されたい。

Calicoの紹介

Calicoの紹介

Calico公式サイト:Project Calico

最初に、どうしてマルチアーキテクチャーのクラスターが必要とされているのかについて解説した。ここでは、それぞれのCPUアーキテクチャーに最適なワークロード、アプリケーション、使われ方が存在することを解説している。

それぞれのCPUアーキテクチャーに最適な使われ方があることを説明

それぞれのCPUアーキテクチャーに最適な使われ方があることを説明

IoTデバイスなどの物理的サイズや省電力が要点になる使われ方では、スマートフォンにおいてARMを採用したCPUが多数使われていることからもARMの優位性は明らかだろう。一方、クラウドコンピューティングにおけるサーバーという使われ方では、コストパフォーマンスや電力消費に焦点を絞って比較するべきだろう。

ARMを使っているのはどういうケースか? を解説

ARMを使っているのはどういうケースか? を解説

このスライドではスマートフォン以外にも、スーパーコンピューターの富岳において64ビットのARMプロセッサが使われていることを説明し、ARMの存在感が増していることを示している。

ARMとIntelをAWSのコストで比較

ARMとIntelをAWSのコストで比較

コストの比較では、CPUアーキテクチャー以外は同じ構成のサーバーインスタンスを選択して月額のコストを比較している。m6g.largeというARMノードインスタンスでは56.21ドル、一方x86のインスタンスであるm5.largeでは70.08ドルというコストが発生することが解説されている。ここでARMインスタンスが約20%程度の低コストになっているのがわかる。

ここからはベンチマークの結果を元に、ARMアーキテクチャーがx86よりも高速にアプリケーションを実行できることを解説した。

RedisのベンチマークではARMが圧倒的に速い

RedisのベンチマークではARMが圧倒的に速い

このベンチマークはオープンソースのインメモリーデータベースのRedisにおいて、SETとGETというオペレーションを行った際の1秒間に処理できるリクエスト数を比較している。グラフでは、オレンジで示されているARMが、青で示されるx86よりもはるかに多数のリクエストを処理できていることがわかる(グラフがゼロから始まっていない点に注意)。

他のオペレーションでも比較しているが全体的にARMのほうが高速だ

他のオペレーションでも比較しているが全体的にARMのほうが高速だ

またここ数年ではWebサーバー市場においてApacheを超えるシェアを誇るNGINXについても、ARMのほうが高速であるという値が出ている。ここでCalicoのiptablesという凡例が出てきていることから、Calicoを使ってベンチマークを行っていることがわかる。Calico自体はiptablesが非効率的であることからeBPFを使って開発されていると思われるので、ここでiptablesを使うのは興味深い発想と言える。CalicoのeBPFをARMで稼働させるためのポーティングはCalicoコミュニティによって実行されたとして、バージョン3.21以降だけを対象とすることがRamezanpour氏のGitHubに記載されている。

参考:https://github.com/frozenprocess/Tigera-Presentations/tree/master/2021-10-15.Utah.Meetup.Multiarch.clusters.networking

NGINXでもARMのほうが高速に稼働

NGINXでもARMのほうが高速に稼働

ここからは実際にAWSのEKSを使ってデモを行い、Kubernetes上にm6g.largeというノードインスタンスを立ち上げる操作を見せた。

eksctlを使ってARMのインスタンスm6g.largeを立ち上げる

eksctlを使ってARMのインスタンスm6g.largeを立ち上げる

またCPUアーキテクチャーが違うからと言ってソースコードから変更する必要はないとして、コマンドラインひとつで変換が行えることを解説。

IntelからARMに変えるためのコストはさほど大きくないと説明

IntelからARMに変えるためのコストはさほど大きくないと説明

例としてGoogleが公開しているマイクロサービスの実装例であるOnline Boutiqueを使って、複数のプログラミング言語で構成されるマイクロサービスの一部をARMのノードで実行するというデモを実行した。

デモアプリをARMで実行するように構成するデモ

デモアプリをARMで実行するように構成するデモ

Googleが公開しているオンラインデモのサイトは以下のURLから参照されたい。

GCPのOnline Boutique:https://github.com/GoogleCloudPlatform/microservices-demo

マイクロサービスで構成されているオンラインブティックデモについては日本語でも公開されている。

日本語ドキュメント:Online Boutique アプリのデプロイ

なお、Ramezanpour氏が利用したコマンドなどは、以下のGitHubページに公開されている。

参考:https://github.com/frozenprocess/Tigera-Presentations/tree/master/2021-12-06.CNCF-Multiarch.migration

ここまでで、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が、パブリッククラウドやオンプレミスサーバー市場においてどのようなシェアを獲得するのか、引き続き見守っていきたい。

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

サーバー技術解説

Tigeraのアドボケイトが、x86とARMのマルチアーキテクチャークラスターを解説

2022/4/7
ARMの優位性を解説しながら、ARMをx86クラスターに追加するマルチアーキテクチャークラスターを、デモを用いて解説。
システム開発イベント

KubeCon NA 2021からサービスメッシュの2セッションを紹介

2022/3/18
KubeCon NA 2021からサービスメッシュのLinkerdの最新情報とIstioを使ったユースケースのセッションを紹介する。
セキュリティイベント

KubeCon NA 2021、ソフトウェア開発工程のタンパリングを防ぐSLSAを解説

2022/3/9
KubeCon NA 2021のプレカンファレンスから、ソフトウェアサプライチェーンを実装するフレームワークSLSAを取り上げたセッションを紹介する。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています