仮想プライベートクラウド (VPC) は、完全に制御できるクラウド内のプライベートネットワークです。 VPC はリージョンレベルのリソースであり、その中で Elastic Compute Service (ECS)、RDS、Server Load Balancer (SLB) インスタンスなどのリソースを作成およびデプロイできます。
vSwitch はゾーンレベルのリソースであり、VPC をサブネットに分割するために使用できます。 同じ VPC 内の vSwitch は、内部ネットワークを介して相互に通信できます。 アプリケーションがシングルゾーンの障害の影響を受けないように、異なるゾーンの vSwitch にクラウドリソースをデプロイできます。
ネットワーク計画
適切なネットワーク計画は、CIDR ブロックの競合を防ぎ、ネットワークのスケーラビリティを確保し、高額な再構築コストを回避するのに役立ちます。詳細については、「適切なネットワーク計画」をご参照ください。
VPC と vSwitch の作成/削除
コンソール
VPC と vSwitch の作成
[VPC の作成] ページに移動します。
VPC の構成:
リージョン: クラウドリソースを作成するリージョンを選択します。
IPv4 CIDR ブロック: 推奨 CIDR ブロックを選択するか、カスタム CIDR ブロックを入力します。 複数の VPC が接続されているシナリオでは、既存の VPC と重複しない CIDR ブロックを構成することをお勧めします。 CIDR ブロックの競合を回避し、ネットワークのスケーラビリティを確保するために、IPAM を使用した VPC の作成をお勧めします。
1. VPC CIDR ブロックとして RFC1918 で指定されているプライベート IPv4 アドレスを、16 ~ 28 のサブネットマスクで使用することをお勧めします。たとえば、10.0.0.0/16、172.16.0.0/16、192.168.0.0/16 などです。
2. 100.64.0.0/10、224.0.0.0/4、127.0.0.0/8、または 169.254.0.0/16 を VPC CIDR ブロックとして使用することはできません。
vSwitch の構成:
ゾーン: リソースをデプロイするゾーンを選択します。 ゾーンを選択する際は、サポート状況と在庫 (売り切れかどうか) を考慮してください。
IPv4 CIDR ブロック: デフォルトの CIDR ブロックを使用するか、必要に応じて CIDR ブロックを変更します。
vSwitch を追加する: シングルゾーンでの障害によるアプリケーションへの影響を防ぐために、異なるゾーンに複数の vSwitch を作成します。VPC のセットアップ時に vSwitch を作成するか、後で [VPC コンソール - vSwitch] で vSwitch を追加できます。
VPC と vSwitch の削除
対象の VPC または vSwitch の詳細ページ、または [アクション] 列の [削除] をクリックします。 システムは、削除されていないクラウドリソースまたは関連リソースがあるかどうかを確認します。 依存リソースがある場合は、VPC と vSwitch を削除する前に、すべてリリースしてください。
1. vSwitch が共有されておらず、カスタムルートテーブルまたはネットワーク ACL に接続されておらず、vSwitch 内のすべてのクラウドリソースがリリースされていることを確認してください。
2. VPC 内のすべてのリソースがリリースされており、VPC が Cloud Enterprise Network (CEN) などのネットワークサービスに関連付けられていないことを確認してください。
API
コンソールで VPC を作成する場合とは異なり、CreateVpc 操作では空の VPC のみが作成されます。 vSwitch を作成するには、CreateVSwitch 操作を呼び出す必要があります。
CreateVpc と CreateVSwitch を順番に呼び出します。
VPC を作成した後、ModifyVpcAttribute 操作の
CidrBlock
パラメータを変更して、元の IPv4 CIDR ブロックを拡大または縮小します。 縮小する場合は、新しい CIDR ブロック外の IP をアクティブなリソースが使用していないことを確認してください。vSwitch の IPv4 CIDR ブロックは変更できません。
vSwitch と VPC を削除するには、DeleteVSwitch と DeleteVpc を順番に呼び出します。
1. vSwitch が共有されておらず、カスタムルートテーブルまたはネットワーク ACL に接続されておらず、vSwitch 内のすべてのクラウドリソースがリリースされていることを確認してください。
2. VPC 内のすべてのリソースがリリースされており、VPC が Cloud Enterprise Network (CEN) などのネットワークサービスに関連付けられていないことを確認してください。
Terraform
リソース: alicloud_vpc、alicloud_vswitch
データソース: alicloud_zones
# VPC が作成されるリージョンを指定します
provider "alicloud" {
region = "cn-hangzhou"
}
# データソースに基づいて、vSwitch を作成できるゾーンのリストを自動的に取得します
data "alicloud_zones" "available_zones" {
available_resource_creation = "VSwitch" # vSwitch を作成できるゾーンをクエリします
# available_instance_type = "ecs.g7.large" # ECS インスタンスを作成できるゾーンをクエリします
# available_resource_creation = "slb" # SLB インスタンスを作成できるゾーンをクエリします
}
# VPC を作成します
resource "alicloud_vpc" "example_vpc" {
vpc_name = "example_vpc_name"
cidr_block = "10.0.0.0/16" # CIDR ブロックを指定します
}
# vSwitch を作成します
resource "alicloud_vswitch" "example_vswitch" {
vswitch_name = "example_vswitch_name"
cidr_block = "10.0.0.0/24" # CIDR ブロックを指定します
vpc_id = alicloud_vpc.example_vpc.id # vSwitch が属する VPC の ID を指定します
zone_id = data.alicloud_zones.available_zones.zones.0.id # vSwitch ゾーンを指定します
}
IPv6 の有効化/無効化
VPC と vSwitch で IPv6 を有効にすると、システムは自動的に IPv6 ゲートウェイ を作成し、IPv6 CIDR ブロックを割り当てます。デフォルトでは、内部ネットワーク通信のみがサポートされています。インターネットにアクセスするには、IPv6 インターネット帯域幅を有効にする必要があります。
IPv4/IPv6 デュアルスタックをサポートするリージョン。
コンソール
IPv6 を有効にする
VPC と vSwitch を作成する際に、IPv6 ドロップダウンリストから [BGP(マルチ ISP) を割り当てる] を選択して、IPv6 を有効にします。
既存の VPC の場合は、対象の VPC の [IPv6 CIDR ブロック] 列で [IPv6 を有効にする] をクリックし、タイプを [BGP(マルチ ISP) を割り当てる] に設定します。[すべての VSwitch に対して IPv6 を自動的に有効にする] を選択するか、対象の vSwitch の [IPv6 CIDR ブロック] 列で [IPv6 を有効にする] をクリックして、特定の vSwitch に対して IPv6 を有効にすることができます。
IPv6 を無効にする
対象の VPC または vSwitch の [IPv6 CIDR ブロック] 列で [IPv6 を無効にする] をクリックします。VPC の IPv6 を無効にするには、すべての vSwitch でこの機能を無効にし、IPv6 ゲートウェイを削除する必要があります。
API
VPC と vSwitch を作成する場合は、CreateVpc および CreateVSwitch の
EnableIPv6
パラメーターを設定して、IPv6 を有効または無効にします。既存の VPC および vSwitch の場合は、ModifyVpcAttribute および ModifyVSwitchAttribute の
EnableIPv6
パラメーターを設定して、IPv6 を有効または無効にします。
Terraform
リソース: alicloud_vpc、alicloud_vswitch
データソース: alicloud_zones
# VPC が作成されるリージョンを指定します
provider "alicloud" {
region = "cn-hangzhou"
}
# データソースに基づいて、vSwitch を作成できるゾーンのリストを自動的に取得します
data "alicloud_zones" "available_zones" {
available_resource_creation = "VSwitch" # VPC 内で vSwitch を作成できるゾーンをクエリします
# available_instance_type = "ecs.g7.large" # VPC 内で ECS インスタンスを作成できるゾーンをクエリします
# available_resource_creation = "slb" # VPC 内で SLB インスタンスを作成できるゾーンをクエリします
}
# デュアルスタック VPC を作成します
resource "alicloud_vpc" "example_vpc" {
vpc_name = "example_vpc_name"
cidr_block = "10.0.0.0/16"
enable_ipv6 = true # IPv6 を有効にします。無効にする場合は false に設定します
ipv6_isp = "BGP" # IPv6 CIDR ブロックタイプを指定します
}
# デュアルスタック vSwitch を作成します
resource "alicloud_vswitch" "example_vswitch" {
vswitch_name = "example_vswitch_name"
cidr_block = "10.0.0.0/24"
vpc_id = alicloud_vpc.example_vpc.id
zone_id = data.alicloud_zones.available_zones.zones.0.id
enable_ipv6 = true # IPv6 を有効にします。無効にする場合は false に設定します
ipv6_cidr_block_mask = 1 # vSwitch IPv6 CIDR ブロックの最後の 8 ビットを指定します
}
セカンダリ CIDR ブロックを使用する
VPC の作成時に指定する IPv4 CIDR ブロックは、プライマリ CIDR ブロックです。プライマリ CIDR ブロックで使用可能な IP がビジネスに不十分な場合、または不適切なネットワークプランニングによってアドレス不足が発生した場合は、セカンダリ CIDR ブロックを使用してアドレス空間を拡張します。
セカンダリ CIDR ブロックとプライマリ CIDR ブロックは同時に有効です。セカンダリ CIDR ブロックを使用して、vSwitch を作成し、ECS インスタンスなどのリソースをデプロイできます。
1. 100.64.0.0/10、224.0.0.0/4、127.0.0.0/8、または 169.254.0.0/16 を IPv4 セカンダリ CIDR ブロックとして使用することはできません。
2. セカンダリ CIDR ブロックは、プライマリ CIDR ブロックと重複することはできません。
3. 各 VPC は、それぞれ最大 5 つの IPv4 および IPv6 セカンダリ CIDR ブロックをサポートしています。
コンソール
セカンダリ CIDR ブロックを追加する
VPC の [基本情報] ページで、[CIDR ブロック管理] タブをクリックします。IPv4 または IPv6 セカンダリ CIDR ブロックを追加します。
IPv4 セカンダリ CIDR ブロックの場合、次の 3 つの方法で追加できます。
[推奨 CIDR ブロック]: 推奨 CIDR ブロック 10.0.0.0/16、172.16.0.0/16、または 192.168.0.0/16 を選択します。
[詳細設定]: セカンダリ CIDR ブロックをカスタマイズします。
[IPAM によって割り当てられた IPv4 CIDR ブロック]: IPAM を使用して、CIDR ブロックの競合を回避します。プロビジョニングされた CIDR ブロックを持つ IPAM プールが既にある場合は、IPAM プールを選択し、[サブネットマスク] を設定することをお勧めします。
IPv6 セカンダリ CIDR ブロックの場合:
VPC で IPv6 が有効になっていない場合は、[IPv6 を有効にする] をクリックし、タイプとして [BGP(マルチ ISP) を割り当てる] を選択します。[すべての VSwitch に対して IPv6 を自動的に有効にする] を選択するか、vSwitch の [IPv6 CIDR ブロック] 列で [IPv6 を有効にする] をクリックして、特定の vSwitch に対して IPv6 を有効にすることができます。
IPv6 が既に有効になっている VPC の場合は、[IPv6 CIDR ブロックを追加] をクリックし、[BGP(マルチ ISP) を割り当てる] を選択します。
セカンダリ CIDR ブロックを削除する
ターゲット VPC の [基本情報] ページで、[CIDR ブロック管理] > [IPv4 CIDR ブロック] タブまたは [IPv6 CIDR ブロック] タブをクリックし、削除するセカンダリ CIDR ブロックを見つけて、[アクション] 列の [削除] をクリックします。
API
AssociateVpcCidrBlock を呼び出して、セカンダリ CIDR ブロックを追加します。
UnassociateVpcCidrBlock を呼び出して、セカンダリ CIDR ブロックを削除します。
Terraform
Terraform は現在、IPv4 セカンダリ CIDR ブロックのみをサポートしています。
リソース: alicloud_vpc_ipv4_cidr_block
# VPC が作成されるリージョンを指定します
provider "alicloud" {
region = "cn-hangzhou"
}
# VPC ID を指定します
variable "vpc_id" {
default = "vpc-xxx" # 実際の VPC ID に置き換えます
}
# VPC にセカンダリ CIDR ブロックを作成します
resource "alicloud_vpc_ipv4_cidr_block" "example_secondary_cidr_block" {
vpc_id = var.vpc_id
secondary_cidr_block = "192.168.0.0/16" # セカンダリ CIDR ブロックを指定します
}
予約済み CIDR ブロック
予約済み CIDR ブロックは、他のリソースによって占有されていません。現在、これらは Elastic Network Interface(ENI)のセカンダリ プライベート IP アドレスにIP プレフィックスを割り当てるためにのみ使用されます。
1. 予約済み CIDR ブロックには、vSwitch のシステム予約アドレスを含めることはできません。
2. 各 vSwitch は、IPv4 と IPv6 の予約済み CIDR ブロックをそれぞれ最大 100 個サポートします。
3. IPv4 予約済み CIDR ブロックのサブネットマスクは 28 を超えることはできず、IPv6 予約済み CIDR ブロックのサブネットマスクは 80 を超えることはできません。
コンソール
予約済み CIDR ブロックを作成する
対象の vSwitch の[基本情報] ページで、[予約済み CIDR ブロック] タブをクリックします。IPv4 または IPv6 の予約済み CIDR ブロックを 2 つの方法で追加できます。
[CIDR ブロックを指定]: 予約する CIDR ブロックを指定します。
[サブネットマスクを指定]: システムは、使用可能な CIDR ブロックから予約済み CIDR ブロックを自動的に割り当てます。
IPv6 CIDR ブロックの場合、vSwitch で IPv6 が有効になっていない場合は、[IPv6 を有効にする] をクリックします。[IPv6 を有効にする] ダイアログボックスで、vSwitch の IPv6 CIDR ブロックを設定します。
VPC で IPv6 が有効になっていない場合は、[IPv6 を有効にする] ダイアログボックスで、最初に[IPv6 CIDR ブロックタイプ] をデフォルトの[BGP(マルチ ISP) を割り当てる] に設定してから、vSwitch の IPv6 CIDR ブロックを設定します。
占有 IP を表示する
対象の vSwitch の [基本情報] ページで、[予約済み CIDR ブロック] > [IPv4 CIDR ブロック] タブまたは[IPv6 CIDR ブロック] タブをクリックし、対象の予約済み CIDR ブロックを見つけて、[アクション] 列の[占有 IP を表示] をクリックして、占有 IP と対応する ENI を確認します。
予約済み CIDR ブロックを削除する
予約済み CIDR ブロックを削除する前に、CIDR ブロック内の IP が占有されていないことを確認してください。
対象の vSwitch の[基本情報] ページで、[予約済み CIDR ブロック] > [IPv4] タブまたは[IPv6] タブをクリックし、削除する予約済み CIDR ブロックを見つけて、[アクション] 列の[削除] をクリックします。
API
CreateVSwitchCidrReservation を呼び出して、予約済み CIDR ブロックを作成します。
GetVSwitchCidrReservationUsage を呼び出して、占有 IP を表示します。
DeleteVSwitchCidrReservation を呼び出して、予約済み CIDR ブロックを削除します。
Terraform
リソース: alicloud_vpc_vswitch_cidr_reservation
# VPC が作成されるリージョンを指定します
provider "alicloud" {
region = "cn-hangzhou" # リソースが配置されているリージョン
}
# vSwitch ID を指定します
variable "vsw_id" {
default = "vsw-xxx" # 実際の vSwitch ID に置き換えます
}
# 予約済み CIDR ブロックを作成します
resource "alicloud_vpc_vswitch_cidr_reservation" "example_cidr_reservation" {
vswitch_id = var.vsw_id
ip_version = "IPv4"
cidr_reservation_cidr = "10.0.0.128/26" # 予約済み CIDR ブロックを指定します
}
IPAM を使用して VPC を作成する
IPv4 CIDR ブロックを手動で構成するのは非効率的であり、アドレスの競合が発生する可能性があります。
IPAM は、IP の割り当てと管理を自動化するクラウドベースの IP アドレス管理ツールであり、ネットワーク管理を簡素化し、アドレスの競合を回避します。IPAM で計画し、IPAM と IPAM プールを作成し、IPAM プールから VPC に IPv4 CIDR ブロックを割り当てることができます。
コンソール
VPC コンソールの VPC の作成 ページに移動し、[IPAM によって割り当てられた IPv4 CIDR ブロック] を使用して、IPAM プールを選択し、サブネットマスクを設定して、IPAM プールから CIDR ブロックを割り当てます。
サブネットマスクを設定すると、システムは指定されたサブネットマスクの範囲内で最初に使用可能な CIDR ブロックを自動的に割り当てます。 また、IPAM プールでプロビジョニングされた CIDR ブロック内で IPv4 CIDR ブロックを調整することもできます。
VPC を作成する前に、IPAM コンソールで IPAM と IPAM プールを作成済みであることを確認してください。
API
IPAM プールをすでに作成している場合は、CreateVpc を呼び出すときに
Ipv4IpamPoolId
パラメーターを渡して IPAM プールを指定し、Ipv4CidrMask
パラメーターを渡して、IPAM プールからアドレスを新しい VPC の CIDR ブロックとして割り当てるためのサブネットマスクを指定します。 また、サブネットマスクを指定して CIDR ブロックを自動的に割り当てる代わりに、CidrBlock
パラメーターを渡して VPC CIDR ブロックを指定することもできます。IPAM プールを作成していない場合は、以下の API 操作を順番に呼び出して IPAM プールを作成し、上記のように VPC を作成します。
Terraform
リソース: vpc_ipam_ipam、alicloud_vpc_ipam_ipam_pool、alicloud_vpc_ipam_ipam_pool_cidr、alicloud_vpc
# Specify the region where IPAM, IPAM pool, and VPC are created
provider "alicloud" {
region = "cn-hangzhou"
}
# Create IPAM
resource "alicloud_vpc_ipam_ipam" "example_ipam" {
ipam_name = "example_ipam_name"
operating_region_list = ["cn-hangzhou"] # Specify the effective region of IPAM
}
# Create an IPAM address pool
resource "alicloud_vpc_ipam_ipam_pool" "example_parentIpamPool" {
ipam_scope_id = alicloud_vpc_ipam_ipam.example_ipam.private_default_scope_id # Specify the scope of the IPAM pool
ipam_pool_name = "example_parentIpamPool_name"
pool_region_id = alicloud_vpc_ipam_ipam.example_ipam.region_id # Specify the effective region of the IPAM pool
ip_version = "IPv4" # Specify the version of the IPAM pool
}
# Allocate a CIDR block to the IPAM address pool
resource "alicloud_vpc_ipam_ipam_pool_cidr" "example_ipamPoolCidr" {
cidr = "10.0.0.0/16" # Specify the CIDR block
ipam_pool_id = alicloud_vpc_ipam_ipam_pool.example_parentIpamPool.id # Specify the ID of the IPAM pool
}
# Create a VPC
resource "alicloud_vpc" "example_ipam_vpc" {
vpc_name = "example_ipam_vpc_name"
ipv4_ipam_pool_id = alicloud_vpc_ipam_ipam_pool.example_parentIpamPool.id # Specify the ID of the IPAM pool
ipv4_cidr_mask = 24 # IPv4 subnet mask
}
詳細情報
デフォルト VPC と vSwitch
デフォルト VPC と vSwitch は、ビジネスの検証とデプロイを迅速に行うのに役立ちます。ただし、長期的なネットワークサービスサポートが必要な場合、またはコア本番システムをホストする場合は、ビジネスアーキテクチャに基づいてカスタム VPC と vSwitch を作成することをお勧めします。詳細なネットワークプランニングを通じて、リソース隔離、セキュリティコントロール、および弾力的なスケーリングを実現できます。
各リージョンには 1 つのデフォルト VPC のみ、各ゾーンには 1 つのデフォルト vSwitch のみ作成できます。デフォルト VPC と vSwitch は、クォータにはカウントされません。
VPC がないリージョンで ECS、CLB、または RDS インスタンスを作成する場合、システムにデフォルト VPC と vSwitch を作成させることができます。この方法で作成されたデフォルト VPC の CIDR ブロックは 172.16.0.0/12 です。
デフォルト VPC を作成していないリージョンでは、CreateDefaultVpc と CreateDefaultVSwitch を呼び出して、デフォルト VPC と vSwitch を作成できます。デフォルト VPC の CIDR ブロックは 172.xx.0.0/16 です。
これらのメソッド以外に、自分で作成する VPC と vSwitch はデフォルトではありません。デフォルト VPC と vSwitch を削除することはできますが、デフォルトとデフォルト以外の VPC と vSwitch を変換することはできません。
システム予約 IP
vSwitch のアドレス空間には、システム予約 IP があります。これらのアドレスを ECS インスタンスなどのリソースに割り当てることはできません。
IPv4 の場合、各 vSwitch の最初と最後の 3 つの IP は予約アドレスです。
たとえば、vSwitch の CIDR ブロックが 192.168.1.0/24 の場合、システム予約アドレスには 192.168.1.0、192.168.1.253、192.168.1.254、および 192.168.1.255 が含まれます。
IPv6 の場合、各 vSwitch の最初と最後の 9 つの IP は予約アドレスです。
たとえば、vSwitch の IPv6 CIDR ブロックが 2408:xxxx:xxxx:6eff::/64 の場合、予約アドレスには最初の IP アドレス 2408:xxxx:xxxx:6eff:: と最後の 9 つの IP アドレス、2408:xxxx:xxxx:6eff:ffff:ffff:ffff:fff7、2408:xxxx:xxxx:6eff:ffff:ffff:ffff:fff8、2408:xxxx:xxxx:6eff:ffff:ffff:ffff:fff9、2408:xxxx:xxxx:6eff:ffff:ffff:ffff:fffa、2408:xxxx:xxxx:6eff:ffff:ffff:ffff:fffb、2408:xxxx:xxxx:6eff:ffff:ffff:ffff:fffc、2408:xxxx:xxxx:6eff:ffff:ffff:ffff:fffd、2408:xxxx:xxxx:6eff:ffff:ffff:ffff:fffe、および 2408:xxxx:xxxx:6eff:ffff:ffff:ffff:ffff が含まれます。
クロスアカウント認証
別のアカウントに属する CEN インスタンス、仮想ボーダールータ (VBR)、または Express Connect ルータ (ECR) に VPC を接続する前に、VPC でクロスアカウント認証を実行する必要があります。
詳細については、「CEN を承認する」、「VBR を承認する」、および「ECR を承認する」をご参照ください。
認証後にのみ、別のアカウントは VPC を作成する際、または VBR 接続、あるいは VPC を ECR に関連付ける際に VPC インスタンスを選択できます。
1. アカウントとは、RAM ユーザーではなく、Alibaba Cloud アカウントを指します。
2. 中国サイト (aliyun.com) のアカウントと国際サイト (alibabacloud.com) のアカウント間では、クロスアカウント認証はサポートされていません。