2021/03/10

AWS Batchの使用方法とメリット|AWS CloudWatchとの連携・AWS Batchの料金

 
  

AWSとは


AWSとは、Amazonから提供されている100種類以上のクラウドコンピューティングサービスを指します。正式名称をAmazon Web Servicesといいます。

クラウドコンピューティングというのは、インターネットを通じて、ストレージ・サーバー・データベース・ソフトウェアなどの、コンピューターを使用した多種多様なサービスを利用することです。

クラウドコンピューティングは、手元に1台のパソコンとインターネット環境があれば、サーバーやストレージ、データベースなどの利用が必要なだけ出来ます。

AWS Batchとは


AWS Batchとは、バッチ処理を実行してくれる、フルマネージド型のサービスを指します。

フルマネージド型とは、ソフトウェアのバージョンアップやバックアップ、そしてコンピューターのモニタリングなどの、運用に関する作業を全てクラウド業者が実行してくれるサービスのことです。

すなわち、クライアントがシステムに対して利用者が技術的な作業を行う必要が全く無いサービスです。

AWS Batchで出来ること


AWS Batchを利用することで、出来るようになることは主に3つあります。バッチ処理、ジョブ間に依存関係をつける、AWS CloudWatchとの連携です。

サービスを使いこなすためには、正しい知識を身につけて理解を深めることが大切です。それではひとつひとつ説明していきます。

バッチ処理

AWS Batchは、バッチ処理の実行をすることが出来ます。

「Batch」とは日本語で「1回にまとめる」と訳され、業務上では「バッチを叩く」や「バッチ処理」といったように使われ、一連の手順をあらかじめ登録しておき、自動でまとめて処理をするという意味です。

また、拡張子が「.bat」となっているものを表す、バッチファイルという言葉があります。バッチファイルの中にはプログラムが記されており、右クリックすると書かれたプログラムが行われるようになっています。

なお「バッチを叩く」というのは「.batのバッチファイルを実行して欲しい」ときに使う言葉です。

ジョブ間の依存関係

AWS Batchは、ジョブとジョブの間に依存関係をつけることが出来ます。

分かりやすくいうと、ジョブAの実行が終わったら、次のジョブBに実行を移し、ジョブBが終わったら次のジョブCを実行するという感じです。ちなみにジョブとは何かというと、英語で「仕事」を意味する言葉であり、PCに対して人間が与える作業単位を表します。

AWS CloudWatchと連携

AWS Batchは、AWS CloudWatchと呼ばれるサービスと連携することが出来ます。

AWS CloudWatchとは、AWSで実行されるアプリケーションのモニタリングをするサービスのことです。リソースを監視したり、ログファイルを収集してくれるサービスとなっています。

AWS BatchとAWS CloudWatchを連携することで、モニタリングを実行してくれるので、ログの収集をしたいときに、別途スクリプトを組むなどの手間のかかる作業が必要ありません。

AWS Batchの使用方法


AWS Batchを使うことで、リソースの最適化が可能となり、負荷のかかりすぎによってダウンしてしまうというリスクを防ぐことが出来るようになります。

ここからは、そんなAWS Batchの基本的な使い方である「ジョブの投入」について説明していきます。

最初に、ジョブを実行するので「Amazon EC2」を選択してください。次にコマンドを選ぶのですが、ここでは「hello world」を使います。次に進んで、CPUやメモリ、ジョブの試行などといった環境を設定し、次へ進んでいきましょう。これで使い方の説明は終了です。

確認方法

ここからは確認方法について説明します。まず、ダッシュボードへ進んで下さい。投入されたジョブは、左から順番に処理が行われます。

「SUBMITTED」「PENDING」「RUNNABLE」「STARTING」「RUNNING」「FAILED」「SUCCEEDED」の順番で処理が実行されていきます。

実行結果では、モニタリングする「AWS CloudWatch」によって確認が可能で、コマンドの実行結果である「hello world」が表示されています。非常に簡易的ではありますが、以上がジョブの投入、実行、そして確認結果といった基礎的な使い方です。

AWS Batchのメリット


AWS Batchには、オンプレミス環境でバッチ処理する場合と比べて、いくつかのメリットがあります。中でも覚えておきたいメリットは次の4つです。

AWSと統合しているサービスであること、高い負荷でダウンしないということ、動的にリソースが変更出来るということ、そしてコストが削減されることです。

AWS Batchの魅力を詳しく知り、是非とも導入を検討してみて下さい。それではAWS Batchのメリットをひとつひとつ説明していきます。

AWSのサービス

1つ目のメリットとして挙げられるのは、AWSと統合していることです。

AWS Batchは、ネイティブにAWSのプラットフォームと統合しています。ですので、AWSのネットワーキングやスケーリング、そしてアクセス管理機能などの利用が出来ます。

これらのことから、Amazon DynamoDBやAmazon S3などといった AWS データストアのデータを取得し、そして書き込むというジョブを安全かつ簡単に行うことが可能です。

高負荷でダウンしない

2つ目のメリットは、高い負荷によってダウンすることが無いということです。

AWS Batchは、動的にリソースが変化しますので、負荷のかかりすぎによってシステムがダウンしてしまうということはありません。

オンプレミス環境の場合、負荷のかかりすぎによってハードがダウンするということがありましたが、AWS Batchにはそのような心配が無いです。

リソースの最適化

3つ目のメリットは、動的にリソースの変更が出来るということです。

オンプレミス環境のバッチ処理は、高い負荷に耐えられる設計で作られているのですが、大して負荷のかからないときにリソースを持て余してしまいます。

しかしAWS Batchを利用すれば、動的にリソースが変化するので、負荷のかからないときにはリソースが減り、高い負荷のときにはリソースが増えるということが出来ます。AWS Batchでは、常にリソースの最適化が行われているという訳です。

コストの削減

4つ目のメリットは、コストが削減されることです。

AWS Batchを使用することにより、バッチジョブを実行するのに必要な数に応じて、動的にコンピューティングリソースがスケーリングされます。容量の固定されているクラスターの制約は受けません。

さらにAWS Batchは、スポットインスタンスが利用されているため、バッチジョブの実行をするための費用がさらに削減されます。

AWS Batchの料金


AWS Batchの利用による追加料金はありません。つまりAWS Batchは無料で利用出来ます。

ただし、AWS Batchを利用する際に実行したAWSリソースの料金は払わなければならないので要注意です。

まとめ


この記事では、AWS Batchの概要、使用方法、メリット、料金などについて説明しました。

AWS Batchとは、バッチ処理を実行してくれるフルマネージド型のサービスです。動的にリソースが変更できるため、高い負荷でダウンしないなどといったさまざまなメリットがあります。

AWS Batchは無料にて利用を始められるサービスですので、まず実際に使ってみて理解を深めていくことをおすすめします。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】