[アップデート] AWS Batch の ECS on EC2 タイプでコンテナインスタンスに Amazon Linux 2023 が設定出来るようになりました

2023.08.19

いわさです。

ECS on EC2 では既に ECS 最適化 AMI として Amazon Linux 2023 が提供されており、ほとんどの場合ではこちらを使うようお勧めすると公式ドキュメントには記載されています。

一方で、AWS Batch ではいくつかのコンピューティング環境のタイプを選択できて、ECS on EC2 も存在しているのですが、これまで公式に Amazon Linux 2023 がサポートされたというアナウンスがありませんでした。

そんな AWS Batch ですが、本日のアップデートで Amazon Linux 2023 がサポートされました。

AWS Batch の実体はキューの管理がほとんどで、コンピューティングの実体は ECS クラスターが作成されて、ジョブはタスクとして起動される形です。
そのため、厳密には ECS 最適化 AMI を直接指定したコンピューティング環境を作成すること自体は Amazon Linux 2023 の ECS 最適化 AMI が登場した 4 ヶ月ほど前から使えていたと思います。
あるいはアンマネージドなオーケストレーションタイプなコンピューティング環境で Amazon Linux 2023 ベースの ECS クラスターを使用する方法も選択出来たと思います。

今回のアップデートでは AWS Batch 側でマネージドオーケストレーションタイプの EC2 環境で、組み込みのイメージタイプ選択肢としてちゃんとサポートされたという感じです。
今回実際に使ってみましたので設定方法などを紹介します。本日時点のデフォルトは Amazon Linux 2 のままなので以下の流れで明示的な指定が必要です。

コンピューティング環境の EC2 設定オプションで指定する

今回の機能は、コンピューティング環境でマネージド型の EC2 を選択した際に、EC2 のベースイメージとして Amazon Linux 2023 がサポートされたという内容です。
この記事ではいくつか AWS Batch 固有の概念が出てきます。AWS Batch よくわからないぞという方は、以下の記事に全部まとまってますので併せて目を通して頂くことをお勧めします。

コンピューティング環境で EC2 のマネージドタイプを選択します。

デフォルトでは特に設定しなくても良い箇所ですが、インスタンス設定のステップで「EC2 設定」という箇所があります。
「EC2 設定を追加」ボタンで ECS on EC2 の基盤で実行される AMI を指定することが出来ます。

今回のアップデートで上記のように、イメージタイプで Amazon Linux 2023 が選択出来るようになりました。
従来はイメージ ID の上書きで任意のイメージを指定して ECS on EC2 を実行することが出来ましたが、イメージタイプで選択するだけでよくなります。

なお、画面上にも表記されておりますが、EC2 設定を何も指定しなかった場合は**本日時点ではデフォルトは Amazon Linux 2 *となります。
ECS 最適化 AMI では Amazon Linux 2023 が推奨されていますが、AWS Batch としては Amazon Linux 2023 の明示的な指定が必要ですのでご注意ください。

ジョブを送信して作成される EC2 仮想マシンを観察してみた

Amazon Linux 2023 をベースにしたコンピューティング環境が作成出来たら、ジョブを実行してみましょう。
AWS Batch を雑に言うと、ジョブ定義を使ってジョブを作成するのですが、ジョブはジョブキューに送信されます。送信されたジョブが処理されると、ジョブキューに紐づいているコンピューティング環境でジョブが実行されます。

次のように先程作成したコンピューティング環境を使ったジョブキューを作成しています。

適当なジョブを定義して、そこから新しいジョブを送信します。

しばらくするとジョブが処理されて、ECS on EC2 なクラスターでコンテナインスタンスが起動されました。

EC2 コンソール上からもコンテナインスタンスの詳細が確認出来ます。
AMI ID はami-0d4df76af35ee695d、AMI 名は「al2023-ami-ecs-hvm-2023.0.20230731-kernel-6.1-x86_64」でした。

本日時点ではもうひとつ新しい「al2023-ami-ecs-hvm-2023.0.20230809-kernel-6.1-x86_64」という ECS 最適化 AMI が存在しています。

公式ドキュメントによると AWS Batch で利用可能な最新の AMI が適用されるようですが、AWS Batch でまだサポートされていない AMI あるいは数日待ちがあるのかもしれないですね。
まぁ割りと新しめの AMI が選択されているので問題になることはほぼないでしょう。

さいごに

本日は AWS Batch の ECS on EC2 タイプでコンテナインスタンスに Amazon Linux 2023 が設定出来るようになったの使ってみました。

最近 AWS Batch では Fargate タイプのアップデートが多かったですが、Fargate が採用出来ないシーンでも Amazon Linux 2023 がオプションとして正式にサポートされたので手軽に使えるようになりますね。
コマンドオプションも増えていますのでこちらも併せてご確認ください。AMI ID を直接指定していた人は今回のオプションに切り替えても良さそうですよ。