# VPCピアリング接続

::: tip 注意
この機能はEMQX Dedicatedエディションでのみ利用可能です。
:::

VPCピアリング接続は、2つのVPC間のネットワーク接続です。この接続を通じて、異なるVPC内のインスタンス同士があたかも同じネットワーク内にあるかのように通信できます。

## 注意事項

1. EMQXプラットフォームは**同一リージョン内**でのピアリング接続作成のみをサポートしています。
2. EMQXプラットフォームはCIDR範囲10.11.1.0/24～10.64.255.0/24を受け付けません。
3. ピアリング接続はリソースに紐づくため、リソース作成前にピアリング接続を作成してください。

## AWSクラウド VPCピアリング接続

<LazyIframeVideo vendor="youtube" src="https://www.youtube.com/embed/ajnLBS3LLKY/?autoplay=1&null" />

### ピアリング接続の作成

1. [EMQXプラットフォームコンソール](<https://cloud-intl.emqx.com/console>)にログインし、デプロイメントに入ります。

2. 左メニューの**ネットワーク管理**をクリックし、**VPCピアリング接続**エリアで**+ VPCピアリング接続**ボタンをクリックします。

3. ポップアップダイアログに以下の情報が表示されるので、今後のために控え、ダイアログは開いたままにしてください。

   - **デプロイメントのリージョン**
   - **デプロイメントのVPC ID**
   - **デプロイメントのCIDR**
   - **EMQXプラットフォームのアカウントID**

   ![create-vpc1](./_assets/aws_vpc_peering.png)

4. Amazon Web Servicesコンソールにログインし、前ステップで控えた「デプロイメントのリージョン」に切り替えます。

5. **Networking & Content Delivery** -> **VPC** -> **Peering Connection**に移動し、**Create Peering Connection**ボタンをクリックします。

   * **Account**は`Another account`を選択します。
   * **Account ID**に前で控えた`EMQXプラットフォームのアカウントID`を入力します。
   * **Region**は`This region(us-east-1)`を選択します。
   * **VPC (Accepter)**に前で控えた`デプロイメントのVPC ID`を入力します。

   ![aws-vpc-request](./_assets/aws-vpc-request.png)

   設定が完了したら、**Create Peering Connection**をクリックします。

6. 作成後、VPCピアリングのエントリが一覧に表示されます。ページ下部の**Requester VPC owner**、**Requester VPC ID**、および**VPC Peering Connection**の情報を控えてください。

   ![aws-vpc1](./_assets/aws-vpc1.png)

7. [EMQXプラットフォームコンソール](<https://cloud-intl.emqx.com/console>)に戻り、AWSコンソールで控えた情報を使ってVPCピアリング接続の残りの設定を完了し、**Confirm**ボタンをクリックします。

   * **Peering ID**：AWSコンソールの**VPC Peering Connection**の情報を入力します。
   * **VPC ID**：AWSコンソールの**Requester VPC ID**の情報を入力します。

   ![create-vpc2](./_assets/aws_vpc_peering_info.png)

8. Amazon Web Servicesコンソールに戻り、`Networking & Content Delivery` -> `VPC` -> `Route Tables`に移動し、ステップ1で控えた`デプロイメントのCIDR`を該当VPCのルートテーブルに追加します。

   ![route-tables](./_assets/route-tables.png)

9. `Networking & Content Delivery` -> `VPC` -> `Security Groups`に移動し、該当VPCに紐づくセキュリティグループのインバウンドルールを編集してルールを追加します。

   ![security-groups](./_assets/security-groups.png)

### ピアリング接続の削除

ピアリング接続を削除するには、ピアリング接続のステータスが`running`であることを確認してください。

::: tip

ピアリング接続を削除する前に、デプロイメントに関連リソースが存在しないことを必ず確認してください。そうでない場合、予期せぬリスクが発生する可能性があります。

:::

1. デプロイメントのネットワーク管理ページのVPCピアリング接続エリアに移動します。

   ![vpc-list](./_assets/aws_vpc_peeing_status.png)

2. ピアリング接続の**操作**列にある「削除」アイコンをクリックします。

   ![vpc-delete](./_assets/aws_vpc_peering_delete.png)

## Azure VPCピアリング接続

### ステップ1

1. [EMQXプラットフォームコンソール](<https://cloud-intl.emqx.com/console>)にログインし、デプロイメントに入ります。
2. 左メニューの**ネットワーク管理**をクリックし、**VPCピアリング接続**エリアで**+ VPCピアリング接続**ボタンをクリックします。
3. ポップアップウィンドウが表示され、**Subscription ID**、**Tenant ID**、**Resource Group Name**、および**VNet Name**の入力を求められます。

### ステップ2

Microsoft Azureのワークスペースで**Virtual Networks**セクションに移動し、ピアリング接続を構築するネットワークを探します。EMQXプラットフォームコンソールのポップアップウィンドウに**Subscription ID**、**Resource Group Name**、**VNet Name**をコピー＆ペーストします。

### ステップ3

Microsoft Azureのワークスペースで**Azure Active Directory**セクションに移動し、**Tenant ID**をEMQXプラットフォームコンソールのポップアップウィンドウにコピー＆ペーストします。

### ステップ4

必要な情報をすべて入力した後、

1. **Next**ボタンをクリックします。
2. ページに表示されるガイドラインに従ってVNetを設定します。
3. すべての手順を完了したら、**Validated**ボタンをクリックして接続設定を検証し、続けて**Initiate Peering**をクリックします。

### ステップ5

すべての情報が正しい場合、数分後にVPCピアリング接続のステータスが「running」に変わり、AzureサービスとのVPCピアリング接続が正常に作成されます。

## GCP VPCピアリング接続

### ピアリング接続の作成

1. [EMQXプラットフォームコンソール](<https://cloud-intl.emqx.com/console>)にログインし、デプロイメントに入ります。

2. 左メニューの**ネットワーク管理**をクリックし、**VPCピアリング接続**エリアで**+ VPCピアリング接続**ボタンをクリックします。

3. ポップアップダイアログに以下の情報を入力します。

    * **Project ID**：ピアリングするGCPのプロジェクトID
    * **VPC Network Name**：ピアリングするGCPのVPCネットワーク名

   また、以下の情報を今後のために控えます。

    * **デプロイメントのVPCネットワーク名**
    * **デプロイメントのCIDR**
    * **EMQXプラットフォームのProject ID**

   ![gcp_create_peering](./_assets/gcp_vpc_peering.png)

4. GCPコンソールにログインし、ピアリング接続を作成します。

    1. Google Cloud Consoleで**VPC network peering**をクリックします。
    2. **CREATE PEERING CONNECTION**をクリックし、**Continue**をクリックします。
    3. **Name**にピアリング接続の名前を入力します。
    4. **Your VPC Network**にGCPのVPCネットワーク名を入力します。
    5. **Peered VPC network**で**In another project**を選択します。
    6. **Project ID**にEMQXプラットフォームのProject IDを入力します。これはEMQXプラットフォームのVPCピアリング画面で確認できます。
    7. **VPC network name**にEMQXプラットフォームのVPCネットワーク名を入力します。
    8. **CREATE**をクリックします。

   ![gcp_peering](./_assets/gcp_peering.png)

5. ピアリング接続のステータスが**Active**になれば成功です。

   ![gcp_console_peering](./_assets/gcp_console_peering.png)

   また、EMQXプラットフォームのVPCピアリングのステータスが**running**になります。

   ![gcp_peering_result](./_assets/gcp_vpc_peering_status.png)

6. EMQXプラットフォームのデプロイメントからGCPネットワークへのアクセスを許可するため、ファイアウォールを作成します。

    1. **Firewall**をクリックし、**CREATE FIREWALL RULE**をクリックします。
    2. **Network**にGCPネットワークを選択します。
    3. **Targets**で**All instances in the network**を選択するか、状況に応じて他のオプションを選択します。
    4. **Source IP ranges**にステップ1で控えたデプロイメントのCIDRを入力します。
    5. プロトコルとポートを選択します。

### ピアリング接続の削除

ピアリング接続を削除するには、ピアリング接続のステータスが`running`であることを確認してください。

::: tip

ピアリング接続を削除する前に、デプロイメントに関連リソースが存在しないことを必ず確認してください。そうでない場合、予期せぬリスクが発生する可能性があります。

:::

1. デプロイメントのネットワーク管理ページのVPCピアリング接続エリアに移動します。

   ![vpc-list](./_assets/gcp_vpc_peering_status.png)

2. ピアリング接続の**操作**列にある「削除」アイコンをクリックします。

   ![vpc-delete](./_assets/gcp_peering_delete.png)

## Confluent Cloudピアリング接続

Confluent Cloudクラスター作成後、以下の手順でピアリングを追加できます。

1. **Cluster settings**ページの**Networking**セクションに移動し、**Add Peering**ボタンをクリックします。

   ![addPeering](./_assets/confluent_addPeering.png)

2. VPC情報を入力します。（情報はデプロイメントコンソールの`VPC Peering`セクションから取得可能です）

   ![vpc_info](./_assets/confluent_vpc1.png)

   ![vpc_info](./_assets/aws_vpc_peering.png)

3. 接続ステータスが`Inactive`の場合、デプロイメントコンソールに戻ってピアリングリクエストを承認します。Confluent CloudクラスターのVPC情報を入力し、`Confirm`をクリックします。VPCステータスが`running`に変われば、VPCピアリング接続の作成に成功しています。

   ![vpc](./_assets/aws_vpc_peeing_status.png)

### ピアリング接続の削除

ピアリング接続を削除するには、ピアリング接続のステータスが`running`であることを確認してください。

::: tip

ピアリング接続を削除する前に、デプロイメントに関連リソースが存在しないことを必ず確認してください。そうでない場合、予期せぬリスクが発生する可能性があります。

:::

1. ネットワーク管理ページのVPCピアリング接続エリアに移動します。

   ![vpc-list](./_assets/aws_vpc_peeing_status.png)

2. ピアリング接続の**操作**列にある「削除」アイコンをクリックします。

   ![vpc-delete](./_assets/aws_vpc_peering_delete.png)
