# PrivateLink ステータス異常アラート

PrivateLink ステータス異常アラートは、EMQX Cloud と外部サービス間の PrivateLink 接続が異常状態（通常は `Failed`）であることを示します。

これは通常、EMQX Cloud がインターフェースエンドポイント（ENI）を介して顧客サービスに到達できないことを意味します。データ統合の操作や認証・認可のリクエストも失敗する可能性があります。

## PrivateLink ネットワーク経路

完全な PrivateLink ネットワーク経路は以下のコンポーネントで構成されます：

```text
EMQX VPC
  └─ Endpoint
        ↓
PrivateLink 内部チャネル
        ↓
エンドポイントサービス（顧客側）
        ↓
ロードバランサー
        ↓
ターゲットグループ
        ↓
バックエンドサーバー（EC2 / ECS / Pod）
```

このアラートは、EMQX Cloud のエンドポイントがこの経路を通じて正常で利用可能なバックエンドサービスに到達できないことを意味します。

## ロードバランサーのヘルスチェック失敗

### 症状

エンドポイントサービスのロードバランサーのターゲットグループに正常なバックエンドインスタンスが存在しないため、PrivateLink は正常な接続を確立できません。

PrivateLink やエンドポイントサービスに明確なエラーが表示されない場合もありますが、トラフィックは転送されません。

### 主な原因

- ターゲットグループ内のすべてのバックエンドインスタンスが異常である。
- バックエンドインスタンスがロードバランサーのヘルスチェックに失敗している。

### 対処方法

- ロードバランサーのバックエンドインスタンスのヘルス状態を確認してください。
- ロードバランサーコンソールのヘルスチェック結果を利用して、異常なバックエンドを調査してください。

## バックエンドサービスがリッスンしていない、またはポート設定ミス

### 症状

バックエンドサービスがロードバランサーに設定されたポートやネットワークインターフェースでリッスンしていません。ヘルスチェックは継続的に失敗し、PrivateLink は利用できません。

ターゲットグループは通常異常状態で、バックエンドのログにはロードバランサーからのリクエストが記録されません。

### 主な原因

- バックエンドサービスが停止しているか、プロセスが予期せず終了している。
- バックエンドサービスがターゲットグループの設定と異なるポートでリッスンしている。
- サービスが `127.0.0.1` のみでリッスンしており、`0.0.0.0` ではない。
- ヘルスチェックが TCP を使用しているが、ポートが閉じているかファイアウォールでブロックされている。

### 対処方法

- バックエンドサービスが稼働中で、正しいインターフェースとポートでリッスンしていることを確認してください。
- ターゲットグループのポートがバックエンドサービスのリッスンポートと一致していることを確認してください。
- サービスをループバックアドレスのみにバインドしないでください。ロードバランサーが TCP 接続を確立できる必要があります。

## バックエンドのセキュリティグループがロードバランサーのサブネットトラフィックをブロックしている

### 症状

NLB（ネットワークロードバランサー）では、ロードバランサー自体にセキュリティグループがありません。バックエンドインスタンスに到達するトラフィックは、NLB サブネットの CIDR から発信されます。

バックエンドのセキュリティグループが NLB サブネットの CIDR からヘルスチェックポートへのインバウンドトラフィックを許可していない場合、ヘルスチェックは失敗し、PrivateLink は異常状態になります。

### 主な原因

- バックエンドのセキュリティグループルールが NLB サブネット CIDR を許可していない。
- ヘルスチェックポートが許可されたインバウンドルールに含まれていない。

### 対処方法

- バックエンドサーバーのセキュリティグループルールを確認し、必要に応じて更新してください。
- ヘルスチェックポートに対して NLB サブネット CIDR からのインバウンドトラフィックを許可してください。

## エンドポイント、エンドポイントサービス、またはロードバランサーが変更または削除された

### 症状

PrivateLink はエンドポイントサービスとロードバランサーの設定に依存しています。EMQX Cloud 側に変更がないにもかかわらず、以前は正常に動作していた PrivateLink 接続が突然異常状態になる場合、ピア側の重要なリソースが変更された可能性があります。

### 主な原因

- ロードバランサー（NLB）が削除または再作成された。
- ターゲットグループの設定が変更されたか、バックエンドサーバーが置き換えられた。
- バックエンドインスタンスが停止または削除された。
- アベイラビリティゾーン（AZ）のサブネットが無効化された。
- エンドポイントサービスで許可されている AZ が変更された。
- エンドポイントが手動で削除された。

### 対処方法

- エンドポイント、エンドポイントサービス、ロードバランサー、ターゲットグループ、およびバックエンドリソースの最近の変更を確認してください。
- PrivateLink の依存関係を破壊しないように、ネットワークリソースの変更レビュー体制を確立してください。

## トラブルシューティング

1. クラウドプロバイダーのコンソールにログインし、**PrivateLink** が `Failed` または異常状態か確認します。
2. **ロードバランサー** が存在し、ステータスやメトリクスが正常であることを確認します。
3. **ターゲットグループ** を確認し、バックエンドインスタンスが正常であることを検証します。
4. **ロードバランサー** に有効な AZ がバックエンドサービスのある AZ と一致しているか確認します。
5. バックエンドサーバーの **セキュリティグループ** を確認し、ロードバランサーのサブネット CIDR からのインバウンドトラフィックを許可しているか検証します。
6. EMQX テクニカルサポートと連携し、`telnet <endpoint-ip> <port>` または `nc` コマンドを使って、エンドポイントからバックエンドサービスのポートへの接続性をテストします。
