デフォルトでは、Realtime Compute for Apache Flink はインターネットにアクセスできません。このトピックでは、インターネットアクセス、VPC 間アクセス、ドメイン名解決、およびネットワーク接続に関するよくある質問にお答えします。
ネットワーク問題のトラブルシューティング方法
Realtime Compute for Apache Flink のワークスペースは、Virtual Private Cloud (VPC) 内にデプロイされます。ワークスペースを作成した後は VPC を変更できません。データソースまたは宛先が Flink ワークスペースと同じ VPC 内にない場合、ネットワークが切断され、データの読み書きができません。データの読み書きができない場合は、次の手順に従ってネットワークの問題を確認してください。
ご利用の上流および下流サービスと Flink ワークスペース間のネットワーク接続を確認します。Flink コンソールでネットワーク接続をテストできます。詳細については、「ネットワーク検出機能の使用方法」をご参照ください。
デフォルトでは、Realtime Compute for Apache Flink は同じリージョンおよび VPC 内のサービスにのみアクセスできます。VPC 間またはインターネット経由でリソースにアクセスするには、以下をご参照ください。
VPC 間アクセスに関する詳細については、「VPC 間での他サービスへのアクセス方法」をご参照ください。
インターネットにアクセスするには、Alibaba Cloud NAT ゲートウェイを使用して VPC をインターネットに接続します。詳細については、「インターネットへのアクセス方法」をご参照ください。
上流および下流サービスにホワイトリストが設定されているかどうかを確認します。詳細については、「ホワイトリストの設定方法」をご参照ください。
それでもネットワークタイムアウトエラーが発生する場合は、接続タイムアウトが原因である可能性があります。DDL の `WITH` 句にある `connect.timeout` パラメーターの値を増やしてください。デフォルト値は 30 秒です。
ネットワーク検出機能の使用方法
Realtime Compute for Apache Flink は、ネットワーク検出機能を提供しています。Flink 開発コンソールでネットワーク検出機能を使用するには、次の手順を実行します。
対象のワークスペースの [操作] 列で、[コンソール] をクリックします。
上部のナビゲーションバーの右上隅にある [ネットワーク検出] アイコンをクリックします。

エンドポイントまたは IP アドレスを入力して、Flink ジョブ環境がご利用の上流および下流システムに接続されているかどうかを確認します。
重要エンドポイントを入力する際は、
:<port>のサフィックスを削除し、ポート番号を [ポート] フィールドに入力してください。
connect timed outエラーが発生した場合は、アクセスしているドメインがパブリックネットワーク上にあるか、別の VPC 内にあるかを確認してください。デフォルトでは、Realtime Compute for Apache Flink は同じ VPC 内のサービスにのみアクセスできます。VPC 間またはパブリックネットワーク経由でリソースにアクセスするには、「VPC 間での他サービスへのアクセス方法」および「インターネットへのアクセス方法」をご参照ください。
Hologres インスタンスのエンドポイントの取得方法
Hologres コンソールにログインします。[インスタンスリスト] ページで、目的のインスタンスをクリックします。
[インスタンス詳細] ページの [ネットワーク情報] セクションでエンドポイントを確認できます。
ネットワークタイプに基づいて、対応するエンドポイントを取得できます。
ネットワークタイプ
シナリオ
指定された VPC (推奨)
指定された VPC に接続されたプライベートネットワーク。
同じ VPC (推奨):Hologres インスタンスと Realtime Compute for Apache Flink ワークスペースが同じ VPC 内にあり、直接接続できます。
異なる VPC:Hologres インスタンスとワークスペースが異なる VPC にあります。VPC 間のリソースにアクセスするには、ネットワーク設定を構成する必要があります。詳細については、「VPC 間サービス」をご参照ください。
パブリックネットワーク
アクセス制限のないパブリックネットワーク。内部ネットワークと比較して、レイテンシーが予測不能になる可能性があります。
VPC をパブリックネットワークに接続するには、NAT ゲートウェイを使用する必要があります。詳細については、「パブリックネットワークアクセスの設定」をご参照ください。
(任意) Flink コンソールでネットワーク接続をテストします。詳細については、「ネットワーク検出機能の使用方法」をご参照ください。
検出成功:エンドポイントは正しいです。
検出失敗:Hologres インスタンスと Realtime Compute for Apache Flink ワークスペースが異なる VPC にあるか、パブリックネットワークアクセスが必要かを確認してください。インスタンスにアクセスする前に、必要に応じてネットワークを設定する必要があります。詳細については、「VPC 間サービス」および「パブリックネットワークアクセスの設定」をご参照ください。
インターネットへのアクセス方法
インターネットへのアクセスは、内部ネットワークと比較してレイテンシーが予測不能になる可能性があります。ビジネスで低レイテンシーと高い安定性が求められる場合は、内部ネットワークアクセスを使用することを推奨します。
Alibaba Cloud NAT ゲートウェイは、VPC をインターネットに接続します。これにより、Realtime Compute for Apache Flink はパブリックデータソースにアクセスできます。詳細については、「パブリックデータソース」をご参照ください。
パブリック帯域幅の表示方法
パブリックネットワーク経由でジョブの読み書きを行う際に、すべてのジョブメトリックが正常でバックプレッシャーがない場合は、パブリック帯域幅を確認して潜在的なボトルネックを特定できます。次の手順を実行します。
Realtime Compute for Apache Flink コンソールでは、[VPC ID] は [ワークスペースの詳細] から取得できます。
VPC コンソールで、対象の VPC の ID をクリックします。
[Resource Management] タブで、Internet NAT Gateway の横にある数字をクリックします。
説明インターネット NAT ゲートウェイの横の番号が 0 の場合は、インターネット NAT ゲートウェイを作成します。詳細については、「インターネット NAT ゲートウェイ」をご参照ください。
インターネット NAT ゲートウェイのインスタンス ID をクリックします。
[アタッチされた EIP] タブで、インスタンス名をクリックします。
ページで、[モニタリング] をクリックしてパブリック帯域幅情報を表示します。
VPC 間での他サービスへのアクセス方法
他のサービスが初期計画段階にあるか、置き換え可能な場合は、Realtime Compute for Apache Flink と同じ VPC 内のサービスを購入することを推奨します。または、現在の Flink ワークスペースをリリースし、他のサービスと同じ VPC 内に新しいワークスペースを作成します。
ビジネスニーズに基づいて、VPC 間でサービスにアクセスするための適切な方法を選択してください。ソリューションの詳細については、「VPC 間サービス」をご参照ください。
ホワイトリストの設定方法
デフォルトでは、Realtime Compute for Apache Flink の上流および下流サービスは、外部デバイスからのアクセスを拒否します。Flink ワークスペース用に設定された vSwitch の CIDR ブロックを、対象サービスのホワイトリストに追加する必要があります。次の手順を実行します。
ターゲットの [ワークスペース] の [アクション] 列で、 を選択します。
[ワークスペースの詳細] ダイアログボックスで、ワークスペースの vSwitch の [CIDR ブロック] 情報を確認します。

対象のアップストリームおよびダウンストリームサービスのホワイトリストに、Flink ワークスペースの vSwitch の [CIDR ブロック] を追加します。
たとえば、ApsaraDB RDS for MySQL データベースのホワイトリストを設定するには、「IP アドレスホワイトリストの設定」をご参照ください。
説明後で新しい vSwitch を追加した場合は、その CIDR ブロックも対象サービスのホワイトリストに追加する必要があります。
vSwitch と上流または下流サービスが異なるゾーンにある場合でも、vSwitch の CIDR ブロックをホワイトリストに追加すればネットワークは接続できます。
Flink ジョブが依存するサービスのドメイン名解決方法
作成した Flink ジョブがドメイン名で指定されたサービスに依存している場合、ジョブを Realtime Compute for Apache Flink に移行する際にドメイン名解決エラーが発生することがあります。この場合、次のいずれかのソリューションを使用してドメイン名を解決してください。
オンプレミス DNS があり、Flink VPC がこのオンプレミス DNS サービスに接続でき、かつオンプレミス DNS がドメイン名を正しく解決できる場合。
Realtime Compute for Apache Flink のジョブテンプレートを使用してドメイン名解決を行うことができます。たとえば、オンプレミス DNS の IP アドレスが 192.168.0.1 の場合、次の手順を実行します。
対象のワークスペースの[アクション] 列で、[コンソール] をクリックします。
[設定管理] ページで、[デフォルトジョブ設定] タブに移動し、[その他の設定] テキストボックスに次のコードを追加します。
env.java.opts: >- -Dsun.net.spi.nameservice.provider.1=default -Dsun.net.spi.nameservice.provider.2=dns,sun -Dsun.net.spi.nameservice.nameservers=192.168.0.1説明この方法は、JDK 11 を使用しないエンジンにのみ適用されます。データベースエンジンのバージョンに
jdk-11が含まれている場合は機能しません。オンプレミス DNS に複数の IP アドレスがある場合は、カンマ (,) で区切ってください。
[変更を保存] をクリックします。
Realtime Compute for Apache Flink 開発コンソールで、新しいジョブを作成して実行します。
それでも UnknownHostException エラーが発生する場合は、ドメイン名を解決できないことを意味します。この場合は、お問い合わせください。
オンプレミス DNS 解決を設定した後にジョブが頻繁にフェイルオーバーし、「JobManager のハートビートタイムアウト」エラーが発生する場合は、「エラー:JobManager のハートビートタイムアウト」で解決策をご参照ください。
オンプレミス DNS がない場合、または Flink VPC がオンプレミス DNS に接続できない場合は、Alibaba Cloud DNS を使用して接続を確立できます。
エラー:JobManager のハートビートタイムアウト
エラーの詳細
オンプレミス DNS 解決を設定した後、ジョブが頻繁にフェイルオーバーし、「JobManager のハートビートタイムアウト」エラーが発生します。
原因
これは、オンプレミス DNS への接続レイテンシーが高いことが原因である可能性があります。
解決策
ジョブ内の TaskManager (TM) のドメイン名解決を無効にする必要があります。これを行うには、
jobmanager.retrieve-taskmanager-hostnameを `false` に設定します。この設定は、ジョブがドメイン名を使用して外部サービスに接続する機能には影響しません。このパラメーターの設定方法については、「ジョブのカスタム実行パラメーターの設定方法」をご参照ください。
Flink と Kafka 間のネットワークが接続されているにもかかわらず、「トピックメタデータのフェッチ中にタイムアウトが期限切れになりました」というエラーが発生する理由
Flink と Kafka 間のネットワーク接続は、データが読み取れることを保証するものではありません。Flink が Kafka に接続してデータを読み取れるのは、ブートストラッププロセス中に Kafka ブローカーが返すクラスターメタデータに記述されているエンドポイントに接続できる場合に限られます。詳細については、「Kafka クライアントがブローカーに接続できない」をご参照ください。接続を確認するには、次の手順を実行します。
zkCli.sh または zookeeper-shell.sh ツールを使用して、Kafka が使用する ZooKeeper にログインします。
ls /brokers/idsコマンドを実行して、すべての Kafka ブローカー ID を一覧表示します。get /brokers/ids/{your_broker_id}コマンドを実行して、ブローカーのメタデータを表示します。エンドポイント情報は `listener_security_protocol_map` にあります。
Flink がこのエンドポイントに接続できることを確認します。
エンドポイントがドメイン名を使用している場合は、Flink に対応するドメイン名解決サービスを設定します。ドメイン名の解決方法の詳細については、「Flink ジョブが依存するサービスのドメイン名解決方法」をご参照ください。