このトピックでは、接続テストをサポートするデータストアと、接続テストが失敗した場合の一般的なトラブルシューティング方法について説明します。
接続テストの対応状況
- データストアが実行されていない。 データストアが実行されているかどうかをご確認ください。
- DataWorks からデータストアが配置されているネットワークにアクセスできない。 データストアが配置されているネットワークが Alibaba Cloud に接続されていることを確認してください。
- ネットワークファイアウォールにより、DataWorks からデータストアが配置されているネットワークへのアクセスが禁止されている。 DataWorks が使用する IP アドレスまたは CIDR (Classless Inter-Domain Routing) ブロックをホワイトリストに追加します。 詳細については、「ホワイトリストの設定」をご参照ください。
- データストアのドメイン名が解決できない。 データストアのドメイン名が適切に解決できることを確認してください。
- デフォルトのリソースグループが使用されているが、データストアは VPC (Virtual Private Cloud) または IDC (Internet Data Center) にデプロイされている。 カスタムリソースグループまたは専用リソースグループを使用してネットワークを接続してください。 ただし、接続テストには対応していません。 同期ノードの実行可否は、選択したリソースグループに依存します。
データストア | データストアのタイプ | ネットワークタイプ | 接続テスト |
---|---|---|---|
MySQL | ApsaraDB | クラシックネットワーク | 対応 |
VPC | 対応 | ||
接続文字列モード | 内部エンドポイントが使用される場合は非対応 | ||
ECS (Elastic Compute Service) にホストされたユーザー作成のデータストア | クラシックネットワーク | 対応 | |
VPC | 非対応 | ||
SQL Server | ApsaraDB | クラシックネットワーク | 対応 |
VPC | 対応 | ||
接続文字列モード | 内部エンドポイントが使用される場合は非対応 | ||
ECS にホストされたユーザー作成のデータストア | クラシックネットワーク | 対応 | |
VPC | 非対応 | ||
PostgreSQL | ApsaraDB | クラシックネットワーク | 対応 |
VPC | 対応 | ||
接続文字列モード | 内部エンドポイントが使用される場合は非対応 | ||
ECS にホストされたユーザー作成のデータストア | クラシックネットワーク | 対応 | |
VPC | 非対応 | ||
Oracle | 接続文字列モード | 内部エンドポイントが使用される場合は非対応 | |
ECS にホストされたユーザー作成のデータストア | クラシックネットワーク | 対応 | |
VPC | 非対応 | ||
DRDS | ApsaraDB | クラシックネットワーク | 対応 |
VPC | 対応予定 | ||
HybridDB for MySQL | ApsaraDB | クラシックネットワーク | 対応 |
VPC | 対応 | ||
AnalyticDB for PostgreSQL | ApsaraDB | クラシックネットワーク | 対応 |
VPC | 対応 | ||
MaxCompute | ApsaraDB | クラシックネットワーク | 対応 |
AnalyticDB for MySQL 2.0 | ApsaraDB | クラシックネットワーク | 対応 |
VPC | 非対応 | ||
OSS | ApsaraDB | クラシックネットワーク | 対応 |
VPC | 対応 | ||
Hadoop Distributed File System (HDFS) | 接続文字列モード | 内部エンドポイントが使用される場合は非対応 | |
ECS にホストされたユーザー作成のデータストア | クラシックネットワーク | 対応 | |
VPC | 非対応 | ||
FTP | 接続文字列モード | 内部エンドポイントが使用される場合は非対応 | |
ECS にホストされたユーザー作成のデータストア | クラシックネットワーク | 対応 | |
VPC | 非対応 | ||
MongoDB | ApsaraDB | クラシックネットワーク | 対応 |
VPC | 非対応 | ||
接続文字列モード | 内部エンドポイントが使用される場合は非対応 | ||
ECS にホストされたユーザー作成のデータストア | クラシックネットワーク | 対応 | |
VPC | 非対応 | ||
Memcache | ApsaraDB | クラシックネットワーク | 対応 |
VPC | 非対応 | ||
Redis | ApsaraDB | クラシックネットワーク | 対応 |
VPC | 非対応 | ||
接続文字列モード | 内部エンドポイントが使用される場合は非対応 | ||
ECS にホストされたユーザー作成のデータストア | クラシックネットワーク | 対応 | |
VPC | 非対応 | ||
Table Store | ApsaraDB | クラシックネットワーク | 対応 |
VPC | 非対応 | ||
Datahub | ApsaraDB | クラシックネットワーク | 対応 |
VPC | 非対応 |
データストアの接続を追加する際、VPC で内部エンドポイントを指定した場合、接続テストには対応しません。 [接続のテスト] をクリックせずに設定を保存できます。 接続を使用する同期ノードを作成する際、カスタムリソースグループまたは専用リソースグループを選択する必要があります。 また、同期ノードはコードエディターでのみ作成できます。 詳細については、「Data Integration 用排他的リソース」、および「カスタムリソースグループの追加」をご参照ください。
接続テストのシナリオ
- ローカルの IDC にデプロイされたデータストア
- パブリックネットワークアクセスが利用可能な場合:このタイプのデータストアに対する接続テストに対応しています。 JDBC URL に基づいて接続を追加する必要があります。 JDBC URL に基づいて接続を追加する際、ネットワークの到達可能性とホワイトリストの設定を確認して、同期ノードを実行するためのリソースグループがパブリックネットワーク経由でデータストアにアクセスできることを確認してください。 パブリックエンドポイントを使用する場合は、パブリックネットワークのデータ転送コストにご注意ください。 詳細については、「Data Integration によって生成されたインターネットトラフィック」をご参照ください。
- パブリックネットワークアクセスを利用できない場合:このタイプのデータストアに対する接続テストには対応していません。 接続を使用する同期ノードは、コードエディターでのみ作成できます。 JDBC URLに基づいて接続を追加できます。 ローカル IDC を VPC に接続している場合は、データ統合用の専用リソースグループを購入し、チケットを起票してください。 詳細については、「Data Integration 用排他的リソース」をご参照ください。 DataWorks を Professional Edition にアップグレードし、カスタムリソースグループで同期ノードを実行することもできます。 詳細については、「カスタムリソースグループの追加」をご参照ください。
- ECS にホストされたユーザー作成のデータストア
- パブリックネットワークアクセスが利用可能な場合:このタイプのデータストアに対する接続テストに対応しています。 JDBC URLに基づいて接続を追加する必要があります。 JDBC URL に基づいて接続を追加する際、ネットワークの到達可能性とホワイトリストの設定を確認して、同期ノードを実行するためのリソースグループがパブリックネットワーク経由でデータストアにアクセスできることを確認してください。 パブリックエンドポイントを使用する場合は、パブリックネットワークのデータ転送コストにご注意ください。 詳細については、「Data Integration によって生成されたインターネットトラフィック」をご参照ください。
- クラシックネットワーク上のデータストア:
- DataWorks のワークスペースとデータストアが同じリージョンにある場合は接続テストに対応しています。JDBC URLに基づいて接続を追加できます。 デフォルトのリソースグループで同期ノードを実行することもできますが、非推奨です。
- DataWorks のワークスペースとデータストアが別のリージョンにある場合、接続テストには対応しません。 JDBC URLに基づいて接続を追加できます。 この場合、カスタムリソースグループで接続を使用する同期ノードを実行する必要があります。同期ノードはコードエディターでのみ作成できます。
- ユーザー作成のデータストアがクラシックネットワーク上の ECS インスタンスでホストされ、同期ノードがデフォルトのリソースグループで実行されている場合、ネットワーク接続は保証されません。 この場合、カスタムリソースグループで同期ノードを実行することを推奨します。 カスタムリソースグループを使用しても接続テストが失敗する場合は、コードエディターで同期ノードを作成する必要があります。
- データストアを VPC に移行することを推奨します。
- VPC に配置され、内部エンドポイントを使用するデータストア:接続テストには対応していません。 JDBC URLに基づいて接続を追加できます。 この場合、データ統合用のカスタムリソースグループまたは専用リソースグループで接続を使用して同期ノードを実行する必要があります。同期ノードはコードエディターでのみ作成できます。
- Alibaba Cloud のサービス
- インスタンスモードで追加された接続:
- DataWorks は、Apsara DB for POLARDB、 DRDS (Distributed Relational Database Service)、HybridDB for MySQL、AnalyticDB for PostgreSQL、AnalyticDB for MySQL 3.0、ApsaraDB RDS for MySQL、ApsaraDB RDS for PostgreSQL、およびApsaraDB RDS for SQL Server について、インスタンスモードで追加された接続に、実行ステータスおよび同期ノードの環境に従って自動的にエンドポイントを設定します。 これらの接続は接続テストに対応しています。デフォルトのリソースグループで同期ノードを実行できます。
- ApsaraDB for Redis、ApsaraDB for MongoDB、および AnalyticDB for MySQ L2.0 についても、インスタンスモードで接続を追加できます。 ただし、これらの接続は、逆方向の VPC アクセスまたは接続テストに対応していません。 これらの接続を使用する同期ノードは、カスタムリソースグループで実行する必要があります。同期ノードはコードエディターでのみ作成できます。
- パブリックネットワークアクセスが利用可能な場合:このタイプのデータストアは、接続テストに対応しています。 JDBC URL に基づいて接続を追加する必要があります。 接続はインスタンスモードで追加することを推奨します。 JDBC URL に基づいて接続を追加する際、ネットワークの到達可能性とホワイトリストの設定を確認して、同期ノードを実行するためのリソースグループがパブリックネットワーク経由でデータストアにアクセスできることを確認してください。 パブリックエンドポイントを使用する場合は、パブリックネットワークのデータ転送コストにご注意ください。
- クラシックネットワーク上のデータストア:
- DataWorks ワークスペースとデータストアが同じリージョンにある場合、接続テストに対応しています。 JDBC URL に基づいて接続を追加する必要があります。
- DataWorks のワークスペースとデータストアが別のリージョンにある場合、接続テストには対応しません。 JDBC URLに基づいて接続を追加できます。 この場合、カスタムリソースグループで接続を使用する同期ノードを実行する必要があります。同期ノードはコードエディターでのみ作成できます。
- 接続はインスタンスモードで追加することを推奨します。
- VPC に配置され、内部エンドポイントを使用するデータストア:接続テストには対応していません。 JDBC URLに基づいて接続を追加できます。 この場合、データ統合用のカスタムリソースグループまたは専用リソースグループで接続を使用して同期ノードを実行する必要があります。同期ノードはコードエディターでのみ作成できます。 接続はインスタンスモードで追加することを推奨します。
MaxCompute、OSS (Object Storage Service)、LogHub などの集中型サービスでは、3 種類のエンドポイントを利用できます。 必要に応じて選択してください。
- インスタンスモードで追加された接続:
- HDFS、Redis、MongoDB など、他のデータストアのエンドポイントの制約は、リレーショナルデータベースの場合と同様です。
- 接続のエンドポイントを選択する際、ノード設定モード (コードレス UI またはコードエディター) および選択したリソースグループ (デフォルト、カスタム、または専用) を確認し、リソースグループがデータストアにアクセスできることを確認する必要があります。
- HBase および HDFS の特性から、これらのデータストアの同期ノードについては、データ統合用のカスタムリソースグループまたは専用リソースグループを使用して実行することを推奨します。
- Finance Cloud のデータストアへの接続は、接続テストに対応しています。接続はインスタンスモードで追加できます。 接続テストが失敗した場合は、カスタムリソースグループで同期ノードを実行します。
専用リソースの利用シナリオ
- シナリオ 1:VPC 内のデータストアと DataWorks のワークスペースが別のリージョンに配置されている場合。
データ統合用の専用リソースグループは、別の VPC に配置されたデータストアにはアクセスできません。 データストアと DataWorks ワークスペースが別のリージョンにある場合は、以下の手順に従います。
- DataWorks のワークスペースが配置されているリージョンに VPC を作成します。
- 作成した VPC を、Cloud Enterprise Networkを経由でデータストアが配置されている VPC に接続します。
- データ統合用の専用リソースグループをデータストアと同じゾーンで購入し、作成した VPC にリソースグループをバインドします。
- チケットを起票して、ネットワークアクセスを有効化します。
- シナリオ 2:VPC 内のデータストアと DataWorks のワークスペースが同じリージョンに配置されている場合。
VPC 内のデータストアとデータを同期するには、データ統合用の専用リソースグループをデータストアと同じゾーンで購入し、リソースグループをデータストアが配置されている VPC にバインドする必要があります。 バインド後に同期が失敗した場合は、VPC の CIDR ブロックをデータストアのホワイトリストまたはセキュリティグループに追加してください。
ネットワークアクセスを有効化するためのサービス
- Enterprise Cloud Network を使用したネットワークアクセスを有効化する方法の詳細については、「Enterprise Cloud Network」をご参照ください 。
- Express Connect を使用したネットワークアクセスを有効化する方法の詳細については、「Express Connect」をご参照ください 。
- VPN Gateway を使用したネットワークアクセスを有効化する方法の詳細については、「VPN Gateway」をご参照ください。
スケジューリングクラスターに関する注意事項
- 現在、Alibaba Cloud は中国 (杭州)、中国 (深セン)、中国 (香港)、およびシンガポールの各リージョンにスケジューリングクラスターをデプロイしています。 DataWorks では、データストアへのネットワーク接続を確認する際、中国 (杭州) リージョンにデプロイされたスケジューリングクラスターが使用されることを前提としています。 たとえば、MongoDB データストアが中国 (北京) リージョンのクラシックネットワークにデプロイされている場合、 DataWorks は、リージョンが異なるためスケジューリングクラスターはデータストアにアクセスできないと判断します。
- OXS クラスターと ECS クラスターは、内部ネットワーク経由では相互に通信できません。
RDS データベースのスケジューリングクラスターは OXS クラスターです。 OXS クラスターは、中国本土のすべてのリージョンの RDS データベースと内部ネットワーク経由で通信できます。 クラシックネットワーク上の ECS クラスターは、他のデータストアのスケジューリングクラスターとして機能します。
たとえば、RDS データベースからユーザー作成のデータベースにデータを同期する場合、両方のデータベースへの接続テストが成功します。 ただし、ノードのスケジューリング中、RDS データベースは OXS クラスターを使用して同期ノードをスケジュールしますが、ユーザー作成のデータベースは ECS クラスターを使用して同期ノードをスケジュールします。 その結果、ECS クラスターは RDS データベースにアクセスできず、同期は失敗します。 このような場合、RDS データベースの接続をJDBC URL モードの MySQL 接続として追加することを推奨します。 ECS クラスターから両方のデータベースにアクセスできることが保証され、同期が成功します。
同期ノードが実行されているリソースグループの表示
- RDS データベースの同期ノードは、OXS クラスターでスケジュールされます。同期ノードを実行しているリソースグループを特定するには、ログの詳細を確認します。
- ログに以下のような情報が含まれている場合、同期ノードはデフォルトのリソースグループで実行されます。
running in Pipeline[basecommon_ group_xxxxxxxxx]
- ログに以下のような情報が含まれている場合、同期ノードはカスタムリソースグループで実行されます。
running in Pipeline[basecommon_xxxxxxxxx]
- ログに以下のような情報が含まれている場合、同期ノードはデータ統合用の専用リソースグループで実行されます。
running in Pipeline[basecommon_S_res_group_xxx]
- ログに以下のような情報が含まれている場合、同期ノードはデフォルトのリソースグループで実行されます。
- その他のタイプのデータストアの同期ノードが ECS クラスターでスケジュールされている場合、ログ情報は下図のような内容となります。
- カスタムスケジューリングリソースをスケジューリングクラスターとして使用している場合、ログ情報は下図のような内容となります。 カスタムリソースグループが使用されているかどうかは、以下のログ情報に基づいて判断できます。
- ECS クラスターで同期ノードをスケジュールするには、Data Integration のテストページに移動し、[実行] をクリックします。 RDS データベースの同期ノードは、OXS クラスターでスケジュールする必要があります。 そのため、RDS 関連の同期ノードは手動で実行できる場合がありますが、スケジュールどおりには実行できません。 この場合、 ページで [テスト実行] をクリックします。
接続テスト失敗の一般的な原因
- データベースのパスワードが誤っている。
- ネットワーク接続に失敗している (下図を参照)。
- 同期中にネットワークエラーが発生している。
ログを確認し、問題の原因となっているリソースグループを特定します。 問題のあるリソースグループがカスタムリソースグループかどうかを確認します。
カスタムリソースグループに問題がある場合は、カスタムリソースグループの CIDR ブロックが、ApsaraDB for RDS インスタンスなどの対応するデータストアのホワイトリストに追加されているかどうかを確認します。注 カスタムリソースグループのCIDRブロックは、MongoDBデータストアのホワイトリストに追加する必要があります。両方の接続について接続テストに成功したかどうか、RDS と MongoDB のホワイトリストに漏れがないかどうかを確認します。
注 必要な情報がホワイトリストに設定されていない場合、同期ノードの実行に失敗する可能性があります。 ホワイトリストに IP アドレスを追加済みのスケジューリングサーバーに同期ノードを追加して、配信されると、同期ノードを実行できます。 追加しない場合、同期ノードの実行に失敗します。 - 同期ノードが実行中で、ポート 8000 が接続されていないこと示すエラーが報告される。
この問題は、カスタムリソースグループが使用され、セキュリティグループ内の IP アドレス 10.116.134.123 およびポート 8000 に対して受信ルールが設定されていないために発生します。 この問題を解決するには、IP アドレスとポートをセキュリティグループの受信ルールに追加し、同期ノードを再度実行します。
接続テストの失敗例
- 現象
データストアが接続テストに失敗する。 データベースの URL:
jdbc:mysql://xx.xx.xx.x:xxxx/t_uoer_bradef
. Username: xxxx_test. Error message:Access denied for user 'xxxx_test'@'%' to database 'yyyy_demo'
. - 対処方法
- 入力した情報を確認します。
- パスワード、ホワイトリストの設定、アカウントのデータベースへのアクセス権限を確認してください。 必要な権限は RDS で追加できます。
- 現象
データストアが接続テストに失敗する。
error message: Timed out after 5000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[(xxxxxxxxxx), type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Prematurely reached end of stream}}]
- 対処方法
VPC にデプロイされていない MongoDB データストアへの接続をテストする前に、関連する CIDR ブロックをデータストアのホワイトリストに追加する必要があります。 詳細については、「Configure a whitelist」をご参照ください。