HULFT Squareと外部通信する仕組みについて、AWS PrivateLinkなど含めて整理してみた

## はじめに
こんにちは、すぎもんです:grinning:

今回は、HULFT Squareのファイル転送サービス（Transferサービス）を使うために、
HULFT Squareが外部の環境と通信する仕組みを整理してみました。

細かい部分でどのように設定するのか、も気になるところですが、まずは本記事で環境構成であったり、設定を進める上での整理ポイントなどを確認してみてください。

## HULFT Squareとは？
HULFT Squareとは、データを「安全・安心・柔軟に」連携するプラットフォームサービス、いわゆるiPaaSです。「ファイル転送のHULFT」×「データ連携のDataSpider」×「フルマネージドサービス」。これらの側面から、オンプレやクラウドなど分散されたデータを一元化し、データ活用することを可能とするサービスです。

## 記事構成
今回の記事構成は、<strong>HULFT Squareで集配信してみた全４回シリーズ</strong>　になります。
環境構成をまず①②で理解して、③④と進んで読んでいただくのがおすすめです。
　★本記事★　①[HULFT Squareと外部通信する仕組みについて、AWS PrivateLinkなど含めて整理してみた](https://qiita.com/sugimon/items/75263b34a8fa5943fd21#hulft-square%E3%81%A8%E3%81%AF)
　　　　　　　②[HULFT Squareでのファイル集配信におけるAWS環境構築をしてみた](https://qiita.com/sugimon/items/6854f135b241f491c68b)
　　　　　　　③[HULFT Square配信　⇔　HULFT集信（EC2上）やってみた](https://qiita.com/sugimon/items/5fcb8db4bb8742c3278b)
　　　　　　　④[HULFT Square集信　⇔　HULFT配信（EC2上）やってみた](https://qiita.com/sugimon/items/7038422f2bc17d740abb)

## HULFT Squareと外部通信する仕組み

HULFT Squareは、AWS VPC上にあるサービスです。
HULFT SquareとHULFT Square外（お客様環境等と）のプライベートな接続には、
<strong>AWS PrivateLink</strong>を利用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/db420f04-0313-3ef4-ae64-a8ac7f51beca.png)
<strong>◆AWS PrivateLinkとは◆</strong>
インターネットを経由せず、VPCやサービス間のやりとりをAmazonネットーワーク内で完結させる仕組みのこと。利用するには、どのエンドポイントサービスに紐づけるかを指定する<strong>VPCエンドポイント</strong>と、接続したいサービスの指定元となる<strong>VPCエンドポイントサービス</strong>の作成が必要です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/294c7760-62cb-a3ef-ac7e-7447982890c1.png)

:::note info
HULFT Squareとの通信では、配信側環境ではエンドポイントの作成、
集信側環境ではエンドポイントサービスの作成が、必要です。
:::

## HULFT Squareからファイル配信する仕組み
前項で、HULFT Squareとの通信にはAWS PrivateLinkが利用され、エンドポイント等の作成が必要なことがわかりました。では、HULFT Squareからのファイル配信の場合、どのような設定が必要なのでしょう。整理してみます。

HULFT Squareが配信側となるので、AWS PrivateLinkでプライベートな通信を実現するため、HULFT Square環境では、「エンドポイントの作成」が必要となり、
お客様VPC環境では、「エンドポイントサービスの作成」が必要となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/35e60a8e-aa26-6c17-22b7-3c410b272c52.png)

<strong>◆エンドポイントとは◆</strong>
エンドポイントにも種類がありますが、HULFT Squareの通信では、インターネットゲートウェイを介さずに、AWSネットワークのみのプライベートな通信を実現するために、インターフェイスエンドポイントを利用します。インターフェイス先となる<strong>VPCエンドポイントサービス</strong>を指定してPrivateLinkを作ります。

<strong>◆エンドポイントサービスとは◆</strong>
AWS PrivateLinkを使って、別VPCとAWSサービスのプライベートな接続を可能にするために必要なサービスです。<strong>NLB（ネットワークロードバランサー）</strong>等のロードバランサーと<strong>ターゲットグループ</strong>の設定によって、接続先サービス（(例)下図のA～Dなど）を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/12116dda-b9f1-602e-3589-2b00fe28e6b7.png)
<strong>◆ロードバランサー（AWS上では、ELBという）とは◆</strong>
いわゆる、負荷分散のためのサービスです。外部からの通信リクエストを受け取り、複数の宛先に分散します。AWSが用意するELBには、いくつかありますが、HULFT Squareでは、TCPプロトコルを使い、IPを固定できる、<strong>NLB（ネットワークロードバランサー）</strong>を使用します。

<strong>◆NLB（ネットワークロードバランサー）とは◆</strong>
VPC内に配置され、単一の通信先として、受信したトラフィックをEC2インスタンスなどの指定したターゲットに分散させます。指定したポートとプロトコルで接続リクエストをチェックし、指定した<strong>ターゲットグループ</strong>に転送させます。

<strong>◆ターゲットグループとは◆</strong>
上述したNLBで指定する、接続リクエストの<strong>"転送先"</strong>です。
「インスタンス」か、「IPアドレス」か、を転送先として指定できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/9124fc4c-c2b2-6ac0-8147-fac9f3588788.png)
このように、HULFT Squareからファイル配信するときにAWS PrivateLinkを使うためには、
「エンドポイントサービス」に関連したいくつかの設定も必要なことがわかりました。

:::note info
<strong>HULFT Square配信で、AWS PrivateLinkを利用するために</strong>
お客様環境VPC側で、エンドポイントサービス、NLB、ターゲットグループの作成が必要です。
:::

また、HULFT Squareからファイル配信をするためには、HULFT Square側の各種設定と、転送先となるHULFT側の各種設定値の相関関係を整理する必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/7373a047-786c-4174-c212-1dea557f2350.png)
部分的なポイントのみになりますが、
上図の通り、ファイルIDとホスト名の一致などに気を付ける必要があります。

:::note info
<strong>HULFT Squareの配信サービスを利用するために</strong>
①値が一致していることを確認しましょう。
　　　・HULFT Square側の配信管理情報のファイルID
　　　・集信側HULFTの集信管理情報のファイルID
②値が一致していることを確認しましょう。
　　　・HULFT Square側のTransferサービスのホスト名
　　　・集信側HULFTの詳細ホスト名を指定
③作成時に接続認証できるよう、関連付けをしましょう。
　　　・HULFT Square側のエンドポイント　
　　　・お客様環境VPCエンドポイントサービス
:::

HULFT Squareからのファイル配信における設定では、2つの観点で、
設定値の相関関係に注意してみてください。

:::note warn
<strong>HULFT Squareからファイル配信するためのポイント★</strong>
　①お客様環境VPC側で、AWS PrivateLinkを利用するために必要な設定
　②HULFT Square側で、配信サービスを利用するために必要な設定
:::


## HULFT Squareがファイル集信する仕組み
HULFT Squareからファイル配信する仕組みについては、理解できました。
では、HULFT Squareでのファイル集信ではどうなるか、仕組みについて整理してみます。

ファイル配信と同様に、ファイル集信でも、AWS PrivateLinkを利用します。

HULFT Square集信では、通信の方向が当然変わりますので、
HULFT Square環境では、「エンドポイントサービスの作成」が必要となり、
お客様VPC環境では、「エンドポイントの作成」が必要となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/e0bd894b-1ee8-3c7f-dbb6-665324a1f35e.png)
ポイントは変わりません。AWS PrivateLinkに必要な設定と、HULFT Square集信で必要な設定を分けて整理することが大切です。

:::note warn
<strong>HULFT Squareからファイル集信するためのポイント★</strong>
　①お客様環境VPC側で、AWS PrivateLinkを利用するために必要な設定
　②HULFT Square側で、集信サービスを利用するためにに必要な設定
:::

AWS PrivateLinkにて、HULFT Squareと外部通信するために必要な設定を整理します。
配信と同様に、集信の場合は、AWS PrivateLinkを利用するために、お客様VPC環境でのVPCエンドポイントの作成が必要です。

:::note alert
<strong>HULFT Squareのファイル集信で、AWS PrivateLinkを利用するために</strong>
転送元となるHULFTの詳細ホスト情報は、HULFT Squareを指定するのではなく、
自VPC内に作成したエンドポイントを指定します。（下図をご参照）
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/75d91f25-22a4-3408-cada-91d15577e427.png)
また、HULFT Squareでファイル集信するために必要な、HULFT Square側の各種設定と、転送元となるHULFT側の各種設定値の相関関係を整理します。

:::note info
<strong>HULFT Squareの集信サービスを利用するために</strong>
①値が一致していることを確認しましょう。
　　　・HULFT Square側の詳細ホスト情報のホスト名
　　　・配信側HULFTの自ホスト名
②値が一致していることを確認しましょう。
　　　・HULFT Square側の集信管理情報のファイルID
　　　・配信側HULFTの配信管理情報のファイルID
③転送先の詳細ホスト情報は、自VPC内のエンドポイントを指定しましょう。
　　　・配信側HULFTの詳細ホスト情報 ⇒ 配信側環境のVPCエンドポイント
④作成時に接続認証できるよう、関連付けをしましょう。
　　　・HULFT Square側のエンドポイントサービス
　　　・お客様環境VPCエンドポイント
:::

④について補足しておきます。
HULFT Squareでは、ファイル転送サービスをTransferサービスといいます。
集信用（インバウンド）のTransferサービスを作成すると、<strong>エンドポイントサービス名</strong>が自動表示されますので、その値を、お客様環境のエンドポイント作成時に設定して、認証し、関連付けるようにしてください。

## 最後に

HULFT Squareのファイル転送サービス（Transfer）を使うために、HULFT Squareが外部通信する仕組みを整理してみました。

今回は、仕組みや各設定値の相関関係の説明のみでしたので、細かい部分での設定値については書いていません。実際にどのようにどの値を設定するのか、を気になった方、実際にやってみようと思った方は、[HULFT Squareでのファイル集配信におけるAWS環境構築をしてみた](https://qiita.com/sugimon/items/6854f135b241f491c68b)の記事に読み進んでみてください。是非、一緒にやってみましょう。

本記事では、まずHULFT Squareと外部通信するための環境構成であったり、ポイントをご理解いただければと思います。

今回の記事構成は、HULFT Squareで集配信してみた全４回シリーズになります。
環境構成をまず①②で理解して、③④と進んで読んでいただくのがおすすめです。
　★本記事★　①[HULFT Squareと外部通信する仕組みについて、AWS PrivateLinkなど含めて整理してみた]()
　　　　　　　②[HULFT Squareでのファイル集配信におけるAWS環境構築をしてみた]()
　　　　　　　③[HULFT Square配信　⇔　HULFT集信（EC2上）やってみた](https://qiita.com/sugimon/items/5fcb8db4bb8742c3278b)
　　　　　　　④[HULFT Square集信　⇔　HULFT配信（EC2上）やってみた](https://qiita.com/sugimon/items/7038422f2bc17d740abb)

最後までお読みいただき、ありがとうございました。
それでは、また！