AWS Batch のジョブキューの使用状況とシェア別の使用状況がマネージメントコンソールと API で確認できるようになりました
はじめに
少し前の 2026 年 2 月、AWS Batch のジョブキュー利用率と、フェアシェアキューにおけるシェア別利用率を、マネジメントコンソールと API の両方で確認できるようになりました。FIFO キューでもキュー全体の利用率を取得できます。
CloudWatch Container Insights では CE やジョブ単位の CPU・メモリ消費量を取得できます。一方、フェアシェアキューにおけるシェア単位の vCPU 利用率を直接確認できる CloudWatch メトリクスはこれまで提供されていませんでした。シェア別の状況を見るには、list-jobs で個別ジョブを列挙し shareIdentifier ごとに集計する必要がありました。今回のアップデートで、これらの情報をキュースナップショットのレスポンスから直接取得できます。フェアシェアキューを運用しているなら、シェアごとのリソース消費量を AWS CLI から把握できます。
確認結果
今回のアップデートで追加・変更された点を整理します。新しい API の追加ではなく、既存 API のレスポンス拡張・新フィルタの追加、コンソールへのタブ追加です。
GetJobQueueSnapshotのレスポンスにqueueUtilizationフィールドが追加された- キュー全体の vCPU 消費量(
totalCapacityUsage)は FIFO キューとフェアシェアキューの両方で取得可能 - フェアシェアキューではシェアごとの内訳(
fairshareUtilization)も含まれる
- キュー全体の vCPU 消費量(
ListJobsAPI にSHARE_IDENTIFIERフィルタが追加され、シェア単位でジョブを絞り込めるようになったListServiceJobsAPI にも同等のSHARE_IDENTIFIERフィルタが追加された- マネジメントコンソールのジョブキュー詳細画面にアクティブシェアタブが追加された
- AWS Batch が提供されている全リージョンで追加料金なしで利用可能
追加された機能について
その前にシェアとは
「シェア」は、フェアシェアスケジューリングポリシーがジョブをグループ化する単位を指します。submit-job のときに --share-identifier <ID> を付けると、そのジョブが指定したシェアに属します必須ではありませんが、フェアシェアキューでは事実上必須です。
GetJobQueueSnapshot の結果に queueUtilization が増えた
GetJobQueueSnapshot は、ジョブキューの RUNNABLE ジョブの順序と、ディスパッチ済みジョブのキャパシティ消費量をポイントインタイムで返す既存 API です。今回のアップデートでレスポンスに queueUtilization フィールドが追加され、キュー全体とシェア別の消費量を 1 回の呼び出しで取得できるようになりました。
各フィールドの意味は次のとおりです。
| フィールド | 説明 |
|---|---|
totalCapacityUsage |
キュー全体の消費 vCPU 数(FIFO キュー・フェアシェアキューの両方で取得可能) |
fairshareUtilization.activeShareCount |
現在ジョブを実行中のシェア数(フェアシェアキューのみ) |
fairshareUtilization.topCapacityUtilization |
消費量上位のシェアと各 vCPU 消費量(最大 20 件、フェアシェアキューのみ) |
実際のレスポンス例は後述の「試してみた」セクションに載せています。
ListJobs の SHARE_IDENTIFIER フィルタが追加
ListJobs API に SHARE_IDENTIFIER フィルタが追加されました。フェアシェアキューで特定シェアのジョブだけを絞り込めます。
aws batch list-jobs \
--job-queue my-fairshare-queue \
--job-status RUNNING \
+ --filters name=SHARE_IDENTIFIER,values="hoge"
コンソールのアクティブシェアタブが追加
マネジメントコンソールのジョブキュー詳細画面にアクティブシェアタブが追加されました。フェアシェアキューを選択すると、シェアごとの vCPU 消費量をリストとチャートで確認できます。

試してみた
検証環境
フェアシェアスケジューリングポリシーを設定した 1 つのキューで確認しました。シェア分けとして 5 顧客に分けてかつ、優先度付けとして Premium と Standard の 2 種類の契約タイプを weightFactor で設定しています。
| 項目 | 値 |
|---|---|
| ジョブキュー | フェアシェアスケジューリングポリシー付き 1 キュー |
| コンピュート環境 | EC2 Spot、最大 vCPU=10、c6/c7/c8 の x86 ファミリー |
| 顧客(シェア) | 5 顧客(Premium A/B、Standard C/D/E) |
weightFactor |
Premium=0.25、Standard=1.0(2 タイプ) |
| ジョブ定義 | vCPU=1、実行時間 300 秒 |
ジョブのサブミットは、5 顧客 × 各 10 ジョブ(合計 50 ジョブ)を一括投入しました。
CLI で queueUtilization を取得する
get-job-queue-snapshot コマンドにキュー名を渡すだけです。
aws batch get-job-queue-snapshot \
--job-queue my-fairshare-queue
レスポンス取得時点では 5 顧客のうち 3 シェアがアクティブで、合計 11 vCPU を消費していました。queueUtilization の部分を抜粋します(frontOfQueue は省略)。
{
"queueUtilization": {
"totalCapacityUsage": [
{
"capacityUnit": "VCPU",
"quantity": 11.0
}
],
"fairshareUtilization": {
"activeShareCount": 3,
"topCapacityUtilization": [
{
"shareIdentifier": "premiumCustomerB",
"capacityUsage": [
{ "capacityUnit": "VCPU", "quantity": 4.0 }
]
},
{
"shareIdentifier": "standardCustomerE",
"capacityUsage": [
{ "capacityUnit": "VCPU", "quantity": 4.0 }
]
},
{
"shareIdentifier": "standardCustomerC",
"capacityUsage": [
{ "capacityUnit": "VCPU", "quantity": 3.0 }
]
}
]
},
"lastUpdatedAt": 1778293898936
}
}
最大 vCPU が 10 の環境で 11 vCPU と表示されているのは、Spot インスタンスの補充タイミングで一時的に超過したためです。topCapacityUtilization には消費量上位 20 件のシェアが含まれます。
CLI で特定シェアのジョブを絞り込む
premiumCustomerA シェアのジョブを確認した例です。
aws batch list-jobs \
--job-queue my-fairshare-queue \
--job-status RUNNING \
--filters name=SHARE_IDENTIFIER,values="premiumCustomerA"
premiumCustomerA の RUNNING ジョブが 4 件返ってきました。jobSummaryList の先頭 1 件を抜粋します(残り 3 件は省略)。
{
"jobSummaryList": [
{
"jobId": "7694d1e9-e815-4b81-8b34-e6c53a893378",
"jobName": "premiumCustomerA-job-05",
"shareIdentifier": "premiumCustomerA",
"status": "RUNNING",
"capacityUsage": [
{ "capacityUnit": "VCPU", "quantity": 1.0 }
],
"createdAt": 1778292827537,
"startedAt": 1778293563239
},
...
]
}
ジョブごとに capacityUsage も返ってくるので、シェア内のどのジョブが何 vCPU 消費しているかも把握できます。
コンソールで Active shares タブを確認する
マネジメントコンソールでフェアシェアキューを選択し、Active shares タブを開きます。リストビューではシェアごとの消費 vCPU が一覧できます。

チャートビューに切り替えると、時系列での推移を視覚的に把握できます。

使いどころ
フェアシェアキューを運用する上でよくある課題が、どのシェアがどれくらいのリソースを占有しているかをその場ですぐに把握できないことです。今回のアップデートで get-job-queue-snapshot を定期実行すればシェアごとの vCPU 消費量を時系列で追えます。
具体的には次の 3 場面で役立ちます。
weightFactor の調整判断
topCapacityUtilization を見て、特定シェアが常に上位を占めている場合、そのシェアの weightFactor が大きすぎないか確認する材料になります。
ボトルネックの特定
activeShareCount が想定より少ない場合は、シェアにジョブが投入されていないか、キューの最大 vCPU 上限に達している可能性があります。SHARE_IDENTIFIER フィルタで各シェアのジョブ数を確認することで、どこが詰まっているか絞り込めます。
CloudWatch カスタムメトリクスへ
get-job-queue-snapshot を Lambda などで定期実行し、totalCapacityUsage やシェア別の値を CloudWatch カスタムメトリクスとして送れます。アラーム設定や長期傾向の分析に活用できます。設定が手間ですけど。
まとめ
AWS Batch のジョブキュー全体およびフェアシェアキューのシェア別キャパシティ消費量を、API とコンソールの両方から確認できるようになりました。
変更点は次のとおりです。
GetJobQueueSnapshotのレスポンスにqueueUtilization(fairshareUtilizationを含む)が追加ListJobs/ListServiceJobsにSHARE_IDENTIFIERフィルタが追加- コンソールにアクティブシェアタブが追加
- AWS Batch が提供されている全リージョンで追加料金なしで利用可能
新しい API の習得は不要で、既存の get-job-queue-snapshot コマンドを実行するだけでシェアの消費状況を取得できます。フェアシェアキューを運用している場合はぜひ試してみてください。
おわりに
次のアップデートで CloudWatch のメトリクスとして標準提供してもらえると助かるのでお気持ちだけ表明させていただいて筆おきます。








