expo.devを使ったリモートでのクロスプラットフォームビルドコストを試算してみた

マルチプラットフォームでのビルド専用SaaSを利用しているオープンソースプロジェクトを知り、実際に継続ビルドした時のコスト計算はどの程度になるのか確認してみました。
2024.03.13

クロスプラットフォームのライブラリに時折触ることがあります。ビルド手段はライブラリによって異なり、ほぼ同一と言えるものがない程に多種多様です。そして、殆どのケースでシェルスクリプト内に記載される形となっているので手続きが即座には判別出来ません。

先日とあるオープンソースのプロジェクトをローカルでビルドしようとしたところ、ビルド専用SaaSを使っていると判りました。実際に見たのは初めてで、構成からコストメリットが直ぐには判断できませんでした。コスト面や利便性など、どのような内容になるのか確認したものを備忘録としてみました。

expo.dev

nodejs製のCLIを用いて、指定したOS版のビルドをexpo.devプラットフォーム上で行います。フリープランではAndroidが合計30回、iOSが合計15回までビルド可能となっています。

ビルドは1回毎にコストが発生しますが、ビルド環境次第ではコストメリットも十分にあります。下表は2024-03-12時点のものです。

expo.dev plan Spec expo.dev Price GCP Price Hourly / Monthly GCP Spot Price Hourly / Monthly
Android medium 4 vCPUs, 16 GB RAM
n2-standard-4 Google Cloud machine type
$1 per build $0.249176 / $181.89848 $0.06226 / $45.4498
Android large 8 vCPUs, 32 GB RAM
n2-standard-8 Google Cloud machine type
$2 per build $0.498352 / $363.79696 $0.12452 / $90.8996

Androidのビルドは、1インスタンスで1日平均6回のビルドを一ヶ月継続した場合にはコスト面では同一となります。が、それ以上に環境維持から手離れできる点が大きいでしょう。

expo.dev plan Spec expo.dev Price HardWare Cost
iOS medium 3 vCPUs, 8 GB RAM
HardWare M1 3.2GHz 8-Core, 16 GB RAM
$2 per build $599
iOS large 6 vCPUs, 22 GB RAM if running on an M2 Mac
5 vCPUs, 12 GB RAM if running on an M2 Pro Mac
HardWare: M2 3.9GHz 8-Core, 24 GB RAM / M2 Pro 3.9GHz 12-Core, 32 GB RAM
$4 per build $999 / $1999

iOS向けはApple Sillicon環境の、現時点ではM1、M2、M2 ProのいずれかにてmacOS VMを用いてビルドすることになります。ハードウェア構成はAppleのカタログと併せてみるに、Mac Miniの可能性が高いでしょう。コストについてはAppleStoreのカスタマイズ構成を参考しています。

1日平均6回のビルドで一ヶ月継続した場合、iOS mediumは$360 per month、iOS largeは$720 per monthとなります。iOS mediumは約2ヶ月、iOS largeは約1〜3ヶ月を超えた時点で、1台のMacを共用利用した場合のHardWareコストを超える計算になります。

ビルド手続き

expo.dev上でプロジェクトを作ります。

GitHub上にリポジトリがある場合はexpo.devから接続後、ディレクトリ構成をexpo.dev上で指定することで、Push、PR、Tag作成時に自動ビルドを実行することも可能です。

問題は既存リポジトリをForkしたケース。expo.dev上からの設定が正常に機能し難い場合はProjectIDとOwnerを指定することでもCLIにてプロジェクトを照合しての手動ビルドを実行できます。

あとがき

プロジェクトメンバーがいずれも遠隔地勤務にてリモート環境でのビルドファイルの管理コスト等を減らしたい場合や、ハードウェアを持っていないもののビルドしたい場合には手間とコスト面の双方で便利なSaaSです。

問題はビルド回数に応じて天井無しのコストが発生する点です。ローカルでのシミュレータを実行する場合でもコストが発生するため、ビルドが安定して実行できるまでのコストを見積もっておく必要があります。

対象OSによって多少回数は上下しますが、先ずは無料枠で試してみるとよいでしょう。