すべてのプロダクト
Search
ドキュメントセンター

Batch Compute:VPC 接続

最終更新日:Dec 28, 2024

仮想プライベートクラウド (VPC) は、Alibaba Cloud 上に構築された隔離されたネットワーク環境です。VPC は論理的に相互に隔離されています。詳細については、VPC とは を参照してください。

Batch Compute でクラスターまたはジョブを作成する際に、VPC 内にクラスターを作成するように設定できます (元のクラシックネットワーク構成と競合します)。その後、プログラムは、VPC 内のクラスターでこのクラウド製品のプログラムを実行またはアクセスする際に、VPC 内のクラウド製品のエントリを使用する必要があります。詳細については、関連するクラウド製品のドキュメントを参照するか、チケットを送信してご相談ください。クラスター記述の Configs.Networks.VPC の CidrBlock フィールドは、Batch Compute クラスターのネットワークセグメントを識別します。クラスター内のすべてのインスタンスはこのネットワークセグメント内にあります。VPC はプライベートネットワークセグメント、つまり 10.0.0.0/8、172.16.0.0/12、および 192.168.0.0/16、およびそれらのサブネットのみをサポートします。基盤となる vSwitch の分割制限により、ネットワークセグメントマスクは 12 から 24 の範囲である必要があります。したがって、CidrBlock フィールドは、10.0.0.0/12 - 10.0.0.0/24、172.16.0.0/12 - 172.16.0.0/24、および 192.168.0.0/16 - 192.168.0.0/24 から選択されたネットワークセグメントにすることができます。そうでない場合、クラスターの作成が失敗する可能性があります。

また、アカウントの VPC 内にクラスターを作成することもできます。このようにして、クラスターは、アカウント内の NAS や ApsaraDB for RDS インスタンスなどの既存のクラウドサービスリソースに相互接続できます。この機能を使用するには、Configs.Networks.VPC.CidrBlock フィールド以外に、Configs.Networks.VPC.VpcId フィールドを設定して、アカウント内の VPC の ID を識別する必要があります。クラスターの作成中に、指定した VPC に vSwitch やその他のリソースが作成されることに注意してください。クラスターが存在する間は、自動的に作成された vSwitch を操作しないでください。操作すると、クラスターの実行に影響を与える可能性があります。また、このモードでは、複数のクラスターが同じ CIDR ネットワークセグメントを共有できます。この CIDR ネットワークセグメントに vSwitch やその他のリソースを作成しないでください

bcs インスタンスタイプ (例: bcs.xx.xxx 形式) は、VPC 内の Batch Compute クラスターではサポートされていません。

使用する前に、次の例の SDK を最新バージョンに更新してください。

1. Java SDK を使用する

クラスターを作成する際に、以下を指定します。

ClusterDescription clusterDescription = new ClusterDescription();
Configs cfgs = new Configs();
Networks nw = new Networks();
VPC vpc = new VPC();
vpc.setCidrBlock("192.168.0.1/16");  // ネットワークセグメントを設定します
vpc.setVpcId("vpc-xxyyzz");  // VPC を使用する場合、このフィールドは必須です。
nw.setVpc(vpc);
cfgs.setNetworks(nw);
clusterDescription.setConfigs(cfgs);
...

ジョブを作成する際に、以下を指定します。

TaskDescription taskDescription = new TaskDescription();
Configs cfgs = new Configs();
Networks nw = new Networks();
VPC vpc = new VPC();
vpc.setCidrBlock("192.168.0.1/16"); // ネットワークセグメントを設定します
vpc.setVpcId("vpc-xxyyzz");  // VPC を使用する場合、このフィールドは必須です。
nw.setVpc(vpc);
cfgs.setNetworks(nw);
AutoCluster autoCluster = new AutoCluster();
taskDescription.setAutoCluster(autoCluster);
...

2. Python SDK を使用する

クラスターを作成する際に、以下を指定します。

from batchcompute.resources import ClusterDescription

cluster_desc = ClusterDescription()
cluster_desc.Configs.Networks.VPC.CidrBlock = "192.168.0.1/16"
cluster_desc.Configs.Networks.VPC.VpcId = "vpc-xxyyzz"  # VPC を使用する場合、このフィールドは必須です。
...

ジョブを作成する際に、以下を指定します。

from batchcompute.resources import TaskDescription

task_desc = TaskDescription()
task_desc.AutoCluster.Configs.Networks.VPC.CidrBlock = "192.168.0.1/16"
task_desc.AutoCluster.Configs.Networks.VPC.VpcId = "vpc-xxyyzz"  # VPC を使用する場合、このフィールドは必須です。
...

3. コマンドラインツールを使用する

ジョブを作成する際に、以下を指定します。

bcs sub "python test.py" --vpc_cidr_block 192.168.0.0/16
bcs sub "python test.py" --vpc_cidr_block 192.168.0.0/16 --vpc_id vpc-xxyyzz

クラスターを作成する際に、以下を指定します。

bcs cc myCluster --vpc_cidr_block 192.168.0.0/16
bcs cc myCluster --vpc_cidr_block 192.168.0.0/16 --vpc_id vpc-xxyyzz