AWS ARM64環境でのLinuxサーバー構築を行う際のメリットと注意点を確認する
ネットアシスト開発部のYKです。今回はAWS(Amazon Web Services)などにおいて、ARM64 アーキテクチャCPU環境にてLinuxサーバー構築を行う際のソフトウェア導入事情を確認してみたいと思います。
ARM64 (aarch64) とは
まず先にCPUアーキテクチャについてですが、intel Xeon スケーラブルプロセッサ、AMD EPYCなどに代表されるPC由来のサーバー向けCPUは x86_64 または amd64 と呼ばれる命令で動いています。2023年現在の一般的なLinuxディストリビューションについても x86_64 CPUに対応する形で提供が行われています。
それに対し ARM64 または aarch64 と呼ばれるアーキテクチャは、組み込み機器向けやスマートフォン向けなどを源流とするCPUアーキテクチャとなり、x86_64 とは命令が全く異なります。そのためARM64環境でLinuxサーバーを構築するためにはARM64に対応するLinuxディストリビューションが別途提供されている必要があります。
なぜARM64で構築するのか
基本的には従来からある x86_64 向けLinuxディストリビューションを利用した方が、従来からあるソフトウェアが利用できるため互換性の問題が生じません。
しかし、歴史的な経緯からARM CPUは x86_64 CPUよりも性能に対する処理能力に対する消費電力の効率面で優れていると言われており、実際にAmazon EC2 を利用する上においてもARM系の「AWS Graviton」プロセッサを採用するインスタンスは同様のスペックを提供する x86_64 CPUインスタンスよりも安価で提供されていることがメリットとなっています。
そのため、利用したいソフトウェアが問題なく動く場合、かつ必要スペック上問題ない場合においてはARM CPUのEC2インスタンスを利用することで x86_64 CPUのEC2インスタンスよりも運用コストを圧縮することが可能です。
実際に導入可能ソフトウェアを見てみる
では実際にARM系CPUを利用したEC2インスタンスを起動し、一般的なWebサーバーでよく導入されるソフトウェアが各ディストリビューションで導入可能なのか確認してみます。今回はAWSで提供されている Ubuntu 22.04 LTS、 Amazon Linux 2023、 Red Hat Enterprise Linux 9 のARM版で確認を行います。
※2023年4月19日現在。
※RHEL9 については Subscription Management repositories が無効の状態です。
- PHP
- Ubuntu 22.04 ARM64: 8.1
- Amazon Linux 2023 ARM64: 8.1
- Red Hat Enterprise Linux 9 AMR64: 8.0
- Ruby
- Ubuntu 22.04 ARM64: 3.0
- Amazon Linux 2023 ARM64: 3.2.1
- Red Hat Enterprise Linux 9 AMR64: 3.0.4
- Python3
- Ubuntu 22.04 ARM64: 3.10.6
- Amazon Linux 2023 ARM64: 3.9.16
- Red Hat Enterprise Linux 9 AMR64: 3.9.14
- NodeJS
- Ubuntu 22.04 ARM64: 12.22
- Amazon Linux 2023 ARM64: 18.12.1
- Red Hat Enterprise Linux 9 AMR64: 16.18.1
- OpenJDK
- Ubuntu 22.04 ARM64: 8, 11, 17, 18, 19
- Amazon Linux 2023 ARM64: 8, 11, 17 ※Amazon Corretto扱いでの提供
- Red Hat Enterprise Linux 9 AMR64: 8, 11, 17
- Go
- Ubuntu 22.04 ARM64: 1.13
- Amazon Linux 2023 ARM64: 1.19.6
- Red Hat Enterprise Linux 9 AMR64: 1.18.10
- Docker
- Ubuntu 22.04 ARM64: 1.5.2 ※
- Amazon Linux 2023 ARM64: 20.10.17 ※
- Red Hat Enterprise Linux 9 AMR64: ×
- MySQL
- Ubuntu 22.04 ARM64: 8.0.32
- Amazon Linux 2023 ARM64: ×
- Red Hat Enterprise Linux 9 AMR64: 8.0.30
- PostgreSQL
- Ubuntu 22.04 ARM64: 14
- Amazon Linux 2023 ARM64: 15
- Red Hat Enterprise Linux 9 AMR64: 13
- MariaDB
- Ubuntu 22.04 ARM64: 10.6.12
- Amazon Linux 2023 ARM64: 10.5.18
- Red Hat Enterprise Linux 9 AMR64: 10.5.16
- Redis
- Ubuntu 22.04 ARM64: 6.0.16
- Amazon Linux 2023 ARM64: 6.2.11
- Red Hat Enterprise Linux 9 AMR64: 6.2.7
- MongoDB
- Ubuntu 22.04 ARM64: ★
- Amazon Linux 2023 ARM64: ★
- Red Hat Enterprise Linux 9 AMR64: ★
- Git
- Ubuntu 22.04 ARM64: 2.34.1
- Amazon Linux 2023 ARM64: 2.39.2
- Red Hat Enterprise Linux 9 AMR64: 2.31.1
- Apache
- Ubuntu 22.04 ARM64: 2.4.52
- Amazon Linux 2023 ARM64: 2.4.56
- Red Hat Enterprise Linux 9 AMR64: 2.4.53
- Nginx
- Ubuntu 22.04 ARM64: 1.18.0
- Amazon Linux 2023 ARM64: 1.22.1
- Red Hat Enterprise Linux 9 AMR64: 1.20.1
- Postfix
- Ubuntu 22.04 ARM64: 3.6.4
- Amazon Linux 2023 ARM64: 3.7.2
- Red Hat Enterprise Linux 9 AMR64: 3.5.9
×:ディストリビューションの公式リポジトリに無し。
ソフトウェア側の公式リポジトリにもARM版提供無し。
★:ディストリビューションの公式リポジトリには無いが
ソフトウェア側の公式リポジトリで最新のARM版の提供有り。
※:詳細後述
結果としてはWebサーバー向けによく利用されるソフトウェアはディストリビューションの公式リポジトリからおおむね導入可能なことが確認出来ました。また、MongoDBについてはMongoDB側の公式リポジトリからそれぞれ提供があります。
この中で特に注意が必要な点としてはDockerになりますが、これはARM系だからというよりはディストリビューションごとの対応の違いが出ています。
- Ubuntu 22.04 標準のDockerはかなりバージョンが古いですが、Docker CE側の公式リポジトリから最新版が導入可能です。
- Red Hat Enterprise Linux 9 では標準リポジトリからDockerが削除されてます。
- Amazon Linux 2023 では標準のリポジトリから比較的新しいバージョンのDockerが提供されています。ただしDocker CE側の公式リポジトリ提供がありません。
Dockerを利用する場合は最新版のDockerが必要となることが多く、Docker CE側公式リポジトリから最新版がインストール可能なUbuntu 22.04がこの中では無難です。
なお、DockerをARM環境で実行する際は実行可能なコンテナもARMに対応したものが必要となることについては要注意です。
ディストリビューション標準でないバージョンのインストール
先のAmazon Linux 2023環境におけるDocker最新版導入のように、ディストリビューションで提供されるバージョンではないバージョンを導入しようとする際は x86_64版よりも難しくなる場合があります。
ARM 64向けディストリビューションを利用する際は、ディストリビューションの提供するバージョンで問題が無いか、別バージョンをインストールしようとした際にどの程度追加の調査・作業が必要かの確認について、x86_64環境以上に注意が必要です。
まとめ
ここまでARM64環境でLinuxサーバーを構築するメリットと注意点について説明しました。これらの注意点について問題が無い場合はコストメリットのためにARM系CPUインスタンスを検討する価値があるのではないでしょうか。ネットアシストではARM系インスタンスを利用した構築実績もございますので、ぜひご相談いただけたらと思います。