NLB経由でSSH接続を行う

Y
2023-09-25
2023-09-25

NLBを利用したSSH接続を行う必要がありましたので、備忘録として残そうと思います。
以前はNLBにセキュリティグループをアタッチできなかったのですが、
2023年8月にアップデートがあり、セキュリティグループをアタッチできるようになっています。

Network Load Balancer でセキュリティグループのサポートを開始

また今回の前提としてプライベートサブネットの作成やEC2インスタンスの作成は割愛します。

手順

1.  「VPC」から「NAT ゲートウェイ」を選択し、「NATゲートウェイを作成」をクリックします。

nlb-1

2. 各項目を入力します。nlb-2
NAT ゲートウェイの設定: example-natgw
サブネット: example-public-subnet-a
接続タイプ: パブリック(デフォルト)
ElasticIP割り当てをクリックしIPを割り当て。

3. 「VPC」から「ルートテーブル」をクリックします。対象プライベートサブネットにチェックを入れます。
nlb-3

4. 対象プライベートサブネットのルートをタブ選択し「ルートの編集」をクリックします。
nlb-45. 「ルートを追加」をクリックし送信先を「0.0.0.0/0」ターゲットを先ほど作成したNATゲートウェイを選択し、変更を保存します。
nlb-5ルートを編集: 0.0.0.0/0
ターゲット: nat-079e9ededc60966e3


6. 「EC2」からロードバランシングの「ターゲットグループ」を選択し、「ターゲットグループの作成」をクリックします。
nlb-6

7. 各項目を記載します。
nlb-7
ターゲットタイプ: インスタンス
ターゲットグループ名: example-tg
プロトコル: TCP
ポート: 22
VPC: example-vpc
ヘルスチェック: TCP

8. ターゲットの登録を行う必要がありますので、プライベートサブネットに作成している対象インスタンスにチェックを入れ、「保留中として以下を含める」を選択し、「ターゲットグループの作成」を行います。
nlb-8

9. 「EC2」からロードバランシングの「ロードバランサー」を選択、「ロードバランサーの作成」をクリックします。
nlb-9

10. 「Network Load Balancer」の「作成」をクリックし、各項目を記載し完了です。
nlb-10ロードバランサー名: example-nlb
スキーム: インターネット向け
IP アドレスタイプ: IPv4
ネットワークマッピング: example-vpc
マッピング: ap-northeast-1a   ← パブリックAZを選択
サブネット: example-public-subnet-a
IPv4 アドレス: AWSによって割り当て済み
セキュリティグループ: example-nlb-sec-g(22ポートへの接続許可)
プロトコル: TCP
ポート: 22
デフォルトアクション: example-tg

11. NLBに付与されているDNS名にSSH接続できれば完了です。

nlb-11

終わりに

いかがでしたでしょうか。
NLBを利用してSSH接続を行うことはあまりないかもしれませんが、
必要に応じて、上記の設定で対応するのも手段の一つかもしれません。