Gravitonプロセッサを活用してコスパよくサーバー運用するには #AWSreInvent

このセッションはAWSが開発したarm64アーキテクチャのAWS GravitonプロセッサであるGraviton4プロセッサがどれだけ性能UPしたのか紹介や、Pinterestでの活用事例、Gravitonプロセッサ上で動作するソフトウェアについての解説がありました。
2023.12.07

こんにちは。ゲームソリューション部の出村です。AWS re:Invent 2023のセッションである「AWS Graviton: The best price performance for your AWS workload」のレポートをお届けします。

セッション概要

AWS Graviton-based Amazon EC2 instances provide the best price performance for workloads in Amazon EC2. In this session, discover AWS Graviton processor and review workload performance, AWS customer success stories, energy efficiency, and software offerings. Learn about best practices to optimize workloads on AWS Graviton across various applications and how you can get started with your AWS Graviton journey.

スピーカー

Sudhir Raman : Senior Manager, AWS
Ali Saidi : Senior Principal Engineer, AWS
Ambud Sharma : Tech Lead, Pinterest

内容について

このセッションでは初代のGravitonプロセッサからの歴史などにも触れられていましたが、この記事ではGraviton 4プロセッサに関する話題を中心に紹介していきます。

Gravitonプロセッサとは

AWSが独自に開発したarm64アーキテクチャベースのCPUです。AWSにはCPUとしてx86_64とarm64が選べるサービスがありますが、arm64を選択した場合は今回解説しているGravitonプロセッサが搭載されているサーバー上で稼働します。

Graviton 4プロセッサとは

Graviton 4プロセッサは今年発表された最新のGravitonプロセッサです。現在プレビューとしてGraviton 4プロセッサが搭載されているR8gインスタンスが利用できます。

Graviton3プロセッサベースのR7gインスタンスと比較して30%の性能向上、3倍のvCPU、3倍のメモリーに対応しています。EC2の中では、最もコストと性能が見合ったインスタンスとなっています。

ハードウェア性能としてはNeoverse V2コア 96個、コアごとに2MBのL2キャッシュ、DDR5-5600 のチャンネルが12個、インターフェイスとしてPCIe gen 5が96レーン搭載されています。よくあるARMプロセッサと比較してもサイズがかなり大きいことが分かります。

またGraviton 4プロセッサがGraviton3プロセッサと比較して何がスケールアップしたのか解説しています。

まずソケットあたりのコア数が50%増えました。先の資料にもありましたが、Graviton 3と比較してコアの数は3倍、アクセスできるDRAMも3倍となっています。

つぎにどれだけの性能向上が見込めるのか、いくつかのソフトウェアで例が挙がっていました。ここでは、Groovy / Grailsでの性能向上について計測されていました。R7gインスタンス(Gravtion 3ベース)と比較してR8gインスタンス(Graviton 4ベース)では、1.5倍程度の性能向上がありました(詳細な条件についてはスライドに記載があります)。

Pinterestでの事例

Pinterestでも多数のEC2インスタンスなどが利用されており、サービス内で利用されているRedisやDatabaseなどでGravitonプロセッサを利用することで、同性能でどれだけコストが下がったかについて触れられていました。

Pythonのマイクロサービスを取り上げると、c5インスタンスとc7g(Graviton 3ベース)インスタンスで比較していました。スライドをみても分かる通り、性能等は同じ程度ですがコストが下がっています。

ソフトウェア開発

自分達のソースコードをGraviton 4プロセッサ上で稼働しているAWSサービス上で動かすのに必要な情報が紹介されていました。結論から言ってしまうと何か特段複雑なことをする必要はありません。スクリプト言語で作成されていればそのまま動きますし、Go言語などで書かれている場合はARM64向けに再ビルドするだけです。

では改めてGravitonプロセッサに対応しているソフトウェアについてみていきます。AmazonLinuxはもちろんのこと、ほぼすべてのLinuxディストリビューションに対応しています。

次にプログラミング言語についてみていきます。PythonやPHPのようなインタプリタ、もしくはバイトコードにコンパイルするような言語であれば、特に何かしらの変更することなく動作します。

Go言語のようなコンパイルが必要な言語であれば、CPUアーキテクチャをARM64に指定してコンパイルすることで実行できるようになります。

Gravitonプロセッサであっても、Dockerやk8sのようなオーケストレーション、Lambdaのようなサーバーレスにも対応しています。そういう意味では、x86_64専用に開発されたようなソフトウェアで無い限り、大抵のソフトウェアはGravitonプロセッサの上で動作します。

まとめ

GravitonプロセッサはAmazonがAWS向けに独自に開発していることもあり、非常に実行効率の良いプロセッサとなっています。動作環境もx86_64プロセッサの場合と変わらないので、今後新しくサーバーを構築することがあればGravitonプロセッサを選択してみてはいかがでしょうか。