仮想プライベートクラウド (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