AWS CodeDeploy で ELB のターゲットになっていない EC2 でも勝手に追加されてしまう

AWS CodeDeployを使っていて少しハマったのでメモとして残しておきます。

CodeDeployでデプロイする場合、どこのコードを使ってどんな方法でどこにデプロイするか色々なパターンがあります。

  • EC2 or オンプレ
  • GitHub or S3
  • インプレース or Blue/Green
  • Elastic Load Balancing タイプ or そのまま

このうち、ELBタイプは、デプロイの際にデプロイ対象のインスタンスをELBのターゲットから外した上でインストール等を行い完了したらターゲットへ戻すような方法です。
この方法によって、ユーザアクセスの瞬間にアプリケーションが壊れていたり不完全だったりといったことがなく、安全にデプロイできます。

さて、そのELBタイプのデプロイですが、デプロイグループの対象のインスタンスではあるけれど、ELBのターゲットにはなっていないインスタンスがあったときに、どうなるのか?ということがありました。
さすがに、ELBのターゲットに入っていなければ、インスタンスにとってトラフィックのブロックも何も無いわけで、デプロイの対象にならないか、もしくはただアプリケーションのインストールが行われて終わるかのどちらかかと考えていました。
そう思って実行したところ、ELBのターゲットに入っていないにも関わらず、普通にトラフィックのブロックが行われ、インストールが行われ、最後にはELBのターゲットに勝手に追加されてしまいました!
そういうものなのか微妙な感じもしますが、少しハマってしまいました。

これに関して特に記述は無いような docs.aws.amazon.com

とりあえずAuto Scaling使いますか...