netaddr という gem がありまして、色々便利なのですが AWSer 的にも便利です。
使い方も超簡単なのでワンライナーで紹介。
統合
なんといっても Security Group 1つあたりのルール個数制限(最大50)のやりくりで苦労してる人に朗報です。 /32
が /31
, /30
になるだけでだいぶ減らせるはず。
ruby -r netaddr -e 'puts NetAddr.merge(%w(192.168.0.1/32 192.168.0.2/32 192.168.0.3/32 192.168.0.4/32 192.168.0.5/32 192.168.0.6/32 192.168.0.7/32 192.168.0.8/32 192.168.0.9/32))'
192.168.0.1/32
192.168.0.2/31
192.168.0.4/30
192.168.0.8/31
# 9つのレンジが4つまで統合された
分割
/8
, /16
, /24
, /32
にしか対応していない AWS WAF の IP での制限 を使うときに /27
くらいのレンジを /32
にバラすのに便利でしょう。
ruby -r netaddr -e 'puts NetAddr::CIDR.create("192.168.0.0/29").enumerate'
192.168.0.0
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5
192.168.0.6
192.168.0.7