[アップデート] 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
をお使いの方は切り替えてみては如何でしょうか。