はじめに
オンプレミス環境で普及しているHULFTですが、近年はAWS上でもかなり利用されるようになってきました。その結果、企業内、企業間を問わず異なるVPC間でHULFT通信をしたいというニーズも増えてきました。そこで今回の題材であるPrivateLinkでHULFT接続が課題になります。結論をいうと、PrivateLink経由で問題なくHULFTはつながります。本記事では、一般的なPrivateLinkの設定ポイントやHULFTをつなぐ上での注意点などをまとめてみました。
PrivateLinkの設定手順
PrivateLinkの仕組みはここでは割愛しますが、設定手順は少し煩雑です。
①Endpoint Serviceを作成し、
②(対向の)EndPointを作成して、
③EndPoint Serviceから接続を承諾する。
という流れなのですが、①を作成する際にNLBを先に作らなければなりません。
ですから、作成の流れを細かくすると
①-1 (NLBの)ターゲットグループを作成
①ー2 NLBにリスナーを追加
①ー3 EndPoint Serviceを作成
②(対向の)EndPointを作成
③EndPoint Serviceから接続を承諾する。
といった感じになります。
では、以下にPrivateLink作成の流れに沿って設定のポイントを挙げていきます。
Endpoint Serviceの作成
エンドポイントサービスの設定画面から「新しいロードバランサ―を作成」ボタンがあるので押下します。

NLBの作成
「ロードバランサ―の作成」ボタンを押下するとロードバランサ―タイプの選択画面が出てきます。NLB(Network Load Balancer)を選択します。

スキームは「内部」を選択します。

集信側HULFTのEC2が含まれるVPCを選択します。

ターゲットグループの作成
NLB作成画面から「ターゲットグループを作成」を押下します。

ターゲットの種類は「インスタンス」を選択します。

ポートは30000(HULFTの集信ポート)を入力します。

集信側HULFTのEC2が含まれるVPCを選択します。

ヘルスチェックプロトコルはTCPを選択します。

以上の設定でターゲットグループを作成します。
NLBの作成(つづき)
ポート番号は30000(ここではHULFT集信ポートと同じ番号を選んでおきますが任意でOK)を入力します。また、リスナーに紐づくターゲットグループ(先ほど作成したもの)を選択します。

リスナーの追加
NLBにリスナーを追加します。

ここでは、ポート番号を31000(HULFTの要求受付ポート)を追加します。合わせて要求受付ポート向けターゲットグループも作成します。
最終的に下図のように2つのリスナーが作成されるイメージです。

Endpoint Serviceの作成(つづき)
上の手順でNLBを作成したら、エンドポイントサービスの設定を続けます。使用可能なロードバランサーに作成したNLBが一覧表示されるのでレ(チェック)をいれます。

エンドポイントの「承諾が必要」にレ(チェック)が入っていることを確認します。

以上の設定でエンドポイントサービスを作成します。
Endpointの作成
EndPointの作成
タイプは「NLBとGWLBを使用するエンドポイントサービス」を選択する。

エンドポイントサービス画面からエンドポイントサービス名をコピーして、

エンドポイント設定画面のサービス名に貼り付けて「サービスの検証」を押下する。(「サービス名が検証されました。」と表示されたらOK)

HULFT配信側のEC2が含まれるVPCを選択する。

以上の設定でエンドポイントを作成する。
EndPoint Serviceから承諾
エンドポイントを選択して、アクション-> エンドポイント接続リクエストの承諾 を実施します。

以上でPrivateLinkの設定は終わりです。
セキュリティグループの設定
PrivateLinkを作る場合3つのセキュリティグループを設定する必要があります。
①エンドポイント
②NLB
③集信側EC2
これらのセキュリティグループに集信ポート(30000)と要求受付ポート(31000)を許可するように設定が必要になります。

EndPointのDNS名のIPを別ホスト名に紐づける
HULFTのホスト名はHULFT-HUBを運用することを勘案すると44バイト以下である必要があります。このとき問題になるのが、配信側EC2から見た集信側EC2のホスト名がエンドポイントのDNS名(通常45バイト以上)になることです。そこで、エンドポイントのDNS名のIPアドレスをHOSTSファイルで別ホスト名に紐づけます。(DNSで解決してもOKです。)
まず、エンドポイントのDNS名を確認します。

次に、配信側EC2からnslookupでこのDNS名のIPアドレスを確認します。

最後に、HOSTSファイルにこのIPアドレスと短い別ホスト名を紐づけます。

ホスト名を決めるときの注意点ですが、必ず以下3つのホスト名を一致させてください。
・詳細ホスト情報のホスト名
・HOSTSファイルに登録したホスト名(DNS名)
・対向先HULFTの自ホスト名
さいごに
PrivateLinkでHULFTをつなぐ手順を記載しましたがいかがでしたか?PrivateLinkの設定手順自体はHULFT特有なものはありませんでしたが、HULFTで疎通試験をするとよく失敗するポイントが2つあります。1つはセキュリティグループの設定で、3つあるセキュリティグループのどれかを設定ミスしていることが多いです。もう一つがホスト名で、HULFTが対向先ホスト名を認識できずに接続エラーになる点です。
このあたりの落とし穴にひっかからないように注意してくください。