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

Cloud Enterprise Network:VPC の分離と共有サービスへのアクセス

最終更新日:Aug 29, 2026

Cloud Enterprise Network (CEN) は、同一リージョン内での柔軟な接続、分離、およびトラフィックリダイレクションポリシーをサポートします。このチュートリアルでは、VPC を相互に分離した状態を維持しつつ、共有サービス VPC にアクセスできるようにする方法について説明します。

背景情報

ある企業が、中国 (杭州) リージョンに 3 つの VPC をデプロイしています。VPC3 は共有サービスをホストしています。目標は、VPC1 と VPC2 を相互に分離したまま、VPC1 と VPC2 が VPC3 にアクセスできるようにすることです。

image

ネットワーク計画

CEN のカスタムルートテーブル、ルートテーブルの関連付け、およびルート学習を使用して、ネットワークセグメントとルーティングを次のように設定します。

image

この例では、3 つの VPC とトランジットルーターはすべて同じ Alibaba Cloud アカウントに属しています。クロスアカウントでのデプロイについては、「クロスアカウント VPC のルート分離」セクションをご参照ください。

  • VPC3 をトランジットルーターに接続する際、高度な設定で[トランジットルーターのシステムルートテーブルに自動的に関連付ける]と[システムルートをトランジットルーターのシステムルートテーブルに自動伝播する]を有効にします。

    これにより、トランジットルーターのシステムルートテーブルは VPC3 のルートを自動的に学習し、VPC3 はこのシステムルートテーブルを介してトラフィックを転送します。

  • VPC1 と VPC2 をトランジットルーターに接続する際は、高度な設定で[システムルートをトランジットルーターのシステムルートテーブルに自動伝播する]のみを有効にします。次に、VPC1 と VPC2 をトランジットルーター上のカスタムルートテーブルに関連付け、VPC3 を指すカスタムルートエントリを追加します。

    トランジットルーターのシステムルートテーブルは、VPC1 と VPC2 からルートを学習します。VPC1 と VPC2 はカスタムルートテーブルを介して VPC3 にトラフィックを転送するため、VPC1 と VPC2 間の通信を防ぎます。

  • VPC1、VPC2、および VPC3 のルートテーブルに、0.0.0.0/0 へのルートを追加します。このルートのネクストホップをトランジットルーターに設定します。

  • 次の表に、VPC のネットワーク計画の詳細を示します。

    重要

    ネットワークを計画する際は、VPC の CIDR ブロックが重複しないようにしてください。

    VPC

    vSwitch

    vSwitch ゾーン

    CIDR ブロック

    Elastic Compute Service (ECS)

    VPC1

    プライマリ CIDR ブロック: 192.168.0.0/16

    vSwitch1

    ゾーン A

    192.168.0.0/24

    ECS1 アドレス:

    192.168.0.124

    vSwitch2

    ゾーン B

    192.168.1.0/24

    VPC2

    プライマリ CIDR ブロック: 172.16.0.0/16

    vSwitch3

    ゾーン A

    172.16.0.0/24

    ECS2 アドレス:

    172.16.0.222

    vSwitch4

    ゾーン B

    172.16.1.0/24

    VPC3

    プライマリ CIDR ブロック: 10.0.0.0/16

    vSwitch5

    ゾーン A

    10.0.0.0/24

    ECS3 アドレス:

    10.0.0.112

    vSwitch6

    ゾーン B

    10.0.1.0/24

操作手順

このチュートリアルは、Alibaba Cloud コンソールまたは Terraform を使用して完了できます。

コンソール

ステップ1: CENインスタンスの作成

ネットワークインスタンスを接続する前に、CEN インスタンスを作成します。

  1. CEN コンソールにログインします。
  2. インスタンス ページで、CEN インスタンスの作成 をクリックします。

  3. CEN インスタンスの作成 ダイアログボックスで、次のパラメーターを設定し、OK をクリックします。

    • [名前]:CEN インスタンスの名前を入力します。

    • [説明]:CEN インスタンスの説明を入力します。

ステップ2: VPC 接続の作成

  1. インスタンス ページで、CEN インスタンスの ID をクリックします。

  2. 基本設定 タブの VPC セクションで、添加网络实例 アイコンをクリックします。

  3. ピアネットワークインスタンスとの接続 ページで、以下のパラメーターを設定し、OK をクリックします。

    • [ネットワークタイプ]:デフォルトで[仮想プライベートクラウド (VPC)]が選択されています。

    • [リージョン]:ネットワークインスタンスがデプロイされているリージョンを選択します。この例では、[中国 (杭州)] が選択されています。

    • [トランジットルーター]:選択したリージョンにトランジットルーターが自動的に作成されます。

    • [リソース所有者 ID]:ネットワークインスタンスを所有するアカウントのタイプを選択します。この例では、デフォルト値の[現在のアカウント]が使用されます。

    • 課金方法:デフォルト値は従量課金制です。

    • [接続名]:接続の名前を入力します。

    • [ネットワーク]:接続する VPC の ID を選択します。この例では、VPC3 が選択されています。

    • [vSwitch]:トランジットルーターでサポートされているゾーンの vSwitch インスタンスを選択します。

      シングルゾーンリージョンの場合は、1 つの vSwitch を選択します。マルチゾーンリージョンの場合は、異なるゾーンにある少なくとも 2 つの vSwitch を選択します。レイテンシーを削減するには、ゾーンごとに 1 つの vSwitch を選択します。

    • [詳細設定]:この例では、VPC3 については[トランジットルーターのシステムルートテーブルに自動的に関連付ける]と[システムルートをトランジットルーターのシステムルートテーブルに自動伝播する]のみを有効にします。

      デフォルトでは、トランジットルーターのデフォルトルートテーブルと関連付け (VPC 接続をトランジットルーターのデフォルトルートテーブルに関連付ける)、システムルートをトランジットルーターのデフォルトルートテーブルに伝播 (VPC のシステムルートをトランジットルーターにアドバタイズし、他のアタッチされたネットワークインスタンスとの通信を可能にする)、および[トランジットルーターを指すルートを自動的に作成し、現在の VPC のすべてのルートテーブルに追加する] (VPC のすべてのルートテーブルに 3 つのルート (10.0.0.0/8、172.16.0.0/12、192.168.0.0/16) を追加し、ネクストホップをトランジットルーターに設定する。デフォルトでは、トランジットルーターは VPC にルートをアドバタイズしない) という 3 つのオプションが有効になっています。ルーティングをカスタマイズするには、これらのチェックボックスをオフにし、ルートの関連付けと伝播を手動で設定してください。詳細については、「ルートの管理」をご参照ください。

      説明

      IPv6 トラフィックの場合、VPC 接続を作成した後、ルート同期を有効にするか、VPC 接続を指すIPv6 ルートエントリを手動で VPC に追加します。

  4. VPC3 の接続が作成されたら、接続をさらに作成 をクリックします。

    ステップ 3 を繰り返して、VPC1 と VPC2 の接続を作成します。 その際、システムルートをトランジットルーターのシステムルートテーブルに自動伝播する の詳細設定のみを選択します。

  5. VPC 接続が作成されたら、リストに戻る をクリックしてインスタンス詳細ページに戻ります。

ステップ3: VPC とカスタムルートテーブルの関連付け

  1. インスタンス詳細ページで、作成したトランジットルーターを見つけて、その ID をクリックします。

  2. トランジットルーターの詳細ページで、ルートテーブル タブをクリックします。

  3. タブの左側のペインで、ルートテーブルの作成 をクリックします。

  4. ルートテーブルの作成 ダイアログボックスで、次のパラメーターを設定し、OK をクリックします。

    • [トランジットルーター]:現在のリージョンのトランジットルーターが自動的に選択されます。

    • [名前]:ルートテーブルの名前を入力します。

    • [説明]:ルートテーブルの説明を入力します。

    • [マルチリージョン等価ルート]:デフォルト値のままにします。

  5. ルートテーブルの詳細を表示 をクリックして、ルートテーブル タブに戻ります。

  6. ルートテーブル タブで、先ほど作成したカスタムルートテーブルを選択し、ルートテーブル関連付け タブをクリックして、関連付けの作成 をクリックします。

  7. 関連付けの追加 ダイアログボックスで、このカスタムルートテーブルに関連付けるネットワークインスタンス接続を選択し、OK をクリックします。

    関連付け後、VPC1 と VPC2 はこのルートテーブルを検索してトラフィックを転送します。

  8. カスタムルートテーブルの詳細ページで、ルートエントリ タブをクリックし、ルートエントリの追加 をクリックします。

  9. ルートエントリの追加 ダイアログボックスで、次のパラメーターを設定し、OK をクリックします。

    • [ルートテーブル]:現在のカスタムルートテーブルが自動的に選択されます。

    • [トランジットルーター ID]:現在のリージョンのトランジットルーターが自動的に選択されます。

    • [名前]:ルートエントリの名前を入力します。

    • [宛先 CIDR]:ルートの宛先 CIDR ブロックを入力します。この例では、10.0.0.0/16 を入力します。

    • [ブラックホールルート]:このオプションを選択すると、このルート宛てのすべてのトラフィックが破棄されます。この例では、[いいえ]を選択します。

    • [ネクストホップ]:ルートのネクストホップを選択します。この例では、VPC3 接続を選択します。

    • [説明]:ルートエントリの説明を入力します。

ステップ4: 各 VPC へのデフォルトルートの追加

VPC コンソールで、宛先が 0.0.0.0/0 のルートを VPC1、VPC2、および VPC3 のルートテーブルに追加します。ルートのネクストホップをトランジットルーターに設定します。

  1. VPC コンソールにログインします。
  2. 左側のナビゲーションペインで、ルートテーブル をクリックします。

  3. 上部メニューで、ルートテーブルが存在するリージョンを選択します。

  4. ルートテーブル ページで、目的のルートテーブルを見つけ、その ID をクリックします。

    この例では、VPC3 のルートテーブルを選択します。

  5. ルートテーブル詳細ページの ルートエントリ タブで、カスタムルート をクリックし、次に ルートエントリの追加 をクリックします。

  6. ルートエントリの追加 パネルで、次のパラメータを設定し、OK をクリックします。

    • [名前]:ルートエントリの名前を入力します。

    • [宛先 CIDR ブロック]:宛先 CIDR ブロックを入力します。この例では、0.0.0.0/0 を入力します。

    • [ネクストホップタイプ]:ネクストホップのタイプを選択します。この例では、[トランジットルーター]を選択します。

    • [トランジットルーター]:ネットワークインスタンス接続を選択します。この例では、VPC3 接続を選択します。

    パラメーターの詳細については、「カスタムルートテーブルを使用したネットワークトラフィックの管理」をご参照ください。

  7. ステップ 4 から ステップ 6 を繰り返して、宛先が 0.0.0.0/0 で、ネクストホップが VPC1 および VPC2 のトランジットルーターであるルートを追加します。

    CEN コンソールのトランジットルーター詳細ページで、VPC1、VPC2、VPC3、およびトランジットルーターのルートテーブルのルーティング情報を表示できます。

    1. トランジットルーターの詳細ページで、ルーティング情報 をクリックして VPC1、VPC2、および VPC3 のルートを表示します。

      1. トランジットルーターの詳細ページで、ルーティング情報 をクリックします。

      2. ネットワーク ドロップダウンリストから、VPC1、VPC2、または VPC3 の ID を選択して、そのルートを表示します。

        図1. VPC1 のルート

        image

        図2. VPC2 のルート

        image

        図3. VPC3 のルート

        image

    2. ルートテーブル タブでは、トランジットルーターのシステムルートテーブルが VPC1、VPC2、および VPC3 から学習したルートを表示できます。

      1. トランジットルーターの詳細ページで、ルートテーブル をクリックします。

      2. ルートテーブル タブで、ルートテーブルのルートエントリを表示できます。

        図4. システムルートテーブル

        image

        図5. カスタムルートテーブル

        image

ステップ5: ネットワーク接続のテスト

VPC1、VPC2、および VPC3 間の接続をテストします。

説明

開始する前に、VPC1、VPC2、および VPC3 の Elastic Compute Service (ECS) インスタンスのセキュリティグループルールでインスタンス間の通信が許可されていることを確認してください。詳細については、「セキュリティグループルールの表示」をご参照ください。

  1. VPC1 の ECS インスタンスにログインします。詳細については、「ECSインスタンスへの接続方法」をご参照ください。

  2. ping コマンドを実行して VPC3 の ECS インスタンスの IP アドレスにping を送信し、VPC1 と VPC3 間の接続をテストします。

    出力により、VPC1 と VPC3 が通信できることが確認されます。共享VPC-VPC1-VPC3

  3. VPC2 の ECS インスタンスにログインし、ping コマンドを使用して VPC3 の ECS インスタンスの IP アドレスにping を送信し、VPC2 と VPC3 間の接続をテストします。

    出力により、VPC2 と VPC3 が通信できることが確認されます。共享VPC-VPC2-VPC3

  4. VPC1 の ECS インスタンスにログインし、ping コマンドを使用して VPC2 の ECS インスタンスの IP アドレスにping を送信し、VPC1 と VPC2 間の接続をテストします。

    出力により、VPC1 と VPC2 が通信できないことが確認されます。共享VPC-VPC1-VPC2

クロスアカウント VPC のルート分離

このチュートリアルで説明されているルーティングと分離のメカニズムは、クロスアカウントのデプロイにも同様に適用されます。分離は、VPC1 と VPC2 に対してルート学習 ([システムルートをトランジットルーターのシステムルートテーブルに自動伝播する]) のみを有効にし、それらをカスタムルートテーブルに関連付け、そのルートテーブルに VPC3 へのカスタムルートを追加することで実現します。このメカニズムは、VPC がどの Alibaba Cloud アカウントに属しているかに依存しません。

前提条件:クロスアカウント VPC 接続を作成する前に、VPC を所有するアカウントは、トランジットルーターを所有するアカウントに権限を付与する必要があります。手順については、「ネットワークインスタンスのクロスアカウント権限付与」をご参照ください。

設定の違いステップ2: VPC 接続の作成で、[リソース所有者 ID]フィールドに[現在のアカウント]の代わりに別のアカウントを選択し、VPC を所有する Alibaba Cloud アカウントのプライマリアカウント ID を入力します。他のすべての設定項目は、同一アカウントのシナリオと同じです。パラメーターの詳細については、「VPC 接続の作成」をご参照ください。

操作の所有権ステップ1からステップ3 (CEN インスタンス、トランジットルーター、VPC 接続、およびそのルートエントリを含むカスタムルートテーブルの作成) はすべて、トランジットルーターを所有するアカウントが実行します。ステップ4: 各 VPC へのデフォルトルートの追加は、各 VPC の所有アカウントが、それぞれのアカウントの VPC コンソールで実行する必要があります。

ルートマップを使用したクロスアカウント VPC の分離

クロスアカウント VPC が CEN に接続されると、デフォルトではトランジットルーター上の他のすべての VPC インスタンスと完全に接続されます。クロスアカウント VPC を特定の VPC インスタンスから選択的に分離するには、このトピックで前述したカスタムルートテーブルとルートテーブルの関連付けの方法を使用する代わりに、トランジットルーターのルートテーブルにルートマップを設定します。このメカニズムは、クロスアカウント VPC のルート分離で説明したカスタムルートテーブルベースの分離とは独立しています。VPC アタッチメントが使用するルートテーブルを変更するのではなく、コントロールプレーンでルートアドバタイズをフィルタリングすることで分離を実現します。

仕組み:ルートマップは、トランジットルーターが特定の VPC アタッチメントにアドバタイズするルートを制御します。2 つの VPC アタッチメント間のトラフィックに一致するDenyルートマップを作成すると、トランジットルーターは対応するルートのアドバタイズを停止するため、基になるルートテーブルが変更されていなくても、2 つの VPC インスタンスは互いに到達できなくなります。

始める前に:ルートマップは、ルートマップが作成された後に行われるルートアドバタイズに対してのみ有効になります。2 つの VPC インスタンス間の通信を可能にするルートエントリがルートテーブルに既に存在する場合、まずそのルートエントリを削除してください。そうしないと、既存のルートが引き続き機能し、分離は有効になりません。

Deny ルートマップを設定するには:

  1. トランジットルーターのルートテーブルに、次の設定でルートマップを作成します。

    • アクションDeny

    • 優先度20。値が小さいほど優先度が高くなります。

    • 方向リージョナルゲートウェイからの出力 (ルートマップは、リージョンからアドバタイズされるルートをフィルタリングします)。

    • ソースインスタンスID:クロスアカウント VPC アタッチメントの ID (例:vpc-xxx)。

    • 宛先インスタンスID:ソース VPC から分離したい VPC アタッチメントの ID (例:vpc-yyy)。

    説明

    場合によっては、ルートテーブルの関連付けによって VPC 接続がすでにルートテーブルに関連付けられているにもかかわらず、コンソールのルートマップ作成ページの [ソースインスタンスID] ドロップダウンリストに選択可能なオプションが表示されないことがあります。この問題が発生した場合は、代わりにCreateCenRouteMap API を呼び出し、VPC インスタンス ID を vpc-xxx 形式で渡してルートマップを作成してください。

  2. ルートマップが有効になった後、ソース VPC の ECS インスタンスにログインし、ping コマンドを実行して、分離された VPC 内の ECS インスタンスへの接続をテストします。ping コマンドは失敗するはずです (100%のパケットロス)。これにより、ルートマップによる分離が有効であることが確認できます。

Terraform

Terraform を使用して、このチュートリアルの環境を構築できます。Terraform のインストールと設定の手順については、Terraform のインストールをご参照ください。

次の手順では、Linux ホスト上で Terraform v1.9.8 を実行する方法について説明します。開始する前に、認証が設定されていることを確認してください。

説明

このチュートリアルの一部のリソースには料金が発生します。予期しない請求を避けるため、不要になったリソースは解放してください。

ステップ1: リソースの作成

以下のコードは、このシナリオのすべてのリソースを定義します。 新しいディレクトリに .tf ファイルとして保存してください。

variable "pname" {
  description = "リソースのプレフィックス名"
  type        = string
  default     = "tf-CenSharedVpc"
}

variable "default_region" {
  description = "デフォルトリージョン"
  type        = string
  default     = "cn-hangzhou"
}

variable "az_list" {
  description = "使用するアベイラビリティゾーンのリスト"
  type        = list(string)
  default     = ["cn-hangzhou-j", "cn-hangzhou-k"]
}

variable "vpc_cidr_list" {
  description = "VPC CIDR ブロックのリスト"
  type        = list(string)
  default     = ["192.168.0.0/16", "172.16.0.0/16", "10.0.0.0/16"]
}

variable "vsw_cidr_list" {
  description = "VSW CIDR ブロックのリスト"
  type        = list(string)
  default = [
    "192.168.0.0/24", "192.168.1.0/24",
    "172.16.0.0/24", "172.16.1.0/24",
    "10.0.0.0/24", "10.0.1.0/24"
  ]
}

variable "ecs_ip_list" {
  description = "ECS IP のリスト"
  type        = list(string)
  default     = ["192.168.0.124", "172.16.0.222", "10.0.0.112"]
}

provider "alicloud" {
  region = var.default_region
}

# --- VPC x3、VSW x6、ECS x3
resource "alicloud_vpc" "vpc" {
  count      = length(var.vpc_cidr_list)
  vpc_name   = "${var.pname}-vpc${count.index + 1}"
  cidr_block = var.vpc_cidr_list[count.index]
}

resource "alicloud_vswitch" "vsw" {
  count        = length(var.vsw_cidr_list)
  vpc_id       = alicloud_vpc.vpc[floor(count.index / length(var.az_list))].id
  cidr_block   = var.vsw_cidr_list[count.index]
  zone_id      = var.az_list[count.index % length(var.az_list)]
  vswitch_name = "${var.pname}-vsw${count.index + 1}"
}

resource "alicloud_instance" "ecs" {
  count                = length(var.vpc_cidr_list)
  instance_name        = "${var.pname}-ecs${count.index + 1}"
  instance_type        = "ecs.e-c1m1.large"
  security_groups      = [alicloud_security_group.sg[count.index].id]
  vswitch_id           = alicloud_vswitch.vsw[count.index * length(var.az_list)].id
  image_id             = "aliyun_3_x64_20G_qboot_alibase_20230727.vhd"
  system_disk_category = "cloud_essd"
  private_ip           = var.ecs_ip_list[count.index]
  instance_charge_type = "PostPaid"
}

# --- SG x3
resource "alicloud_security_group" "sg" {
  count  = length(var.vpc_cidr_list)
  name   = "${var.pname}-${count.index + 1}"
  vpc_id = alicloud_vpc.vpc[count.index].id
}

resource "alicloud_security_group_rule" "allow_inbound_ssh" {
  count             = length(var.vpc_cidr_list)
  type              = "ingress"
  ip_protocol       = "tcp"
  nic_type          = "intranet"
  policy            = "accept"
  port_range        = "22/22"
  priority          = 1
  security_group_id = alicloud_security_group.sg[count.index].id
  cidr_ip           = "0.0.0.0/0"
}

resource "alicloud_security_group_rule" "allow_inbound_icmp" {
  count             = length(var.vpc_cidr_list)
  type              = "ingress"
  ip_protocol       = "icmp"
  nic_type          = "intranet"
  policy            = "accept"
  port_range        = "-1/-1"
  priority          = 1
  security_group_id = alicloud_security_group.sg[count.index].id
  cidr_ip           = "0.0.0.0/0"
}

# --- CEN および TR
resource "alicloud_cen_instance" "cen" {
  cen_instance_name = "${var.pname}-cen1"
}
resource "alicloud_cen_transit_router" "tr" {
  transit_router_name = "${var.pname}-tr"
  cen_id              = alicloud_cen_instance.cen.id
}
data "alicloud_cen_transit_router_route_tables" "tr" { # TR のシステムテーブルを取得
  transit_router_id               = alicloud_cen_transit_router.tr.transit_router_id
  transit_router_route_table_type = "System"
}

# アタッチメント x3
resource "alicloud_cen_transit_router_vpc_attachment" "attach" {
  count             = length(var.vpc_cidr_list)
  cen_id            = alicloud_cen_instance.cen.id
  transit_router_id = alicloud_cen_transit_router.tr.transit_router_id
  vpc_id            = alicloud_vpc.vpc[count.index].id
  zone_mappings {
    zone_id    = var.az_list[0]
    vswitch_id = alicloud_vswitch.vsw[count.index * length(var.az_list)].id
  }
  zone_mappings {
    zone_id    = var.az_list[1]
    vswitch_id = alicloud_vswitch.vsw[count.index * length(var.az_list) + 1].id
  }
  transit_router_vpc_attachment_name = "attach${count.index + 1}"
}

# 伝播 x3
resource "alicloud_cen_transit_router_route_table_propagation" "propa" {
  count                         = length(var.vpc_cidr_list)
  transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr.tables[0].id
  transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach[count.index].transit_router_attachment_id
}

# カスタムテーブル x1
resource "alicloud_cen_transit_router_route_table" "custom_table" { # TR のカスタムテーブルを作成
  transit_router_id               = alicloud_cen_transit_router.tr.transit_router_id
  transit_router_route_table_name = "custom_table"
}

resource "alicloud_cen_transit_router_route_entry" "tr_entry" {
  transit_router_route_table_id                     = alicloud_cen_transit_router_route_table.custom_table.transit_router_route_table_id
  transit_router_route_entry_destination_cidr_block = "10.0.0.0/16"
  transit_router_route_entry_next_hop_type          = "Attachment"
  transit_router_route_entry_name                   = "entry1_name"
  transit_router_route_entry_description            = "entry1_desc"
  transit_router_route_entry_next_hop_id            = alicloud_cen_transit_router_vpc_attachment.attach[2].transit_router_attachment_id
}

# attach1、2 をカスタムテーブルに関連付け
resource "alicloud_cen_transit_router_route_table_association" "ass1" {
  transit_router_route_table_id = alicloud_cen_transit_router_route_table.custom_table.transit_router_route_table_id
  transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach[0].transit_router_attachment_id
}
resource "alicloud_cen_transit_router_route_table_association" "ass2" {
  transit_router_route_table_id = alicloud_cen_transit_router_route_table.custom_table.transit_router_route_table_id
  transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach[1].transit_router_attachment_id
}
# attach3 をシステムテーブルに関連付け
resource "alicloud_cen_transit_router_route_table_association" "ass3" {
  transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr.tables[0].id
  transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach[2].transit_router_attachment_id
}

# VPC エントリ
resource "alicloud_route_entry" "vpc_entry" {
  count                 = length(var.vpc_cidr_list)
  route_table_id        = alicloud_vpc.vpc[count.index].route_table_id
  destination_cidrblock = "0.0.0.0/0"
  nexthop_type          = "Attachment"
  nexthop_id            = alicloud_cen_transit_router_vpc_attachment.attach[count.index].transit_router_attachment_id
}

output "ecs1_login_address" {
  value = "https://ecs-workbench.alibabacloud.com/?from=EcsConsole&instanceType=ecs&regionId=${var.default_region}&instanceId=${alicloud_instance.ecs[0].id}"
}

output "ecs2_login_address" {
  value = "https://ecs-workbench.alibabacloud.com/?from=EcsConsole&instanceType=ecs&regionId=${var.default_region}&instanceId=${alicloud_instance.ecs[1].id}"
}

output "ecs3_login_address" {
  value = "https://ecs-workbench.alibabacloud.com/?from=EcsConsole&instanceType=ecs&regionId=${var.default_region}&instanceId=${alicloud_instance.ecs[2].id}"
}

ステップ2: ネットワーク接続のテスト

次の手順に従って、VPC1、VPC2、および VPC3 間の接続をテストします。

  1. VPC1 の ECS1 インスタンス (インスタンス名: tf-CenSharedVpc-ecs1) にログインします。

    Terraform の出力で ECS1 のログイン URL を見つけます。ブラウザで URL を開き、一時的な SSH キーベースの認証を使用します。

    image

  2. ping コマンドを実行し、VPC3 の ECS3 インスタンスの IP アドレスにping を送信して、VPC1 と VPC3 間の接続をテストします。

    ping 10.0.0.112

    出力により、VPC1 と VPC3 が通信できることが確認されます。共享VPC-VPC1-VPC3

  3. VPC2 の ECS2 インスタンス (tf-CenSharedVpc-ecs2) にログインし、ping コマンドを実行して VPC3 の ECS3 インスタンスの IP アドレスにping を送信し、VPC2 と VPC3 間の接続をテストします。

    ping 10.0.0.112

    出力により、VPC2 と VPC3 が通信できることが確認されます。共享VPC-VPC2-VPC3

  4. VPC1 の ECS1 インスタンス (tf-CenSharedVpc-ecs1) にログインします。ping コマンドを使用して VPC2 の ECS2 インスタンスの IP アドレスにping を送信し、VPC1 と VPC2 間の接続をテストします。

    ping 172.16.0.222

    出力により、VPC1 と VPC2 が通信できないことが確認されます。共享VPC-VPC1-VPC2

ステップ3: リソースのクリーンアップ

検証後、次のコマンドを実行してリソースを解放します。

terraform destroy --auto-approve