【AWS re:Invent 2020】AWS BatchがFargateでのジョブ実行をサポート

記事タイトルとURLをコピーする

どうも、CI4課の古川です。

コロナ禍で、2020年のre:Inventはフルリモートでの開催となりました。 来年こそは直接会場に行って参加したいと思います。

ところで、AWS Batchがアップデートされ、Fargateでのジョブ実行が可能しました。

今回はそれについて紹介していきたいと思います。

AWS Batchとは

AWS Batchは、 AWS クラウドでバッチコンピューティングワークロードを実行するフルマネージド型のサービスです。

従来はECS on EC2をベースとしており、ジョブ定義で指定したパラメータを使用してEC2上のコンテナ化されたアプリケーションとして実行されます。 また、キューイング、スケジューリング、ライフサイクル管理を簡素化します。

アップデート後の仕様

AWS BatchのリソースタイプとしてFargateまたはFargateSpotを指定し、Fargateジョブ定義を送信するだけで、EC2 インスタンスまたは AMI の管理は不要になります。 サーバーレスコンピューティングのメリットを活用できるようになります。

コンピューティング環境の作成

コンピューティング環境にて、プロビジョニングモデルに2つのオプションFargateとFargate Spotが追加されました。 f:id:swx-furukawa:20201218113505p:plain

Fargateを選択すると、vCPUとサブネットを指定するだけでコンピューティング環境が簡単に作成できます。

コンピューティング環境として blog-test を作成しました f:id:swx-furukawa:20201218114119p:plain

f:id:swx-furukawa:20201218114956p:plain

ジョブキューの作成

次にジョブキューを作成し、Fargateコンピューティング環境に接続します。

先ほど作成したコンピューティング環境 blog-test を指定し、キューの名前を test-blog としました。

f:id:swx-furukawa:20201218115758p:plain f:id:swx-furukawa:20201218115910p:plain

ジョブキュー定義の作成

ジョブ定義を作成します。プラットフォームにFargateが追加されています。 実行タイムアウトやコンテナプロパティを設定します。

f:id:swx-furukawa:20201218112314p:plain

ジョブキューの送信

先ほど作成したジョブ定義から、新しいジョブを送信します。

今回はキュー名をtestとして送信しました。 f:id:swx-furukawa:20201218121515p:plain

Fargateにてコンテナのデプロイと、タスクが追加されていることを確認できました。 f:id:swx-furukawa:20201218121650p:plain

キューが送信されたことを確認できました。 f:id:swx-furukawa:20201218122822p:plain

まとめ

今回はアップデートの紹介ということで、定量評価はしていませんが ジョブの作成→ジョブのキューイング→Fargate起動→キューの送信までの流れを短時間で実施できました。

ECS on EC2の場合ですとEC2起動に時間がかかってしまい、かつホストマシンの管理・運用が必要になってしまいます。

データベースのバックアップ取得で夜間バッチを使用する場合など、スポットで利用する場合はAWS Batch for FargateとCloudWatch Eventsを組み合わせると良いのではないでしょうか。

古川敏光 (執筆記事の一覧)

クラウドインテグレーション部・技術4課

AWSによるサーバレス開発をメインに日々研鑽しております。 最近ハマっている趣味はサーフィンです。