コンニチハ、BFT名古屋支店のヤタテです!。
はじめに
AWS Batchの概要紹介の記事で、AWS Batchの概要を紹介しました。
本記事は【AWS】Batch-ジョブ実行手順_第1話の続きとなる、ジョブキューとジョブ定義などの構築手順を紹介します。
システム構成図
AWS Batchのシステム構成図イメージとなります。
サービス一覧
太文字がシステム構成図の赤枠と対応しており、今回の記事の対象となります。
- AWS Batch:本システムでのメインで、以下の4つのコンポーネントがある。
- コンピューティング環境
- ジョブキュー
- ジョブ定義
- ジョブ送信
- AWS ECS:Dockerコンテナを起動するサービス。
- AWS ECR:Dockerイメージを保存するレジストリ。
自作のDockerイメージをpushする。 - AWS S3:AWS ECRに登録したDockerイメージが保存される。
Bucketの作成などを行う必要はない。 - AWS EC2:AutoScallingによりインスタンスが立ち上がる。
- AWS RDS:データベース(今回はPostgreSQL)。
- AWS CloudWatch:ログの確認が可能。
- AWS IAM:ジョブの実行に当たって必要なポリシーを割り当てる。
前提条件
・使用するリージョンは、アジアパシフィック(東京)とする ・Dockerイメージが作成済みであること
ジョブキューの構築手順
では、ジョブキューを構築します。
1.AWS Batchコンソールを開く
2.ナビゲーションペインで、「ジョブキュー」→「作成」の順で選択する
3.ジョブキューの設定を設定する
パラメータ | 説明 |
---|---|
ジョブキュー名 | ジョブキューの一意の名前を指定する |
優先度 | ジョブキューの優先度を整数値で指定する 整数値が大きいほうが優先される |
状態 | 有効または無効を選択可能 有効にすることでジョブの送信を受け入れることができる |
4.タグを設定する
リソースに関連付けられたタグを設定可能です。
最大50個のタグを任意で追加してください。
5.接続されたコンピューティング環境を設定する
パラメータ | 説明 |
---|---|
コンピューティング環境を選択 | 作成したコンピューティング環境を選択可能 |
1つのジョブキューに対して、最大で3つのコンピューティング環境を選択できますが、異なるアーキテクチャ(EC2とFargate)を混在させることはできません。
6.「作成」を選択する
AWS ECRにコンテナイメージをアップロードする手順
ジョブ定義を構築する前に、処理を実行するコンテナをAWS ECRのリポジトリにアップロードします。
この手順については、【AWS】Lambda/Batchへのコンテナ利用 -03_Batch用コンテナ-をご参考ください。
ジョブ定義の構築手順
続いて、ジョブ定義を構築します。
1.AWS Batchコンソールを開く
2.ナビゲーションペインで、「ジョブ定義」→「作成」の順で選択する
3.ジョブ定義を設定する
以下のパラメータは、プラットフォームにEC2を選択した場合で、私が設定を変更したものを抜粋して記載します。
パラメータ | 説明 |
---|---|
名前 | ジョブ定義の一意の名前を指定する |
プラットフォーム | EC2またはFargateを選択可能 |
実行タイムアウト | ジョブ試行の実行を許可する最大秒数を指定する 最小は60秒 |
イメージ | ジョブで使用するDockerイメージを指定する AWS ECRリポジトリにアップロードしたDockerイメージのURIも指定可能 |
コマンド | コンテナに渡すコマンドを指定する コンテナにコマンドを渡す必要がない場合(Dockerイメージで既に指定しているときなど)は、空欄でよい |
vCPU | コンテナ用に予約するvCPU数を指定する |
メモリ | コンテナに渡すメモリのハード制限を指定する |
ジョブロール | コンテナにAWS APIを使用するための権限を付与するIAMロールを指定する AWS ECSのIAMロールを使用する |
実行ロール | AWS ECSコンテナにAWS APIコールを行う権限を付与するIAMロールを指定する AWS ECSのIAMロールを使用する |
※その他のパラメータや詳細については公式を確認してください。
※Fargateについてはこちらもご参考ください。
【AWS】Fargate・Lambda・Batchの使い分け
4.「作成」を選択する
まとめ
コンピューティング環境の構築に続き、ジョブキューとジョブ定義の手順を紹介しました。
次回は、ジョブの実行手順と結果確認手順を紹介します。