[アップデート] AWS Batch コンピューティング環境で許可されたインスタンスタイプに default_arm64 / default_x86_64 が指定できるようになりました
いわさです。
AWS Batch は複数のコンポーネントで構成されています。
コンテナを起動するジョブを実行するのですが、事前にジョブ定義を用意し、そのジョブ定義とどこで起動するかのジョブキューを指定します。
さらにジョブキューではどういったコンピューティング基盤で実行するかをあらかじめカスタマイズすることが出来まして、Fargate や EC2 など選択が可能です。
そのコンピューティング環境で EC2 のオーケストレーションタイプがマネージド型の時、起動される EC2 インスタンスタイプを指定することが出来ます。
今回のアップデートで新たにインスタンスタイプのセット、default_arm64とdefault_x86_64が追加されました。
Batch のコンピューティング環境では静的にインスタンスタイプを指定することも可能なのですが、デフォルトではoptimalというインスタンスタイプセットが選択されています。
以下はoptimalが設定された東京リージョンのコンピューティング環境でジョブを実行した時に起動された EC2 です。

c4.largeで起動されましたね。
optimalはm4/c4/r4などが優先的に選択されます。
リストの中から良い感じのものを自動選択して起動してくれるので良いのですが、コスト最適化を考えた時、c4などが優先的に選択されるのはちょっと古い感じで実際には「最適」とは必ずしも言えない状態でした。
今回追加されたdefault_arm64とdefault_x86_64はm6/r6/c6などより高性能で安価な世代が優先的に選択され、さらに ARM などの固定化もできるのでよりコストに最適化されたインスタンスタイプセットです。
今回こちらを使ってみたのでその様子を紹介します。
ジョブを実行するまでの準備
まずは今回アップデートされたパラメータを指定しましょう。
コンピューティング環境で指定することが出来ます。

コンピューティング環境では Fargate や EC2 や EKS、さらに EC2 の中でもマネージドとアンマネージドなど様々な選択肢があります。
今回のアップデートは EC2 のマネージドタイプで使うことができる機能です。
このインスタンス設定の中で「許可されたインスタンスタイプ」を選択することが出来ます。
デフォルトは次のようにoptimalが選択されていると思います。

今回のアップデートで追加されたのは次の2つのタイプです。

まずはdefault_arm64を指定して作成を続けてみます。
作成後のコンピューティング環境は次のように表示されます。

あとはこのコンピューティング環境を使ったジョブキューを作成します。

最後に、このジョブキューを指定してジョブを作成します。

ジョブの実行が開始されたら EC2 コンソールを確認してみましょう。

m6g.mediumで実行されていることが確認出来ますね。
そして別のコンピューティング環境でdefault_x86_64を選択した場合、ジョブ実行時に次のような EC2 インスタンスが起動されていました。

こちらはc6i.largeです。
ジョブ定義に従ってインスタンスサイズやタイプは少し変わりますが、m6/c6/r6などから優先して選択されていそうなことがわかりますね。
optimal の位置付け
なお、今後optimalはどうなるのでしょうか。
そのあたりも今回のアップデートで公式ドキュメント上追記されています。
2025 年 11 月までは現在の仕様(m4/r4/c4を優先)で動作し、2025 年 11 月 1 日以降はdefault_x86_64と同じ動作になるそうです。
特にユーザー側でアップグレード操作などは不要です。
自動でm6などが選択されるようになるので、逆にm4を引き続き使いたいのだが?という場合は、2025 年 11 月 1 日までにコンピューティング環境に対して静的にインスタンスタイプを指定しておきましょう。

さいごに
本日は AWS Batch コンピューティング環境で許可されたインスタンスタイプに default_arm64 / default_x86_64 が指定できるようになったので使ってみました。
より最適化されたインスタンスタイプセットといえると思いますのでoptimalをお使いの方は切り替えてみては如何でしょうか。






