Jenkinsではノード追加のAPIがないためスレーブ用のEC2インスタンスをおこしても人手でノードを追加しなければならないです(なんか良いプラグインとか方法とかあるのかな?)
そこをなんとかしてAutoScalingさせてみました。
AWSの構成としては以下のようにしました。
ミソは10.0.200.0/28のサブネットにスレーブ用のEC2を立てるところで、これでスレーブ用のEC2は10.0.200.3~10.0.200.14※で立ち上がってきます。
※ 各サブネットの CIDR ブロック内にある IP アドレスのうち、最初の 4 個と最後の 1 個は両方とも AWS によって予約されています
そして、この10.0.200.3~10.0.200.14をあらかじめJenkinsのノードに追加しました。
これで立ち上がったEC2に応じてスレーブがオンラインになります。
スレーブを落としてみてEC2を立ち上げ直してみるとやや時間はかかるもののノードがオンラインになります。
以上のように無理やり感ありますが、JenkinsスレーブのAutoScaling適用をしてみました。
サブネットの範囲内でスケールアウトやスケールインもできるはず。