[Jenkins] Amazon EC2 Plugin でスレーブがうまく動作しないときに確認すること

Amazon EC2 Plugin を利用して分散ビルド的なことをしたかった際にいくつかつまづいたのでメモ。プラグインそのものが原因であることはそんなになかったかも。

ラベルをまたいで同じ “AMI ID” を設定していないか

“Jenkins > configuration” 内 “Cloud > Amazon EC2 > AMIs > Labels” にてラベルを設定し、特定のジョブを実行するインスタンスを制限する、ということができる大変便利な機能がある。

しかし “Instance Cap” と “ラベルをまたいで同じ AMI ID を設定” の条件を満たしている場合に、起動数のカウントがラベルをまたいで合算されてしまい “Instance Cap” にひっかかり、期待よりも少ない数のインスタンスしか起動しない、という挙動にぶつかってしまった。

さしあたって AMI をコピーし、別の AMI ID を発行して難をのがれたがしばらく原因がわからず時間を浪費した。

issue としてリストされているようなので、いずれ解決されることに期待。

スレーブのローカルストレージの空きは十分か

“Jenkins > nodes” から設定できるように、ローカルストレージの空きが閾値以下になると該当するノードでのタスク実行を行わなくする機能がある。

Amazon EC2 Plugin ではいちど起動した EC2 インスタンスを再利用するため、タスク実行の際に発生したデータをストレージに貯めてしまい、この閾値にひっかかることがあった。

EC2 インスタンスの起動数上限に逹していないか

Amazon EC2 サービスの制限 にあるとおり、起動できる EC2 インスタンスの数にはリージョンごとに制限がある。 必要であれば制限緩和のリクエストを投げることができるので対応すること。