ALBの影に隠れて今一つ目立たないNLBですが、触る機会があり、引っかかったところと対応方法を共有します
インスタンスタイプに制限がある
ターゲットグループにお目当てとなるEC2がどうしても出てきませんでした
VPC、subnet、SGは問題ありません
よくよくマニュアルを読めば、
インスタンス ID がC1、CC1、CC2、CG1、CG2、CR1、G1、G2、HI1、HS1、M1、M2、M3、および T1 のインスタンス ID でインスタンスを登録することはできません。IP アドレスで、これらの種類のインスタンスを登録することができます。
対象のEC2のインスタンスタイプはm3系
お客さまに説明し、価格もスループットも向上するということでインスタンスタイプの変更を了承頂きました
インスタンスタイプとEBSの最適化での問題
NLBとは直接関係ありませんが、もう1点
今回の対象システム、アクセス数の少ない夜間はt2系に下げる運用をしています
夜間になり、t2系に変更して起動しようとしたらエラーで起動できず
m4系に変更したことで、EBSの最適化が自動的に適用されるものの、t2系だとEBSを最適化されていると起動できないというトラップが!
APIを調べたところ、インスタンスタイプ変更時のAPIパラメータに
EbsOptimized={
'Value': True|False
},
http://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.Instance.modify_attribute
というのを発見、こいつをFalseにして起動しようとしたところ、そのパラメータの組み合わせは同時にセットできませんのメッセージが
同時にセットするのがダメなら別々なら大丈夫???
instance.modify_attribute(InstanceType={'Value': instance_type})
if instance_type in NOT_EBS_OPTIMIZE_TYPE:
instance.modify_attribute(EbsOptimized={'Value': False})
これで事なきを得ました
結構特殊な運用をされているので、同じような問題に引っかかる方は少ないと思いますが、何かの参考になりましたら