デフォルトでは、VPC (Virtual Private Cloud) は互いに分離されています。VPC ピアリング接続を使用すると、同一または異なるリージョンおよびアカウントにある 2 つの VPC をプライベートネットワーク経由で接続できます。
仕組み
VPC ピアリング接続は、2 つの VPC をプライベートネットワーク経由で接続します。これにより、両方の VPC にデプロイされたリソースが、プライベート IP アドレスを使用して相互にアクセスできるようになります。以下の手順に従ってください。
VPC ピアリング接続の作成: VPC が同一アカウントにある場合、システムは自動的にリクエストを受け入れ、接続を作成します。VPC が異なるアカウントにある場合、受信側アカウントはピアリング接続の詳細ページで接続リクエストを承諾する必要があります。
両方の VPC でのルートの構成: リソースアクセスを有効にするには、ピア VPC を指すルートを構成する必要があります。
低コストで高帯域幅を必要とする多くの VPC を接続するには、VPC ピアリング接続と CEN の両方を使用して、複雑なハイブリッドネットワークを構築します。CEN と VPC ピアリング接続の違いについては、「VPC の接続」をご参照ください。
ピアリング接続の構成
コンソール
事前チェック:
2 つの VPC の CIDR ブロックが重複していないことを確認します。重複している場合は、サービスを重複しない CIDR ブロックを持つ VPC に移行します。
VPC ピアリング接続を初めて使用する場合は、VPC を所有するアカウントで CDT が有効になっていることを確認してください。
ピアリング接続の作成:
VPC コンソールの VPC コンソール - VPC ピアリング接続 ページに移動します。上部のナビゲーションバーから VPC があるリージョンを選択し、[VPC ピアリング接続の作成] をクリックします。
ピアリング接続の作成: 受信側アカウントとリージョンタイプを選択します。
受信側アカウントタイプ:
[同一アカウント]: システムは自動的にリクエストを受け入れ、接続を確立します。
[クロスアカウント]: 受信側アカウントを使用して、VPC コンソール - VPC ピアリング接続 ページに移動します。上部のナビゲーションバーで、VPC があるリージョンを選択します。ターゲットのピアリング接続の [操作] 列で、[承諾] をクリックします。
受信側は、接続リクエストを [拒否] または [削除] できます。詳細については、「VPC ピアリング接続のステータス」をご参照ください。
受信側リージョンタイプを [リージョン間] に設定した場合は、[リンクタイプ] と [受信側リージョン] を構成します。
プラチナとゴールドは、異なるレベルのデータ転送品質を提供し、異なる 課金単価 に対応します。
プラチナ (可用性コミットメント 99.995%): 証券取引、オンライン音声通話、ビデオ会議、リアルタイムゲームなど、ジッターや遅延に非常に敏感で、高い接続品質を必要とするサービス向け。
ゴールド (可用性コミットメント 99.95%): データ同期やファイル転送など、接続品質に敏感でないサービス向け。
ルートの構成:
IPv6 アドレスを使用するには、ピア VPC の IPv6 CIDR ブロックを指すルートを構成します。
リクエスト元 VPC アカウントの使用:
[VPC ピアリング接続] ページで、ターゲットのピアリング接続を見つけ、その [受信側 CIDR] を表示します。
[リクエスト元 VPC] 列で、[ルートの構成] をクリックします。接続したいリソースを含む vSwitch に関連付けられている [ルートテーブル] を選択します。[宛先 CIDR ブロック] を受信側 CIDR に設定します。
受信側 VPC アカウントの使用:
[VPC ピアリング接続] ページで、[リクエスト元 CIDR] を表示します。
[受信側 VPC] 列で、[ルートの構成] をクリックします。接続したいリソースを含む vSwitch に関連付けられている [ルートテーブル] を選択します。[宛先 CIDR ブロック] をリクエスト元 CIDR に設定します。
接続性の検証:
到達可能性アナライザー: 実際のパケットは送信されず、サービスに影響を与えません。
ピアリング接続インスタンスの [診断] 列で、 を選択します。または、ピアリング接続のインスタンス ID をクリックして タブに移動します。
ソースと宛先を構成します。プロトコルとポート番号を指定して、実際のシナリオをシミュレートし、ソースと宛先の間の接続性を確認します。
システムはルート、セキュリティグループ、およびネットワーク ACL の構成をチェックし、診断結果を提供します。
パスが片方向で到達可能な場合は、[逆パス分析] をクリックし、逆パスを構成して接続性を確認します。
手動検証: リクエスト元 VPC の ECS インスタンスで、
ping <ピア ECS インスタンスのプライベート IP アドレス>コマンドを実行します。
リージョン間ピアリング接続を作成した後、インスタンス ID をクリックし、[編集] をクリックして、リージョン間ピアリング接続の [帯域幅 (Mbit/s)] と [リンクタイプ] を変更できます。
両方のアカウントで VPC ピアリング接続を削除できます。削除後、プライベートアクセスは中断されます。この操作は元に戻せません。サービスに影響がないことを確認してください。
API
ピアリング接続の作成
CreateVpcPeerConnection を呼び出して VPC ピアリング接続を作成します。
2 つの VPC が異なるアカウントに属している場合、受信側アカウントを使用して AcceptVpcPeerConnection を呼び出してリクエストを承諾します。
受信側は RejectVpcPeerConnection を呼び出して接続リクエストを拒否できます。
リクエスト元または受信側アカウントのいずれかを使用して GetVpcPeerConnectionAttribute を呼び出し、それぞれの VPC の CIDR ブロックを取得します。
リクエスト元または受信側アカウントのいずれかを使用して CreateRouteEntry を呼び出し、ピアリング接続を指すルートを作成します。
リージョン間ピアリング接続の変更
ModifyVpcPeerConnection を呼び出して、リージョン間 VPC ピアリング接続の帯域幅またはリンクタイプを変更します。
ピアリング接続の削除
DeleteRouteEntry を呼び出して、ピアリング接続を指すルートを削除します。
DeleteVpcPeerConnection を呼び出して、VPC ピアリング接続を削除します。
到達可能性アナライザー
到達可能性アナライザーを使用して接続性を確認するには、次の API 操作を順番に呼び出します。
Terraform
同一アカウントのピアリング接続
リソース: alicloud_vpc_peer_connection, alicloud_route_entry
データソース: alicloud_account
# VPC が属するアカウント
data "alicloud_account" "default" {}
provider "alicloud" {
alias = "local"
region = "cn-hangzhou" # リクエスト元 VPC があるリージョン。
}
provider "alicloud" {
alias = "accepting"
region = "cn-beijing" # 受信側 VPC のリージョン。リクエスト元 VPC のリージョンと同じにすることができます。受信側 VPC のリージョンに基づいて構成します。
}
# リクエスト元 VPC ID
variable "local_vpc_id" {
default = "vpc-bp1c******"
}
# 受信側 VPC ID
variable "accepting_vpc_id" {
default = "vpc-2zev******"
}
# VPC ピアリング接続の作成
resource "alicloud_vpc_peer_connection" "example_peer_connection" {
provider = alicloud.local
peer_connection_name = "example_peer_connection_name"
vpc_id = var.local_vpc_id # リクエスト元 VPC ID
accepting_ali_uid = data.alicloud_account.default.id # 受信側アカウント ID
accepting_region_id = "cn-beijing" # 受信側 VPC があるリージョン
accepting_vpc_id = var.accepting_vpc_id # 受信側 VPC ID
bandwidth = 1024 # 帯域幅 (Mbit/s)。このパラメーターは、リクエスト元リージョンと受信側リージョンが異なる場合にのみ構成できます。
link_type = "Gold" # リンクタイプ。このパラメーターは、リクエスト元リージョンと受信側リージョンが異なる場合にのみ構成できます。
}
# リクエスト元 VPC のルートを構成
resource "alicloud_route_entry" "example_local_route" {
provider = alicloud.local
route_table_id = "vtb-bp1a******" # リクエスト元インスタンスがある vSwitch にバインドされたルートテーブル
destination_cidrblock = "172.16.0.0/12" # 受信側 VPC の CIDR ブロック
nexthop_type = "VpcPeer" # ネクストホップは VPC ピアリング接続
nexthop_id = alicloud_vpc_peer_connection.example_peer_connection.id
}
# 受信側 VPC のルートを構成
resource "alicloud_route_entry" "example_acceptor_route" {
provider = alicloud.accepting
route_table_id = "vtb-2ze1******" # 受信側インスタンスがある vSwitch にバインドされたルートテーブル
destination_cidrblock = "10.0.0.0/8" # リクエスト元 VPC の CIDR ブロック
nexthop_type = "VpcPeer" # ネクストホップは VPC ピアリング接続
nexthop_id = alicloud_vpc_peer_connection.example_peer_connection.id
}
クロスアカウントのピアリング接続
リソース: alicloud_vpc_peer_connection, alicloud_vpc_peer_connection_accepter, alicloud_route_entry
provider "alicloud" {
alias = "local"
region = "cn-hangzhou" # リクエスト元 VPC のリージョン
}
# 受信側 VPC のリージョン。リクエスト元 VPC のリージョンと同じにすることができます。受信側 VPC のリージョンに基づいて構成する必要があります。
variable "accepting_region" {
default = "cn-beijing"
}
# 受信側アカウント
variable "accepting_uid" {
default = "1234******"
}
# 受信側アカウントの AccessKey ID
variable "access_key_id" {
description = "インフラストラクチャを操作するための AccessKey ID"
}
# 受信側アカウントの AccessKey シークレット
variable "access_key_secret" {
description = "インフラストラクチャを操作するための AccessKey シークレット"
}
provider "alicloud" {
alias = "acceptor"
region = var.accepting_region
access_key = var.access_key_id
secret_key = var.access_key_secret
}
# リクエスト元 VPC ID
variable "local_vpc_id" {
default = "vpc-2ze0******"
}
# 受信側 VPC ID
variable "accepting_vpc_id" {
default = "vpc-wz9e******"
}
# VPC ピアリング接続の作成
resource "alicloud_vpc_peer_connection" "example_peer_connection" {
provider = alicloud.local
peer_connection_name = "example_peer_connection_name"
vpc_id = var.local_vpc_id # リクエスト元 VPC ID
accepting_ali_uid = var.accepting_uid # 受信側アカウント ID
accepting_region_id = var.accepting_region # 受信側リージョン
accepting_vpc_id = var.accepting_vpc_id # 受信側 VPC ID
bandwidth = 1024 # 帯域幅 (Mbit/s)。このパラメーターは、リクエスト元リージョンと受信側リージョンが異なる場合にのみ構成できます。
link_type = "Gold" # リンクタイプ。このパラメーターは、リクエスト元リージョンと受信側リージョンが異なる場合にのみ構成できます。
}
# 受信側がピアリング接続リクエストを承諾
resource "alicloud_vpc_peer_connection_accepter" "example_peer_connection_accepter" {
provider = alicloud.acceptor
instance_id = alicloud_vpc_peer_connection.example_peer_connection.id
}
# リクエスト元 VPC のルートを構成
resource "alicloud_route_entry" "example_local_route" {
provider = alicloud.local
route_table_id = "vtb-2zel******" # リクエスト元インスタンスがある vSwitch にバインドされたルートテーブル
destination_cidrblock = "192.168.0.0/24" # 受信側 VPC の CIDR ブロック
nexthop_type = "VpcPeer" # ネクストホップは VPC ピアリング接続
nexthop_id = alicloud_vpc_peer_connection.example_peer_connection.id
}
# 受信側 VPC のルートを構成
resource "alicloud_route_entry" "example_acceptor_route" {
provider = alicloud.acceptor
route_table_id = "vtb-wz95******" # 受信側インスタンスがある vSwitch にバインドされたルートテーブル
destination_cidrblock = "172.16.0.0/12" # リクエスト元 VPC の CIDR ブロック
nexthop_type = "VpcPeer" # ネクストホップは VPC ピアリング接続
nexthop_id = alicloud_vpc_peer_connection.example_peer_connection.id
}
ネットワーク接続のトラブルシューティング
チェックリスト | 検証 | 解決策 |
ピアリング接続のステータス | ピアリング接続の [ステータス] が [アクティブ化済み] であるかどうかを確認します。 | ステータスが [承諾中] の場合、受信側アカウントに連絡して接続を承諾してもらいます。 |
CIDR ブロック | [リクエスト元 CIDR] と [受信側 CIDR] を確認します:
|
|
ルート | ピアリング接続詳細ページの [ルートエントリリスト] で、以下を確認します:
| 両方の VPC のルートを確認して変更します。 |
アクセスルール |
| セキュリティグループ、ネットワーク ACL、および RDS ホワイトリストがすべてピア IP アドレスからのトラフィックを許可していることを確認します。 |
例
3 つの VPC を接続する
VPC ピアリング接続のルートを構成する場合:
宛先 CIDR ブロックをピア VPC の CIDR ブロックに設定します。これにより、すべてのインスタンスが相互にアクセスでき、管理が簡素化されます。
より具体的なルートを構成し、宛先 CIDR ブロックを vSwitch CIDR ブロックまたはピア VPC 内の特定のインスタンスの IP アドレスに設定します。ただし、新しいインスタンスが通信を必要とする場合は、ルートテーブルを手動で更新する必要があります。
たとえば、VPC1 は VPC2 の vSwitch 3 CIDR ブロックと VPC3 の ECS04 を指すルートで構成されています。したがって、VPC1 のリソースは、プライベートネットワークを介して vSwitch 3 と ECS04 のリソースとのみ通信できます。VPC2 と VPC3 は、ピア VPC の CIDR ブロックを指すルートで構成されています。これにより、リソース間の完全な相互接続が可能になります。
複数の VPC と中央 VPC を接続する
このシナリオでは、ブランチ VPC は中央 VPC にデプロイされたサービスにアクセスできますが、ブランチ VPC 同士は通信できません。一般的なシナリオは次のとおりです:
複数部門の分離: 異なる事業部門の VPC は相互に通信できませんが、中央 VPC の共有サービスにアクセスする必要があります。
複数ユーザーの分離: サービスは専用の VPC にデプロイされ、複数のユーザーに提供されます。各ユーザー VPC はサービス VPC と通信できますが、ユーザー VPC 同士は通信できません。
モニタリングと O&M
リージョン間ピアリング接続の場合、トラフィック帯域幅やパケット損失率などのモニタリングデータを表示できます。CloudMonitor を活用することで、しきい値ベースのアラートルールを作成して、接続ステータスをリアルタイムで監視できます。これにより、ネットワークの輻輳や障害を迅速に検出して解決できます。
リージョン内ピアリング接続のメトリックは表示できません。
コンソール
ピアリング接続の監視
VPC コンソールの VPC コンソール - VPC ピアリング接続 ページに移動します。上部のナビゲーションバーで、VPC があるリージョンを選択します。
対象のリージョン間 VPC ピアリング接続の [モニタリング] 列にある
アイコンをクリックすると、帯域幅やパケット損失などのメトリックを表示できます。
CloudMonitor アラート
CloudMonitor コンソールの [アラートルール] ページに移動し、アラートルールの作成 をクリックします。
VPC ピアリング接続メトリックの各アラートレベルのしきい値を構成します。メトリックがしきい値に達すると、指定された [アラート連絡先グループ] にアラート通知が送信されます。また、アラートルールの [操作] 列にある [アラート履歴] をクリックして、アラートのタイムラインを表示することもできます。
[操作] 列でアラートルールを [変更]、[無効化]、または [削除] できます。
API
PutResourceMetricRules を呼び出して、VPC ピアリング接続のメトリックに対して複数のしきい値ベースのアラートルールを設定します。詳細については、「ピアリング接続の CloudMonitor メトリック」をご参照ください。
EnableMetricRules を呼び出して、1 つ以上のアラートルールを有効にします。
DisableMetricRules を呼び出して、アラートルールを無効にします。
DeleteMetricRules を呼び出して、1 つ以上のアラートルールを削除します。
Terraform
しきい値ベースのアラートルールを構成するには、「ピアリング接続の CloudMonitor メトリック」をご参照ください。
リソース: alicloud_cms_alarm_contact, alicloud_cms_alarm_contact_group, alicloud_cms_alarm
# 監視対象のピアリング接続インスタンスの ID
variable "vpc_peer_id" {
default = "pcc-28cv******"
}
# アラート連絡先の作成
resource "alicloud_cms_alarm_contact" "example_cms_alarm_contact" {
alarm_contact_name = "example_cms_alarm_contact_name"
describe = "example_vpc_peer_alarm"
channels_mail = "xxx@xxx.com" # メールアドレスに変更してください。
lifecycle {
ignore_changes = [channels_mail]
}
}
# アラート連絡先グループの作成
resource "alicloud_cms_alarm_contact_group" "example_cms_alarm_contact_group" {
alarm_contact_group_name = "example_cms_alarm_contact_group"
contacts = [alicloud_cms_alarm_contact.example_cms_alarm_contact.id] # アラート連絡先
}
# アラートルールの作成
resource "alicloud_cms_alarm" "example_cms_alarm" {
name = "example_cms_alarm_name"
project = "acs_vpcpeer" # クラウドサービスのデータ名前空間
metric = "IntranetRX" # メトリックの名前
period = 60 # 統計期間
contact_groups = [alicloud_cms_alarm_contact_group.example_cms_alarm_contact_group.alarm_contact_group_name]
effective_interval = "06:00-20:00" # 有効期間
metric_dimensions = <<EOF
[
{
"instanceId": "${var.vpc_peer_id}"
}
]
EOF
escalations_critical { # 情報レベルのアラート
statistics = "Sum" # アラートの統計メソッド
comparison_operator = ">=" # しきい値の比較演算子
threshold = 104857600 # しきい値
times = 2 # アラートのリトライ回数
}
}よくある質問
ピアリング接続はクロスボーダー接続をサポートしていますか?
はい。非クロスボーダー接続とクロスボーダー接続の両方がサポートされています。
非クロスボーダー: 中国本土の 2 つのリージョン、または中国本土以外の 2 つのリージョンを接続します。
クロスボーダー: 中国本土のリージョンから中国本土以外のリージョンへ。クロスボーダー専用回線 に移動して、企業資格を申請してください。クロスボーダー専用回線は China Unicom によって提供されます。
ピアリング接続のネットワーク遅延はどのくらいですか?
リージョン内: 低遅延。
リージョン間: データはリージョン間で転送されるため、遅延は 2 つのリージョン間の物理的な距離とネットワークの状態によって異なります。 クラウドネットワークモニタリングを使用して、リージョン間の平均遅延を参照として表示し、ビジネスに適したリンクタイプを選択します。
ピアリング接続を作成するときに宛先 VPC を選択できないのはなぜですか?
選択したリージョンとアカウントが、宛先 VPC の [リージョン] と [所有者] と一致していることを確認してください。
リクエスト元リージョンはページの上部に表示され、現在ログオンしているアカウントがリクエスト元アカウントです。ピアリング接続を作成するときに、受信側アカウントとリージョンを指定する必要があります。
詳細情報
制限
次の場合、VPC ピアリング接続を作成できません:
一方の VPC が中国サイト (aliyun.com) で作成されたアカウントに属し、もう一方が国際サイト (alibabacloud.com) に属している場合。
VPC ピアリング接続はルーティング伝播をサポートしていません。
たとえば、VPC 2 と VPC 3 が両方ともピアリング接続を使用して VPC 1 に接続されている場合、VPC 2 と VPC 3 は VPC 1 を介して相互に通信できません。
マルチアカウント共有 VPC では、リソース所有者はピアリング接続を作成、変更、または削除できますが、プリンシパルにはこれらの権限がありません。
課金
2 つの VPC が同一または異なるアカウントに属しているかどうかにかかわらず、リージョン内 VPC ピアリング接続には料金はかかりません。
リージョン間 VPC ピアリング接続の場合、CDT はアウトバウンドトラフィックに対して データ転送料金 を請求します。
単価は、リージョンの粒度とリンクタイプによって決まります。利用可能な 2 つのリンクタイプであるプラチナとゴールドは、異なるレベルのデータ転送品質を提供します。
課金サイクルは 1 時間ごとです。課金サイクル内でリンクタイプを切り替えた場合、そのサイクルでは上位レベルの単価で課金されます。
図に示すように、VPC1 と VPC2 の間に VPC ピアリング接続が確立されています。これらの VPC は異なるリージョンにあり、異なるアカウントに属しています。VPC ピアリング接続を介したアウトバウンドトラフィックが VPC1 から 200 GB、VPC2 から 100 GB であると仮定します。リンクタイプは [ゴールド] です。中国 (フフホト) から 中国 (広州) への リージョン間データ転送料金 は 0.072 USD/GB です。課金ルールに基づくと:
アカウント A の料金: 0.072 USD/GB × 200 GB = 14.4 USD
アカウント B の料金: 0.072 USD/GB × 100 GB = 7.2 USD
VPC ピアリング接続の段階
VPC ピアリング接続は、作成リクエストが送信されてからいくつかの段階を経ます。
同一アカウント内で VPC ピアリング接続を作成すると、システムは自動的に接続リクエストを開始して承諾し、VPC ピアリング接続はアクティブになります。
ステータスの説明
サポートされているリージョン
エリア | リージョン |
アジア太平洋 - 中国 | 中国 (杭州), 中国 (上海), 中国 (南京 - ローカルリージョン、閉鎖中), 中国 (青島), 中国 (北京), 中国 (張家口), 中国 (フフホト), 中国 (ウランチャブ), 中国 (深圳), 中国 (河源), 中国 (広州), 中国 (成都), 中国 (香港), 中国 (武漢 - ローカルリージョン), および 中国 (福州 - ローカルリージョン、閉鎖中) |
アジア太平洋 - その他 | 日本 (東京), 韓国 (ソウル), シンガポール, マレーシア (クアラルンプール), インドネシア (ジャカルタ), フィリピン (マニラ), および タイ (バンコク) |
ヨーロッパ & アメリカ | ドイツ (フランクフルト), 英国 (ロンドン), 米国 (シリコンバレー), および 米国 (バージニア) |
中東 | UAE (ドバイ) および SAU (リヤド - パートナーリージョン) 重要 SAU (リヤド - パートナーリージョン) リージョンはパートナーによって運営されています。 |
クォータ
クォータ名 | 説明 | デフォルトのクォータ | クォータの引き上げ |
vpc_quota_cross_region_peer_num_per_vpc | VPC のリージョン間 VPC ピアリング接続の数。 | 20 | クォータ管理ページ または Quota Center に移動して、引き上げをリクエストします。 |
vpc_quota_intra_region_peer_num_per_vpc | VPC のリージョン内 VPC ピアリング接続の数。 | 10 | |
vpc_quota_peer_num | Alibaba Cloud アカウントによってリージョンに作成された VPC ピアリング接続の数。 | 20 | |
vpc_quota_peer_cross_border_bandwidth | 最大クロスボーダー帯域幅。 | 1024 Mbps | |
vpc_quota_peer_cross_region_bandwidth | 最大リージョン間帯域幅。 | 1024 Mbps |