AWS プログラミング

NLBのターゲットグループを外部向けALBのプライベートIPに設定する

外部向け(インターネット向け)に作成したALBには、

ネットワークインターフェースによって内部的にプライベートIPアドレスが割り振られます。

 

今回はNLBのターゲットグループに、外部向けALBのプライベートIPを指定する方法をTerraformでまとめます。

用途としては、1つの外部向けALBに対してインターネットからとVPC内部からの両方の通信を実現したかったためです。

 

ALB作成

まずはインターネット向けALBを作成します。

ここのターゲットグループやセキュリティグループ、パスパターン等は任意のものに変更ください。

 

alb.tf

 

ポイントとしては、セキュリティグループを本ALB専用のものとして作成することです。

 

理由は、後ほどこのALBに付与されたネットワークインターフェースがどれか判別するために、

セキュリティグループのIDを使用するからです。

 

NLB作成

次に、今回のメインであるNLBを作成します。

ここでは内部向けの通信を可能にするために作成を行うので、NLB自体も内部向けとして作成します。

 

nlb.tf

 

ネットワークインターフェースをDataSourceで取得してNLBのターゲットグループに指定します。

 

地味なポイントとして、

ターゲットグループのリソース(aws_lb_target_group)はデフォルトでは、ターゲットのタイプをインスタンスとして設定されています。

 

今回はネットワークインターフェースのIPアドレスを指定したいので、

 

target_type = "ip"

 

としています。これを入れないとエラーになります。

 

また、filterで使用している「data.aws_caller_identity.self.account_id」は自身のAWSアカウントIDです。

account.tf

 

以上で完了です。

必要に応じてインスタンスの指定やセキュリティグループの指定を環境に合わせれば動くと思います。

 

Terraformを学びたい方へ

Terraformをきちんと学びたい方はUdemyのLearn DevOps: Infrastructure Automation With Terraform がとてもおすすめです。コスパ最高です。

よければ参考にしてみてください。

 

 

 

-AWS, プログラミング
-, , ,

© 2020 クラインの備忘壺