[アップデート] AWS Amplify Hosting のビルドインスタンスタイプをカスタマイズできるようになりました
いわさです。
今朝のアップデートで AWS Amplify のビルド環境に対してインスタンスタイプを選択できるようになりました。
従来の Amplify のビルドは 4 vCPU / 8 GiB メモリ / 128 GB ディスク容量のみの固定された環境で実行されていましたが、今回のアップデートでより大きな 2 つの環境が追加されました。
設定は Amplify ホスティングごとのビルド設定メニューから変更が出来ます。つまり、リンクされたリポジトリごとに設定変更が可能ですが、全ブランチ同一設定になります。
確認してみると、既存環境は次のように「標準」というインスタンスタイプが設定されていました。
ここからいつでもビルドインスタンスタイプを変更できます。
今回新しく、「大(8 vCPU / 16 GiB メモリ / 128 GB ディスク容量)」と「特大(36 vCPU / 72 GiB メモリ / 256 GB ディスク容量)」が追加されました。
あるいは、新規アプリケーション作成時にも指定することが可能です。
まず気になるのは料金です。当然ながらインスタンスタイプによってビルド時間あたりの料金が異なってきます。
次の料金ページが更新されていました。
インスタンスタイプ | 性能 | 料金 |
---|---|---|
標準 | 8 GB Memory / 4 vCPUs | $0.01/分 |
大 | 16 GB Memory / 8 vCPUs | $0.025/分 |
特大 | 72 GB Memory / 36 vCPUs | $0.10/分 |
標準から 2 倍の性能のインスタンスで 2.5 倍の料金、9 倍の性能のインスタンスが 10 倍の料金になっています。
あとはインスタンスサイズ変更によってどれだけビルド効率が上がるかですね。
設定変更してビルドしてみた
あまり大規模なビルド環境を私は持っていなかったのですが、最近良く使っているリポジトリがこちらで、1回のビルドあたりに 5~6 分かかる環境があります。標準的な Next.js の Amplify 環境です。
テストも実装されておらずビルド時間がたいして長くないので効果が出るのかわかりませんが、こちらでインスタンスタイプを変更して試してみましょう。
前述の手順のとおり、Amplify ホスティングのビルド設定からインスタンスタイプを変更します。
標準から特大に変更しました。
ではビルドを実行してみましょう。
結果ですが、ビルド&デプロイで 5 分ちょっとかかりました。あまり変わらないですね。
ビルドログを見てみると、冒頭にどのビルド環境が構成されたのかが出力されています。
標準環境でもビルドしてみましたがそちらも 5 分 30 秒くらいでした。
標準と特大の 2 つの環境のビルドログを比較してみました。各ステップの実行時間は次のような感じでした。
ステップ | 特大 | 標準 | 差分 |
---|---|---|---|
Git Clone & Setup | 10秒 | 16秒 | +6秒 |
npm ci | 1分37秒 | 2分5秒 | +28秒 |
Backend Build (ampx pipeline-deploy) | 1分20秒 | 1分23秒 | +3秒 |
Frontend Build (npm run build) | 43秒 | 50秒 | +7秒 |
あと、公式ドキュメントにて少し言及されているのですが、ビルドフェーズは序盤にビルドインスタンスの割当プロセスがあるのですが「特大」の場合はオーバーヘッド時間(課金対象外)が必要になる場合があるそうです。[1]
さいごに
本日は AWS Amplify Hosting のビルドインスタンスタイプをカスタマイズできるようになりました。
私の環境ではnpm ci
がちょっと早くなかったか?くらいで、大きな変化はありませんでした。
おそらくソースコードの規模や、カスタムビルドイメージを使っていたり、ビルドスペックの内容次第では、ビルドの効率化など恩恵を受けれる場合があると思います。
設定変更したり戻したりというのは手軽に出来るので、まず試しにお使いの環境でインスタンスタイプを変更して効果が出るか試してみは如何でしょうか。