オープンソースAPIゲートウェイ「Apache APISIX」の開発チームは、Amazon Web ServicesとMicrosoft Azure、Google Cloud Platformの処理性能と価格性能比を調べた。狙ったのはArmベースサーバの優劣を見極めることであり、APISIXを使って比較テストを実行した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
クラウドネイティブなオープンソースAPIゲートウェイ「Apache APISIX」の開発チームは2022年8月12日(米国時間)、ネットワークI/O集約型シナリオにおける「Amazon Web Services」(AWS)、「Microsoft Azure」(Azure)、「Google Cloud Platform」(GCP)の処理性能の比較結果を発表した。狙ったのはArmベースサーバの優劣を見極めることであり、APISIXを使って比較テストを実行した。
Armプロセッサはセンサーからスマートフォン、サーバまで、世界最大のコンピューティングエコシステムの基盤となっている。低消費電力や柔軟なライセンス、低コストという特徴から、多くの専門家はArmプロセッサが、クラウドコンピューティングの未来を担うと考えている。
AWSやAzure、GCPといった大手クラウドサービスベンダーは、Armアーキテクチャを採用したサーバを相次いで提供するようになっている。中でもAWSは2018年にいち早く、Armアーキテクチャに基づく初の独自プロセッサ「AWS Graviton」を搭載したサーバを発表している。
第1世代のAWS Gravitonプロセッサは、カスタムチップと64bit Arm Neoverseコアを使用していた。2022年5月にリリースされた第3世代Gravitonプロセッサ「AWS Graviton3」は、より進化したNeoverse V1設計に基づいており、グーグルが定義した深層学習用の浮動小数点精度「bfloat16」をサポートし、高い浮動小数点性能や暗号化性能、機械学習(ML)性能を提供する。
AWSのIaaS(Infrastructure as a Service)の一つ「Amazon EC2」(Amazon Elastic Compute Cloud)には、AWS Graviton3搭載のコンピューティング最適化インスタンス「Amazon EC2 C7g」が含まれている。概要は、次の通りだ。
Microsoftは2022年9月、Armプロセッサ「Ampere Altra」をベースにしたAzure仮想マシン(VM)ファミリーの一般提供を開始した。この新しいVMはスケールアウト型ワークロードやWebサーバ、アプリケーションサーバ、オープンソースデータベース、クラウドネイティブで高機能の.NETアプリケーション、Javaアプリケーション、ゲームサーバ、メディアサーバなどを効率的に実行できるよう設計されている。汎用(はんよう)VMファミリーの「Dpsv5」シリーズとメモリ最適化VMファミリーの「Epsv5」シリーズがある。概要は次の通りだ。
GCPのIaaS「Google Compute Engine」の汎用VMマシンファミリー「Tau T2A」シリーズは、2022年7月に発表されたGoogle初のArmベースのVMシリーズだ。2022年8月時点ではプレビュー段階にある。このシリーズは、Neoverse N1設計に基づくAmpere Altra Armプロセッサを搭載している。次の図のようなさまざまな構成で提供されている。GoogleによればWebサーバやコンテナ化されたマイクロサービス、データレコード処理、メディアトランスコーディング、Javaアプリケーションなどのスケールアウト型ワークロードに適しているという。
今回はシングルコアの性能をテストすることで、各Armサーバの全体的な性能を調べた。ネットワークI/Oを多用するAPIゲートウェイApache APISIXを使い、シングルCPUコアをバインドして、大手クラウド3社のArmサーバインスタンスのストレステストを実行した。
対象としたインスタンスは「AWS c7g.large」「GCP t2a-standard-2」「Azure D2ps v5」(Dpsv5シリーズに属するデュアルコアCPU)だ。QPS(クエリ/秒)と応答遅延の2つの指標によって、サーバ性能を分析した。
Apache APISIXはクラウドネイティブで高性能、スケーラブルなAPIゲートウェイだ。「NGNIX」と「LuaJIT」「etcd」をベースとするAPISIXは、従来のAPIゲートウェイと比較して、動的ルーティングやプラグインのホットロードといった特徴を持ち、クラウドネイティブなアーキテクチャの下でのAPI管理に特に適しているという。
テストでは、APISIXの正式なオープンソース性能テストスクリプトを使用した。
実際的で豊富なテストデータを得るために、2つの典型的なシナリオでApache APISIXの性能をテストした。
シナリオ1 単一のアップストリーム(プラグインなし)を使用した
シナリオ2 単一のアップストリームと2つのプラグイン(主に、「limit-count」と「prometheus」)を使用した
QPSのテスト結果を下に示す。数値が高いほど性能が優れている。
次に、応答遅延のテスト結果(単位:ミリ秒)を下に示す。数値が小さいほど性能が高い。
QPSと応答遅延の観点から見て、Apache APISIXのようなネットワークI/Oを多用するAPIゲートウェイを使用する場合、AWS C7gの性能が最も高く、GCP T2Aと比べて100%、Azure Dpsv5と比べて15%程度、高性能だと分かる。
ユーザーがクラウドサービスを選ぶ場合、性能と並んでコストが重要になる。つまりコスト性能比が判断基準になる
今回は、異なるクラウドベンダーのArmマシンの性能テストに主眼を置いているため、「同じCPUコア数でメモリが異なる」場合の違いは無視して、CPUコア数の観点からのみ、3種類のインスタンスのコスト性能比を分析した。今回のテストシナリオでは、コスト性能比は「QPS/コスト」を表す。
次の図はAWS C7g(US East Ohio)、GCP T2A(us-central1)、Azure Dpsv5(East US)のvCPU数別の時間単価を比較したものだ。
Apache APISIXの性能テストにおける単一アップストリームのQPSデータを参考に、AWS c7g.largeとGCP t2a-standard-2、Azure D2ps v5を1年間稼働させた場合のコストとコスト性能比をまとめた結果が次の図だ。
以上の結果から、AWS C7gのコスト性能比が最も高いことが分かる。2位と3位の違いも大きい。Azure Dpsv5はGCP T2Aと比べて、性能は15%程度高いが、コスト性能比は約2倍だ。
Apache APISIXの性能テスト結果とコスト性能比分析結果は、AWS C7gがGCP T2AやAzure Dpsv5よりも性能とコスト性能比が高いことを示している。これは、AWSがArmベースサーバにいち早く取り組んできたおかげだ。
今回のテストではApache APISIXにバインドされたシングルコアを使用したが、マルチコアを使用すれば、AWSのArmサーバのコスト性能比は、さらに高くなる可能性がある。
Copyright © ITmedia, Inc. All Rights Reserved.