リソース共有を使用して、デフォルト以外の VPC 内の vSwitch を他の Alibaba Cloud アカウントと共有できます。これにより、vSwitch 参加者は、共有 vSwitch 内に Elastic Compute Service (ECS) インスタンスや ApsaraDB for RDS インスタンスなどのクラウドリソースを作成できます。vSwitch 参加者は、自分が作成したリソースのみを表示および管理でき、他のアカウントが作成したリソースは表示、変更、削除できません。
仕組み
アカウント A が vSwitch をアカウント B、C、D と共有すると、各アカウントは共有 vSwitch 内にクラウドリソースを作成できます。これらのクラウドリソースは vSwitch の IP アドレス空間を共有し、デフォルトで相互に通信できます。vSwitch 所有者 (アカウント A) は、ネットワーク ACL またはセキュリティグループを設定して、vSwitch 間またはクラウドリソース間のトラフィックを分離することもできます。
共有 VPC の一般的なユースケース:
-
企業ネットワークの一元管理:ネットワーク運用チームが VPC を一元的に計画、構成、管理し、vSwitch を事業部門と共有します。事業部門は、ネットワーク設定を管理することなく、ビジネス要件に基づいて共有 vSwitch 内に ECS インスタンスなどのリソースを作成および管理できます。
-
複数アカウント環境におけるネットワーク運用の簡素化:複数のアカウントと vSwitch を共有することで、各アカウントごとに個別の VPC を設定する必要がなくなります。これにより、VPC の数を大幅に削減し、複数アカウント環境でのネットワーク運用を簡素化できます。
制限事項
-
デフォルト VPC は共有をサポートしていません。共有 VPC 機能を使用する前に、カスタム VPC を作成する必要があります。デフォルト VPC に既存のクラウドリソースがある場合は、デフォルト以外の VPC に移行または再作成することを検討してください。
-
既存のクラウドリソースに共有 VPC を使用する前に、「サポートされているクラウドリソースの種類」と「vSwitch 所有者とvSwitch 参加者の権限」を確認し、この方法が適用可能かどうかを判断してください。適用可能な場合は、共有 VPC で既存リソースを再作成することを推奨します。クラウドリソースが VPC 間移行をサポートしている場合は、共有 VPC に直接移行することもできます。この方法が適用できない場合、または再作成や移行が困難な場合は、VPC ピアリング接続またはCloud Enterprise Network (CEN) を使用して、アカウント間のネットワーク通信を有効にしてください。
サポートされているクラウドリソースの種類
-
ECS インスタンス
-
SLB インスタンス
ApsaraDB for RDS インスタンス
-
Container Service Terway コンポーネント
-
ApsaraDB for MongoDB インスタンス
-
ApsaraDB for Redis インスタンス
-
ApsaraMQ for Kafka インスタンス
-
Elasticsearch
-
Container Registry (ACR) インスタンス
-
PolarDB for MySQL クラスター
-
ApsaraMQ for RocketMQ インスタンス
-
Microservices Engine (MSE) インスタンス
vSwitch 所有者とvSwitch 参加者の権限
共有 vSwitch の場合:
|
リソース |
vSwitch 所有者 |
vSwitch 参加者 |
|
クラウドリソース (ECS インスタンスや ApsaraDB for RDS インスタンスなど) |
各アカウントは、自分が作成したリソースのみを表示および管理できます。他のアカウントが作成したリソースにはアクセスできません。 |
|
|
セキュリティグループ |
各アカウントは、自分が作成したセキュリティグループのみを表示および管理できます。他のアカウントが作成したセキュリティグループにはアクセスできません。 |
|
|
Elastic Network Interface (ENI) |
DescribeNetworkInterfaces API を呼び出して参加者が作成した ENI を表示できますが、管理はできません。 |
自分が作成した ENI のみを表示および管理できます。 |
|
Virtual Private Cloud (VPC)、vSwitch、ルートテーブル、ネットワーク ACL、セカンダリ CIDR ブロック |
すべての権限 |
表示のみ |
|
予約済み CIDR ブロック |
すべての権限 |
権限なし |
|
IPv6 ゲートウェイ |
すべての権限 |
|
|
フローログ |
|
ENI レベルのフローログのみ作成できます。これらのフローログは、vSwitch 参加者が所有する ENI にのみ適用されます。 |
|
NAT ゲートウェイ、VPN ゲートウェイ、Cloud Enterprise Network、VPC ピアリング接続 |
すべての権限 |
これらのネットワークリソースは表示または管理できませんが、VPC 外部のネットワークに接続するために使用できます。 |
|
タグ |
共有によってタグ付けは影響を受けません。vSwitch 所有者と vSwitch 参加者は、それぞれ自分のリソースにタグを付けることができます。これらのタグは独立しており、他のアカウントからは表示できません。 |
|
vSwitch の共有解除後:
|
リソース |
vSwitch 参加者 |
|
クラウドリソース (ECS インスタンスや ApsaraDB for RDS インスタンスなど) |
作成したクラウドリソースは引き続き管理できますが、新規作成はできません。 |
|
vSwitch と関連リソース |
共有 vSwitch および VPC、ルートテーブル、セカンダリ CIDR ブロック、ネットワーク ACL などの関連リソースは表示できなくなります。 |
|
タグ |
システムは、参加者が共有 vSwitch に関連付けていたタグを削除します。 |
共有vSwitchでのクラウドリソースの作成
vSwitch 所有者は、vSwitch を任意の Alibaba Cloud アカウントと共有するか、リソースディレクトリ内のアカウントとのみ共有できます。所有者が共有を有効化すると、参加者は共有 vSwitch 内にクラウドリソースを作成できます。
コンソール
手順1:共有の有効化
このセクションでは、任意のアカウントと vSwitch を共有する方法について説明します。リソースディレクトリ内でのみリソースを共有するには、「リソースディレクトリ内でのみリソースを共有する」をご参照ください。
-
vSwitch 所有者の Alibaba Cloud アカウントでログオンし、リソース管理コンソールの[リソース共有] > [共有中のリソース] ページに移動します。上部メニューで、リソースが存在するリージョンを選択し、リソース共有の作成 をクリックします。表示されたページで、次の手順を実行します:
[ステップ 1]:リソース共有名 を入力し、共有する vSwitch を選択します。
[ステップ 2]:システムは、デフォルトで [AliyunRSDefaultPermissionVSwitch] 権限を選択します。
[ステップ 3]:依頼人のスコープ セクションで すべてのアカウント を選択します。追加方法 で 手動で追加 を選択します。vSwitch 参加者のAlibaba Cloud アカウント ID を入力し、追加 をクリックします。
[ステップ 4]:設定内容を確認し、確認する をクリックします。
-
vSwitch 参加者のアカウントでログオンし、共有招待を承諾します:
-
リソース管理コンソールの[リソース共有] > [共有されたリソース] ページに移動します。
-
上部メニューで、共有リソースが存在するリージョンを選択します。対象の共有ユニットを見つけ、ステータス 列の 承認 をクリックします。
-
招待を承諾すると、共有 vSwitch にアクセスできます。この共有ユニットに新たに追加されたリソースは自動的に承諾されます。
-
手順2:クラウドリソースの作成
vSwitch 参加者のアカウントでログオンします:
-
VPC コンソールのvSwitchページに移動します。上部メニューで、共有 vSwitch のリージョンを選択します。すると、"from sharing" としてマークされた共有 vSwitch を確認できます。
-
ECS、ApsaraDB for RDS、または SLB インスタンスを作成するには、対象の共有 vSwitch を見つけ、操作 列の クラウドサービスの追加 をクリックします。
-
その他のサポートされているクラウドリソースの種類については、リソース作成時に共有 vSwitch を選択します。
API
手順1:共有の有効化
-
方法1:任意のアカウントと共有
-
vSwitch 所有者の認証情報を使用してCreateResourceShare API を呼び出し、共有ユニットを作成します。
AllowExternalTargetsパラメーターをTrueに設定してください。 -
vSwitch 参加者の認証情報を使用してListResourceShareInvitations API を呼び出して受信した招待を照会します。その後、AcceptResourceShareInvitation API を呼び出して招待を承諾します。
-
-
方法2:リソースディレクトリ内でのみ共有
-
リソースディレクトリの管理アカウントの認証情報を使用してEnableSharingWithResourceDirectory API を呼び出し、リソースディレクトリ内での共有を有効化します。
-
vSwitch 所有者の認証情報を使用してCreateResourceShare API を呼び出し、共有ユニットを作成します。
AllowExternalTargetsパラメーターをFalseに設定してください。
-
手順2:クラウドリソースの作成
vSwitch 参加者のアカウントでログオンし、次の手順を実行します:
-
DescribeVSwitches API を呼び出し、vSwitch のリストを取得します。
-
リストから、
ShareTypeパラメーターがSharingの共有 vSwitch をフィルタリングします。 -
目的のクラウドリソースを作成する API を呼び出します。たとえば、ECS インスタンスの場合はRunInstances API を使用します。リクエストで共有 vSwitch を指定します。
Terraform
手順1:共有の有効化
vSwitch 所有者が共有ユニットを作成します:
Terraform は現在、リソースディレクトリ内での共有のみをサポートしています。続行する前に、リソースディレクトリの管理アカウントでリソースディレクトリの共有を有効化していることを確認してください。
リソース:alicloud_resource_manager_resource_share、alicloud_resource_manager_shared_resource、alicloud_resource_manager_shared_target
# リージョンを指定します。
provider "alicloud" {
region = "cn-hangzhou"
}
# 共有ユニット名を指定します。
resource "alicloud_resource_manager_resource_share" "example_unit" {
resource_share_name = "example_unit_name"
}
# 共有する vSwitch を指定します。
resource "alicloud_resource_manager_shared_resource" "example_vsw" {
resource_share_id = alicloud_resource_manager_resource_share.example_unit.id
resource_id = "vsw-bp1omg98fixldnwcxxxxx" # 共有 vSwitch の実際の ID に置き換えます。
resource_type = "VSwitch" # リソースタイプは VSwitch です。
}
# 共有 vSwitch の参加者を指定します。
resource "alicloud_resource_manager_shared_target" "example_target" {
resource_share_id = alicloud_resource_manager_resource_share.example_unit.id
target_id = "10xxxxxxxxxxxxxx" # vSwitch 参加者の実際の UID に置き換えます。
}
手順2:クラウドリソースの作成
次の例は、vSwitch 参加者が共有 vSwitch で ECS インスタンスを作成する方法を示します:
リソース:alicloud_security_group、alicloud_instance
データソース:alicloud_vswitches
# リージョンを指定します。
provider "alicloud" {
region = "cn-hangzhou"
}
# 共有 vSwitch を指定します。
variable "vsw_id" {
default = "vsw-bp1omg98fixldnwcxxxxx" # 共有 vSwitch の実際の ID に置き換えます。
}
# 対象の共有 vSwitch に関する情報を取得します。
data "alicloud_vswitches" "example_vsw" {
ids = [var.vsw_id]
}
# セキュリティグループを作成します。
resource "alicloud_security_group" "example_sg" {
security_group_name = "example_sg_name"
vpc_id = data.alicloud_vswitches.example_vsw.vswitches[0].vpc_id
}
# ECS インスタンスを作成します。
resource "alicloud_instance" "example_ecs" {
instance_name = "example_ecs_name"
instance_type = "ecs.e-c1m1.large"
security_groups = [alicloud_security_group.example_sg.id]
vswitch_id = var.vsw_id
image_id = "aliyun_3_x64_20G_alibase_20250117.vhd"
system_disk_category = "cloud_essd"
}
共有vSwitchと参加者の管理
vSwitch 所有者は次の管理タスクを実行できます:
-
共有 vSwitch の表示
-
共有 vSwitch の参加者の表示
-
追加の vSwitch の共有
-
vSwitch を追加のアカウントと共有
コンソール
-
[リソース共有] > [共有中のリソース] ページに移動します。上部メニューで、共有リソースが存在するリージョンを選択します。
-
共有するリソース ページで、次の操作を実行できます:
-
共有 vSwitch の表示:共有リソース タブをクリックします。
-
共有 vSwitch の参加者の表示:principals タブをクリックします。
-
-
共有ユニット タブをクリックし、対象の共有ユニットを見つけて、その ID をクリックします。
-
リソース または 依頼人 タブをクリックし、この共有ユニット内で共有されている vSwitch と参加者を表示します。
リソース および 依頼人 タブの ステータス が 関連付け済み の場合、リソースとプリンシパルは共有に正常に関連付けられています。
-
対象の共有ユニットのページで、右上の リソース共有の編集 をクリックします。この共有ユニット内で、次の操作を実行できます:
-
共有 vSwitch の追加または削除:[ステップ 1] で、vSwitch のチェックボックスを選択またはクリアします。
-
参加者の追加または削除:[ステップ 3] で、アカウント UID を追加または削除します。
-
-
設定内容を確認し、リソース共有の編集 ページの [ステップ 4] で 確認する をクリックします。
API
vSwitch 所有者は、次の API を使用して共有 vSwitch とその参加者を表示できます:
-
ListSharedResources API を呼び出し、共有 vSwitch のリストを表示します。
-
ListSharedTargets API を呼び出し、共有 vSwitch の参加者のリストを表示します。
vSwitch 所有者は、次の API を使用して、共有ユニット内の共有 vSwitch と参加者を管理できます:
-
ListResourceShareAssociations API を呼び出し、共有ユニット内の vSwitch または参加者を表示します。
-
AssociateResourceShare API を呼び出し、共有ユニットに vSwitch または参加者を追加します。
-
DisassociateResourceShare API を呼び出し、共有ユニットから vSwitch または参加者を削除します。
追加情報
課金
共有 VPC 機能は無料です。ただし、リソース所有者と参加者には、ECS インスタンスや ApsaraDB for RDS インスタンスなど、作成したクラウドリソースに対して課金されます。
サポートされているリージョン
エリア | リージョン |
アジアパシフィック - 中国 | China (Hangzhou)、China (Shanghai)、China (Qingdao)、China (Beijing)、China (Zhangjiakou)、China (Hohhot)、China (Ulanqab)、China (Shenzhen)、China (Heyuan)、China (Guangzhou)、China (Chengdu)、China (Hong Kong) |
アジアパシフィック - その他 | Japan (Tokyo)、South Korea (Seoul)、Singapore、Malaysia (Kuala Lumpur)、Indonesia (Jakarta)、Philippines (Manila)、Thailand (Bangkok) |
ヨーロッパおよび南北アメリカ | Germany (Frankfurt)、UK (London)、US (Silicon Valley)、US (Virginia) |
中東 | Saudi Arabia (Riyadh) - パートナーリージョン |
クォータ
クォータ名 | 説明 | デフォルト制限値 | 調整可能 |
vpc_quota_sharedvpc_share_user_num_per_vpc | VPC を共有できる vSwitch プリンシパルの最大数。 | 50 | |
vpc_quota_sharedvpc_share_user_num_per_vswitch | vSwitch を共有できる vSwitch プリンシパルの最大数。 | 50 | |
vpc_quota_sharedvpc_accept_shared_vswitch_num | vSwitch プリンシパルが受け入れ可能な共有 vSwitch の最大数。 | 30 |