🔋

AWSのFargateSPOTのarm対応が持つ意味:逆らい難い世界の省電力トレンドとarmアーキテクチャの覇権について

2024/09/16に公開

この記事の主張をまず述べますと、モバイルエンジニアだけではなくサーバーやインフラの領域の開発を行うエンジニアとその志望者もMacを買うべきという内容です。
そしてのその理由はMacの方が人間工学的に優れているからとかUnixベースのOSだから...という話ではありません。
世界のクラウドのサーバーのアーキテクチャが省電力の観点からx86からarm64に置き換わりつつあり、それに合わせてサーバーエンジニアもarmのPCを買うべきであり、その現実的な候補がAppleシリコンシリーズ(M1~3)のMacしかないからです。

「省電力」がクラウドのメインの課題になりつつある

現在、消費電力はデータセンターを抱えるクラウドサービス各社にとってメインの経営課題になりつつあります。理由はインフレや環境負荷対策によってベースの電力価格が上昇しているのに加え、2022年以後に新たに登場した生成AIによって電力需要が激増しているからです。

現在Amazonはヴァージニア北部でデータセンターのために2.7GWの電力を消費していると言われていますが、これは現地の電力価格を踏まえると2000~3000億円ものコストになり、AWSの売り上げでの1.3兆円と比較してもかなりの額になります。

https://www.thenation.com/article/environment/data-centers-virginia-amazon-environment/

また、オラクルも800MWの小型原子炉の建設を計画中であるという記事がありますが、上記のような電気価格の上昇を踏まえると荒唐無稽な話だとは言い切れません。

https://xenospectrum.com/oracle-announces-plans-for-1-gw-data-centre-with-three-small-reactors/

そしてそのような電力問題への対策として打ち出されているものの一つが、AWSのGravitonをはじめとする省電力なarm64アーキテクチャのCPUを搭載したサーバーへの置き換えです。

サーバーのarm64への置き換え

携帯端末やマイクロコンピュータ向けに開発されたアーキテクチャであるarmが省電力である理由は設計思想に起因します。
arm64はシンプルな命令セットを採用したRISCアーキテクチャであり、低消費電力で高効率な処理を可能にします。一方、x86_64は複雑な命令セットを持つCISCアーキテクチャで、高性能を発揮するものの消費電力が高くなる傾向があります(詳しい説明は以下を参照)。

https://www.redhat.com/ja/topics/linux/ARM-vs-x86

しかし、2020年にAmazonが開発していたarm64アーキテクチャであるGraviton2をリリースし、Appleが同じくarm64を搭載したM1 Macを発売してから、従来存在していた「armはあくまでモバイル向け」という棲み分けは徐々に崩れていきます。

armベースのサーバーは消費電力あたりの性能に優れるため、例えばAWSではx86のサーバーからarmに切り替えるだけで性能をほぼ落とさずにコストを20%以上削減することができます。

GoogleやMicrosoftもarm64アーキテクチャのサーバーをリリースし始め、またこの記事を執筆した時期に近い2024年9月6日にもAWSはarm64のアーキテクチャに対応したFargate Spotをリリースしました。

https://aws.amazon.com/jp/about-aws/whats-new/2024/09/amazon-ecs-graviton-based-spot-compute-fargate/

FargateはAWSのコンテナを構成する際によく使われるステートレスで柔軟性の高いサーバーであり、また、Spotインスタンスとはごく稀にサーバーが停止する代わりに70%安く利用できる格安の設定です。
そして、Fargate Spotという格安の組み合わせに対してさらに省電力で価格の安いarmを適用することができるオプションが誕生し、開発環境から本番環境のサーバーまで一気通貫でarm環境で行うことが可能になったのです。

https://x.com/poly_soft/status/1832195997394678152

それまでX86でしか実現できなかった最もコスト効率の良いサーバー構成がさらに安価なarmで可能になったことは、世界中のサーバーのアーキテクチャが今後armに置き換えられていくことを決定づけるような象徴的な出来事であったと私は考えています。

開発環境と本番環境のアーキテクチャを合わせないことによる莫大なデメリット

現在、AppleシリコンシリーズなどのarmベースのPCのシェアは14%程度にすぎません。
しかし、省電力性能に優れるarmベースのクラウドのサーバーが今後増えていき、全く同じ性能であるにもかかわらずx86ベースのそれよりも価格が安くなっていった場合、開発者側にもarmベースのPCで開発をする必要性が発生します。
なぜかというと、本番環境と開発環境で異なるアーキテクチャを利用している場合はエミュレーションを行う必要がでてくるからです。

たとえば、arm64ベースであるM1 Macでx86ベースであるサーバーのコードを書く場合はRosetta2といいうアプリケーションでx86向けのコードを翻訳しながら実行する必要があるのですが、この翻訳作業のために処理速度が大幅に低下します。

実際に私の開発端末(M1チップを搭載した2020年のMac mini)でx86ベースのDockerイメージでベンチマークを行ってみたところ10倍以上の遅延が発生することが確認できました。

また、その反対にx86ベースのgithub actionsのサーバーでarm64向けのビルドを行った場合も7倍の遅延が発生します。

これはテストサイクルの遅延を招き開発のスピードと品質に悪影響を及ぼします。
仮に開発者が1日に2時間をエミュレーション環境下でコーディングや動作確認に費やすとして、これを年間(約250営業日)で計算すると500時間程度になります。
そして、その時間のうちの85%がエミュレーションの遅延の待ちに費やさられる無駄な時間だと考えると1年でおおよそ428時間、17日間もの時間を失っていることになります。

以上のように、開発環境のアーキテクチャを本番環境と合わせることは開発効率やコスト削減の観点から非常に重要です。
armベースのAppleSiliconシリーズの購入にはコストがかかりますが、失った時間に平均時給の3000円をかけると150万円弱になりますのでそれ未満の額であればわずか1~2ヶ月で元が取れてしまうことになります。

現状でMacしか選択肢がない理由

AppleシリコンのMacの最大の利点は、単にarmのプロセッサを使っているというだけではなくそのアーキテクチャに合わせてメモリや回路が最適化されていることです。
Appleのシステムオンチップ(SoC)設計は、CPU、GPU、メモリ、ニューラルエンジンなどを一つのチップに統合しています。この統合により各コンポーネント間のデータ転送が高速化され全体的なパフォーマンスが向上します。
カスタマイズ性や拡張性を犠牲にしてでもArmアーキテクチャに最適化されたPC作るという思い切った決断を他社に先駆けて行い、ポピュラリティの獲得と技術の蓄積を続けているのは現在のところMacだけです。

https://www.itmedia.co.jp/pcuser/articles/2311/03/news074.html

もちろん、Mac以外にもarmベースのPCの開発を行っているメーカーが存在しないわけではありません。
たとえばMicrosoftは2024年5月20日にQualcom社のArmベースのSoCを搭載したCopilot+ PCをリリースしており、Arm社自身もWindowsPC市場で50%以上のシェアを獲得するという目標を掲げています。

https://www.itmedia.co.jp/aiplus/articles/2405/21/news090.html
https://zenn.dev/techpit/articles/arm64win_for_business_dev
https://pc.watch.impress.co.jp/docs/news/event/1597833.html

ただし、Armは現在Qualcomに対してアーキテクチャのライセンスをめぐって訴訟を起こしており、armベースのWindowsPCの普及への悪影響を懸念する声もあります。

https://gigazine.net/news/20240613-arm-qualcomm-snapdragon-x/

まとめ:すべてのニュースは「省電力」で解釈可能

現在、経済のトレンドは「省電力」というテーマを中心に動いており、世界の主役の企業がやっていることも以下のように解釈することが可能です。

openai: 生成AIで世界の電力需要を激増させている会社
arm: 省電力なアーキテクチャのライセンスを販売している会社
tsmc: 省電力な半導体を製造している会社
apple: tsmcとarmを組み合わせて省電力なデバイスを製造している会社
microsoft: appleをフォローしつつAIでの一点突破に駆けている会社
qualcom: tsmcとarmを組み合わせてMicrosoft向けの省電力なSoCを製造している会社
amazon: データセンターに莫大な電気代を支払っている会社
nvidia: 電力を大量に消費するAIサービス各社向けにGPUを製造・販売している会社

そして、その末端でシステムやアプリケーションを開発してるエンジニアもそのトレンドとは無縁ではなく、それ逆らった選択をするとインフラコストの増大や開発効率の低下というかたちで思わぬコストを支払うことになります。

Discussion