このソリューションは、Virtual Private Cloud (VPC) 内の RDS、HBase クラスター、Hadoop クラスターなどのサービスにアクセスする必要があるシナリオ向けです。MaxCompute SQL、ユーザー定義関数 (UDF)、Spark、PyODPS/Mars、外部テーブル、またはデータレイクハウスアーキテクチャを使用できます。
このソリューションでは、戻りトラフィック用に 2 つのセキュリティグループが作成されます。名前は MaxCompute-vpc-xxx と MaxCompute-backup-vpc-xxx です。`xxx` プレースホルダーは、指定した VPC ID を表します。これら 2 つのセキュリティグループのルールは変更しないでください。これらのセキュリティグループを他のコンポーネントのセキュリティルール管理に使用しないでください。これらの変更に起因する問題について、プラットフォームは責任を負いません。
手順
ステップ 1:アカウントとプロジェクトの準備
MaxCompute とターゲットサービス間のネットワーク接続を確立する前に、以下の条件が満たされていることを確認してください。
MaxCompute プロジェクトの作成。データレイクハウスソリューションを使用する場合、MaxCompute プロジェクトのデータ型エディションを Hive 互換データ型エディションに設定することを推奨します。
VPC 内のターゲットサービスにアクセスするには、VPC のオーナーアカウント、MaxCompute プロジェクトへのアクセスに使用される Alibaba Cloud アカウント、およびターゲットサービス環境またはクラスターの管理者アカウントがすべて同じ Alibaba Cloud アカウントに属していることを確認してください。
ステップ 2:専用回線接続の確立
1. 権限の付与
操作ユーザーにネットワーク接続オブジェクトを作成する権限を付与します。
権限を付与するユーザーは、Project Owner またはテナントレベルの Super_Administrator もしくは Admin ロールを持つユーザーである必要があります。詳細については、「ロールの計画」をご参照ください。
権限付与の手順については、「テナント内のオブジェクト権限リスト」をご参照ください。
MaxCompute の権限付与:これにより、MaxCompute が VPC 内に Elastic Network Interface (ENI) を作成し、MaxCompute から VPC へのネットワーク接続を有効にできます。Alibaba Cloud アカウントにログインした状態で 権限付与 をクリックします。
2. セキュリティグループルールの追加
VPC 接続インスタンスでは、個別のセキュリティグループを作成する必要があります。このグループは、MaxCompute から VPC 内のリソースへのアクセスを制御するために使用されます。
新しい基本セキュリティグループを作成する必要があります。他のタイプのセキュリティグループや既に使用中のセキュリティグループは使用しないでください。MaxCompute は、サービスにアクセスするために VPC 内に ENI を作成し、自動的にこのセキュリティグループに配置します。
このセキュリティグループのアウトバウンドルールを設定して、ENI 上で実行される MaxCompute ジョブがアクセスできる宛先アドレスを制御します。特別な要件がない場合は、デフォルトのアウトバウンドルールを維持できます。
ENI に入るトラフィックは戻りトラフィックです。したがって、すべてのインバウンドトラフィックを許可する必要があります。
Virtual Private Cloud (VPC) コンソールにログインします。
左側のナビゲーションウィンドウで、VPC を選択します。左上隅でリージョンを選択します。
VPC ページで、ターゲット VPC の ID/名前 をクリックします。
VPC 詳細ページで、リソース タブをクリックします。
リソース タブの VPC リソース セクションで、セキュリティグループ の値にカーソルを合わせ、追加 をクリックします。
セキュリティグループタイプ を 基本セキュリティグループ に設定します。
基本セキュリティグループ は、デフォルトでアウトバウンドトラフィックを許可します。アドバンストセキュリティグループ は、デフォルトでアウトバウンドトラフィックを拒否するため、VPC 内のサービスへのアクセスが妨げられます。
接続サービスで使用されているのと同じ VPC ネットワーク を選択します。
詳細については、「セキュリティグループの作成」をご参照ください。
MaxCompute からのアクセスを許可するようにセキュリティグループルールを設定します。
ターゲットセキュリティグループの 操作 列で、ルールの管理 をクリックします。
アクセスルール エリアの インバウンド タブで、ターゲットルールの アクション 列にある 編集 をクリックします。すべての インバウンド トラフィックを許可するように設定を構成します。
権限ポリシー を 許可 に設定します。
優先度 は 1 に設定されます。
プロトコル で、すべてのトラフィック を選択します。
ソース は、アクセスする Alibaba Cloud サービスを含む VPC または vSwitch の CIDR ブロックです。
宛先 は、デフォルトで ALL(-1/-1) になります。
詳細については、「セキュリティグループの適用ガイドと例」をご参照ください。
HBase シナリオで、HBase がセキュリティグループにネットワークアクセスを許可できない場合は、MaxCompute が作成した ENI の IP アドレスをホワイトリストに追加できます。ENI の IP アドレスは変更される可能性があるため、VPC 接続インスタンスの vSwitch の CIDR ブロックをホワイトリストに追加することを推奨します。ECS コンソールにログインします。左側のナビゲーションウィンドウで、Elastic Network Interface をクリックして ENI の IP アドレスを取得します。
ネットワーク接続の作成プロセス中に、MaxCompute は帯域幅の要件に基づいて 2 つの ENI を自動的に作成します。これらの ENI は無料で、このセキュリティグループに配置されます。
3. MaxCompute とターゲット VPC 間のネットワーク接続の作成
MaxCompute コンソールでは、Alibaba Cloud アカウントまたは MaxCompute テナントレベルで Super_Administrator もしくは Admin ロールを持つ RAM ユーザーが VPC ネットワークへの接続を作成できます。詳細については、「MaxCompute テナントレベルのロール」をご参照ください。接続を作成するには、次の手順を実行します。
MaxCompute コンソールにログインし、左上隅でリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。
ネットワーク接続 ページで、新しいネットワーク接続 をクリックします。
新しいネットワーク接続 ダイアログボックスで、プロンプトに従ってパラメーターを設定し、OK をクリックします。初めてネットワーク接続を追加する場合、まず 権限を付与して、MaxCompute プラットフォームプロキシがネットワークインターフェイスカード (NIC) をリクエストできるようにする必要があります。そうしないと、接続を作成できません。
新しいネットワーク接続 ダイアログボックスで、プロンプトに従ってパラメーターを設定し、OK をクリックします。初めてネットワーク接続を追加する場合、まず 権限を付与して、MaxCompute プラットフォームプロキシが NIC をリクエストできるようにする必要があります。そうしないと、接続を作成できません。
次の表にパラメーターを示します。
パラメーター
必須
説明
接続名:
必須
接続のカスタム名。名前は次の要件を満たす必要があります:
文字で始まること。
文字、アンダースコア (_)、数字のみを含むこと。
長さが 1~63 文字であること。
タイプ:
必須
デフォルト値は パススルー接続 (パススルー) です。
パススルー接続 (パススルー) 接続は VPC 接続です。
エリア:
必須
システムは、左上隅で選択したリージョンに基づいてこのパラメーターを自動的に入力します。詳細については、「サポートされているリージョン」をご参照ください。
選択されたVPC:
必須
VPC は、隔離された仮想ネットワークです。従来のデータセンターと同様に、安全で設定可能なプライベートネットワークスペースを提供します。
VPC の ID。新しい VPC を作成するには、「VPC の作成または削除」をご参照ください。
ID を取得するには:
Virtual Private Cloud (VPC) コンソールにログインします。
左側のナビゲーションウィンドウで、VPC を選択します。左上隅でリージョンを選択します。
VPC ページで、VPC の ID/名前 を取得します。
HBase または Hadoop クラスターに接続する場合、この情報は対応するコンソールのネットワーク接続詳細で確認できます。
スイッチ:
必須
vSwitch はサブネットを作成するために使用されます。同じ VPC 内の異なる vSwitch は、内部ネットワークを介して相互に通信できます。異なるゾーンの vSwitch にまたがってクラウドリソースをデプロイすることで、単一ゾーンでの障害からアプリケーションを保護できます。
VPC にアタッチされている vSwitch の ID。利用可能な vSwitch がない場合は、「vSwitch の作成または削除」をご参照ください。
ID を取得するには:
Virtual Private Cloud (VPC) コンソールにログインします。
左側のナビゲーションウィンドウで、vSwitch を選択します。左上隅でリージョンを選択します。
vSwitch ページで、vSwitch の ID/名前 を取得します。
HBase または Hadoop クラスターに接続する場合、この情報は対応するコンソールのネットワーク接続詳細で確認できます。
セキュリティグループ:
必須
セキュリティグループは、クラウドリソースの仮想ファイアウォールとして機能します。セキュリティグループとそのルールを管理することで、詳細なネットワーク分離とアクセス制御を実装できます。
セキュリティグループの ID。セキュリティグループを作成するには、「セキュリティグループの作成」をご参照ください。
4. ターゲットサービスのセキュリティグループの設定
ENI ベースの専用回線接続が確立された後、アクセスしたいサービスのセキュリティグループにセキュリティルールを追加する必要があります。これらのルールは、MaxCompute を表すセキュリティグループに、9200 や 31000 などの特定のサービスポートへのアクセスを許可します。
たとえば、ApsaraDB RDS にアクセスするには、ステップ 2 で作成したセキュリティグループからのアクセスを許可するルールを RDS インスタンスのセキュリティグループに追加する必要があります。アクセスしたいサービスがセキュリティグループの追加をサポートしておらず、IP アドレスの追加のみをサポートしている場合は、ターゲットサービスが存在する vSwitch の CIDR ブロック全体を追加する必要があります。
Hadoop クラスターのセキュリティグループを設定します。
MaxCompute からのアクセスを許可するように Hadoop クラスターのセキュリティグループを設定します。セキュリティグループは次のように設定する必要があります:
Hadoop クラスターのセキュリティグループにインバウンドルールを追加します。
権限付与オブジェクトを ENI を含むセキュリティグループに設定します。これはステップ 2 で作成したセキュリティグループです。
HiveMetaStore ポートは 9083 です。
HDFS NameNode ポートは 8020 です。
HDFS DataNode ポートへのアクセスを許可します:50010。
たとえば、Alibaba Cloud E-MapReduce で作成された Hadoop クラスターに接続する場合、必要なセキュリティグループルールは次の図のようになります。詳細については、「セキュリティグループの作成」をご参照ください。

HBase クラスターのセキュリティグループを設定します。
MaxCompute 用に作成されたセキュリティグループまたは ENI の IP アドレスを、HBase クラスターのセキュリティグループまたは IP アドレスホワイトリストに追加します。
たとえば、Alibaba Cloud HBase クラスターに接続する場合:
HBase 管理コンソールにログインします。左上隅でリージョンを選択します。
左側のナビゲーションウィンドウで、クラスター を選択します。
クラスター ページで、ターゲットクラスターの名前をクリックします。
左側のナビゲーションウィンドウで、Access Control を選択します。
Whitelist Setting と Security Group タブで、Add Whitelist または Add Security Group ができます。セキュリティグループを追加できない場合は、Whitelist Setting タブで MaxCompute が作成した ENI の IP アドレスを追加します。MaxCompute の設定が変更されると ENI の IP アドレスが変わる可能性があるため、接続性の問題を避けるために、代わりに vSwitch の CIDR ブロックをホワイトリストに追加することを推奨します。
セキュリティグループまたは IP アドレスホワイトリストの追加に関する詳細については、「ホワイトリストとセキュリティグループの設定」をご参照ください。
RDS セキュリティグループを設定します。
MaxCompute 用に作成されたセキュリティグループまたは ENI の IP アドレスを、RDS セキュリティグループまたは IP アドレスホワイトリストに追加します。
たとえば、ApsaraDB RDS に接続する場合:
RDS コンソールにログインします。
左側のナビゲーションウィンドウで、インスタンス をクリックします。次に、左上隅でリージョンを選択します。
左側のナビゲーションウィンドウで、ホワイトリストとセキュリティグループ をクリックします。
ホワイトリスト設定 と セキュリティグループ タブで、IP アドレスホワイトリストまたはセキュリティグループを追加できます。MaxCompute の設定が変更されると ENI の IP アドレスが変わる可能性があるため、vSwitch の CIDR ブロックをホワイトリストに追加することを推奨します。
セキュリティグループまたは IP アドレスホワイトリストの設定に関する詳細については、「セキュリティグループの設定」または「IP アドレスホワイトリストの設定」をご参照ください。
ステップ 3:ネットワーク接続を使用した VPC 内アドレスへのアクセス
専用回線ネットワーク接続の有効化 操作を完了した後、SQL または Spark を使用して VPC ネットワークにアクセスするには、次の設定を追加する必要があります。
他のタイプのジョブについては、必要に応じて設定を調整してください。
SQL を使用した VPC へのアクセス
UDF を使用して VPC ネットワークにアクセスできます。詳細については、「UDF を使用した VPC ネットワークリソースへのアクセス」をご参照ください。次のコードは例です:
-- ネットワーク接続名を設定します。これは、専用回線接続ソリューションに基づいて設定された接続の名前です。この設定は現在のセッションでのみ有効です。 SET odps.session.networklink=testLink;外部テーブルから VPC ネットワークにアクセスできます。次のコードは例です:
-- CREATE TABLE 文でパラメーターを設定します。 TBLPROPERTIES( 'networklink'='<networklink_name>')データレイクハウス用のネットワークリンクを設定できます。詳細については、「Data Lakehouse 2.0 ユーザーガイド」をご参照ください。
Spark を使用した VPC へのアクセス
ターゲット VPC 内のサービスに接続する Spark ジョブを実行するには、次の設定を追加する必要があります。詳細については、「VPC 接続インスタンスにアクセスする Spark」をご参照ください。
spark.hadoop.odps.cupid.eni.enable = truespark.hadoop.odps.cupid.eni.info=regionid:vpc id
(オプション) ステップ 4:ホワイトリストの追加
サーバーでアクセス制御が有効になっている場合は、専用回線接続用に作成したセキュリティグループをサーバーのホワイトリストに追加する必要があります。