こんにちは、Enterprise Cloud部 技術1課 宮形 です。
お客様向けに AWS利用料のお見積りをお手伝いすることが多々ありますが、毎度「Graviton プロセッサって選んでいいの?」って疑問にあたります。ケースバイケースなのは理解していますが、大まかな方針がまとまっていると便利だと思ったので、本BLOGに自分の理解整理をかねてご紹介させていただきます。
Graviton プロセッサとは
AWSが独自に開発するプロセッサで、ARM 64bit アーキテクチャ(arm64)で動作します。従来の x86 アーキテクチャを採用するプロセッサのインスタンス等を選択するより、コストパフォーマンスが高くなる傾向があります。本BLOG執筆時点では第3世代までリリースされております。詳細は直近 AWS Blackbelt の記事をご参照ください。
参考:AWS Graviton AWS Black Belt Online Seminar
Graviton ってどういう時に選べばいいの
コストパフォーマンスが高いメリットを生かして、AWS利用料を削減してランニングコストを下げたい場合に選定します。
ただし条件によって選べる場合・選べない場合があったり、選ぶことでのリスクや対応負担がありますので、この後の「検討フロー」を参考頂ければと思います。
検討フロー
本BLOGは超短縮版としたいと思いましたので、解説など多く省いている点はご了承ください。
システムが「新規構築」か「マイグレーション」か
- 新規構築システム:Graviton を積極選定
- マイグレーションシステム:Graviton は慎重に選定
と考えるのが一般的かと思われます。
資産継承やコード再利用などの要件が殆ど無い新規構築するシステムであれば、イチからAWSサービス選定やアーキテクチャ設計になりますので Graviton プロセッサを採用するリスクも低く、積極選定することをお勧めします。
対して資産継承する過去システムからのマイグレーションでは、互換性を考慮する必要があります。後述の「マイグレーションにおけるAWSサービス毎の検討」を参考に慎重に選定します。
Windows Server には対応していない
現時点では Windows Server の OS に arm64 をサポートするタイプがないため、Windows Server 必須のシステムでは Graviton プロセッサの採用は見送ります。
昨今では .NET アプリケーションの Linux 対応が進むなどして、脱 Windows Server の手法も充実してきている現状がありますが、ここでは触れません。
大阪リージョンを利用する場合は慎重に
残念ながら日本国内においては、東京リージョンと大阪リージョンで比較すると、大阪リージョンで選べる Graviton プロセッサのインスタンスタイプは限定的であります。大阪リージョンを遠隔バックアップやBCPサイトにするケースも多いと思われますが、例えば東京リージョンで取得したインスタンスのAMIバックアップを大阪リージョンへコピーしても、選べる Graviton インスタンスタイプが無いため起動できないといったことが考えられます。
今後拡充していくと思われますので、都度確認することをお勧めします。
マイグレーションにおけるAWSサービス毎の検討
下記、表組で表現してみました。マネージドサービスであれば採用の難易度は低くなる傾向があると言えます。
AWSサービス | 採用の難易度 | 理由 | 備考 |
---|---|---|---|
RDS・Aurora | 低 | データベースエンジンがOSやアーキテクチャ差異を吸収 | 古いデータベースエンジンバージョンでは Graviton 未サポートの場合有 |
ElastiCache | 低 | データベースエンジンがOSやアーキテクチャ差異を吸収 | 古いデータベースエンジンバージョンでは Graviton 未サポートの場合有 |
Lambda | 中 | CPUアーキテクチャがファイル名にあったりすると要改修 | 古いランタイムバージョンでは Graviton 未サポートの場合有 |
ECS・Fargate (コンテナ) | 中 | Dockerイメージの多くがマルチCPUアーキテクチャに対応している | 利用するミドルウェアが arm64 サポートしているか要確認 |
EC2 | 高 | 原則アプリケーションの再コンパイルが必要 ベンダーアプリケーションのサポート要確認 |
ソースコード分析ツール提供等あり *1 |
まとめ
「Graviton プロセッサって選んでも大丈夫なの?」って聞かれた時に、サッと紹介できる情報があると良いと思い本BLOG執筆させていただきました。
一言では表せないことや、多岐にわたる前提条件などありますので、それはそれで専門資料やウェビナー等を参考頂くとして、まずはご検討取っ掛かりとして本BLOGをご利用いただけると良いと思います。
皆さまの参考になれば幸いです。
*1:Porting Advisor for Graviton - https://github.com/aws/porting-advisor-for-graviton