AWS Batchの使い方、メリット、利用料金について
はじめに
皆さん、「AWS Batch」という言葉は聞いたことはないでしょうか? IT業界に携わっている多くの方は聞いたことがあるかもしれません。この記事では、「AWS Batch」とはなんなのかというところからメリット、使い方、利用料金までわかりやすく解説していきます。
「Batch」とは
まずは、「Batch」についてです。「Batch」というのは日本語では「1回分にまとめる」という意味です。業務では、「バッチ処理」や「バッチを叩く」というような使い方をします。ではどういう意味を指すのかというと、あらかじめ一連の手順を登録しておき、まとめて自動化で処理を行うという意味です。また、バッチファイルというものがあります。 これは拡張子が .batとなっているものです。中にはプログラムが書かれており、右クリックで実行すると、記述されているプログラムが実行されます。上に記述している「バッチを叩く」というのは 「 .bat のバッチファイルを実行してね 」という意味です。
「AWS Batch」とは
「Batch」については大体理解していただけたでしょう。では、本題である「AWS Batch」とはどういうものなのかというと、フルマネージド型のバッチ処理、実行サービスです。フルマネージド型というのは、コンピューターの障害監視、バックアップやソフトウェアのバージョンアップといった運用にかかわる作業をクラウド業者が行ってくれるサービスの事です。つまり顧客がシステムに対して何か技術的なことを行うといったことが全く必要のないサービスの事です。
他には、「AWS Batch」はジョブ間の依存関係をつけることができます。Aというジョブが終わったら、次のBというジョブに、Bが終わるとCのジョブを実行するような感じになるわけです。ちなみにジョブというのは仕事という意味を持つ英単語で、人間がPCに与える作業の単位のことです。次に、「AWS Batch」は「AWS CloudWatch」というサービスと連携することが可能です。「AWS CloudWatch」というのはAWSで実行するアプリケーションをモニタリングするサービスです。リソースの監視やログファイルの収集をしてくれるサービスです。つまり、「AWS Batch」と「AWS CloudWatch」を連携させることで、モニタリングを行ってくれるので、ログを収集したいから別途スクリプトを組むといったような手間や作業をする必要がなくなります。
「AWS Batch」のメリット
では、「AWS Batch」とオンプレミス環境でのバッチ処理と比較して、どのようなメリットがあるか紹介していきます。
まず1つ目のメリットとしては「AWS Batch」はAWSのサービスの1つなので、何かをインストールすることや導入の手順の説明といった手間がありません。
2つ目に高負荷でダウンしないというものがあります。「AWS Batch」はリソースが動的に変化するので、負荷がかかりすぎてシステムがダウンするといったことがありません。オンプレミス環境だと、負荷がかかりすぎてハードがダウンしてしまうといったことがありましたが、「AWS Batch」はそういった心配がありません。
3つ目には2つ目でサラッと書いたのですが、リソースが動的に変更可能というものがあります。オンプレミス環境でのバッチ処理は、設計上の高負荷には耐えられるように作られていますが、負荷が大してかからない時はリソースを持て余してしまうのです。オンプレミス環境ではこのような問題があります。ですが「AWS Batch」を利用すれば、リソースが動的に変化するので、負荷がかからない時はリソースを減らし、高負荷の時はリソースを増やすといったことが可能なのです。リソースの最適化を常に行ってくれるわけですね。
「AWS Batch」の使い方
今回はシンプルにジョブの投入の使い方を説明します。まずは、ジョブの実行をするので「Amazon EC2」を選択します。次に表示されるコマンドは、今回は初期に入力されている「hello world」を使いましょう。次へ進み、CPU、メモリ、ジョブの試行といった環境を選択し次へ進みます。これで使い方は終了です。あっという間ですね。
ここからは使い方というよりは確認方法となります。まずは、ダッシュボードへ進みましょう。投入したジョブは左から順に処理が実行されます。
SUBMITTED( スケジューラによるジョブ評価待ち )
>
PENDING( 別のジョブとの依存関係による処理待ち )
>
RUNNABLE( ジョブを実行するリソースが準備完了になり次第開始 )
>
STARTING( コンテナ初期化状態が進行中 )
>
RUNNING( ジョブはコンテナで実行中 )
>
FAILED( ジョブ実行によるすべての試行が失敗 )
>
SUCCEEDED( ジョブは正常に終了 )
上記の順で実行されるわけです。実行結果ですがこれは、モニタリングをしている「AWS CloudWatch」で確認できます。コマンド実行結果の’hello world’が表示されているはずです。簡易的ですが、これがジョブの投入から、実行、確認結果といった基本的な使い方です。
「AWS Batch」の利用料金
「AWS Batch」による追加料金は発生しません。つまり無料です!ただし、「AWS Batch」利用時に実行したAWSリソースには料金が発生するので注意してください。
まとめ
本記事では「AWS Batch」とはなんなのか、メリット、使い方、利用料金について紹介させていただきました。「AWS Batch」は本当に多機能で、本記事には書かれていない情報もまだあります。本記事に書かれているのは「AWS Batch」の一部です。「AWS Batch」に興味を持っていただけた方は、無料で利用することもできるので、本記事に書いてある使い方を読んでいただき、実際に実行して理解を深めるのもいいでしょう。