Partner InterconnectをTerraformで構築してみた

こんにちは、SCSKの齋藤です。
本記事では、Google CloudのPartner Interconnectを使った専用線接続の構築についてご紹介します。

はじめに

検証環境で外部ネットワークとの専用線接続を構築することになりました。インターネット経由ではなく、サービスプロバイダを介した専用線で接続するという要件です。Google CloudではPartner Interconnectというサービスがこれに対応していて、今回はこれをTerraformで構築してみました。

専用線接続というと「大企業が使うもの」「導入が大変そう」というイメージがあったのですが、Partner Interconnectはプロバイダが間に入ってくれるおかげで、Dedicated Interconnectよりもかなり手軽に導入できます。とはいえ、Terraformだけでは完結せずプロバイダとの手動連携が必要だったり、冗長構成を組む際にAvailability Domainの概念を理解する必要があったりと、初めてだからこその苦労もありました。

この記事では、Partner Interconnectの基本的な概要から、Terraformでの構築、そして冗長構成の設計について書いていきます。プロバイダとの連携フローの実際のところも紹介します。


Partner Interconnectとは

Partner Interconnectは、Google Cloudが提供する専用線接続サービスの一つです。サービスプロバイダ(通信事業者)を経由して、Google Cloudのネットワークと外部ネットワークを物理的に接続します。

Google Cloudの専用線接続にはDedicated InterconnectとPartner Interconnectの2種類があります。以下に比較をまとめます。

項目 Partner Interconnect Dedicated Interconnect
帯域 50 Mbps 〜 50 Gbps 10 Gbps / 100 Gbps
接続方式 サービスプロバイダ経由 Googleコロケーション施設に直接
初期コスト 低い 高い(物理配線が必要)
導入期間 比較的短い 数週間〜数ヶ月
SLA(冗長構成時) 99.99% 99.99%
適したユースケース 中〜小規模の接続 大規模・低レイテンシ要件

Dedicated InterconnectはGoogleのコロケーション施設に物理的に機器を設置して直接接続する方式で、大容量に対応しますが初期コストが高く導入にも時間がかかります。一方Partner Interconnectは、既にGoogleと接続を持つサービスプロバイダを経由する方式で、50 Mbpsから利用可能です。小〜中規模の接続ニーズに適しており、導入のハードルが低いのが特徴です。

Partner Interconnectの接続はVLAN Attachment(旧称: Interconnect Attachment)というリソースで表現されます。各VLAN Attachmentは特定のCloud Routerに関連付けられ、BGPセッションを通じてルート情報を交換します。帯域はVLAN Attachment単位で設定でき、50 Mbps、100 Mbps、200 Mbps、500 Mbps、1 Gbps、2 Gbps、5 Gbps、10 Gbps、50 Gbpsから選択できます。

SLA(サービスレベル)の観点では、単一のVLAN Attachmentだけでは99.9%のSLAとなりますが、異なるAvailability Domainに2本配置することで99.99%のSLAが適用されます。今回は高可用性が要件だったため、最初から2本構成で設計しました。


resource "google_compute_interconnect_attachment" "vlan_a" {
  type                     = "PARTNER"
  edge_availability_domain = "AVAILABILITY_DOMAIN_1"
  bandwidth                = "BPS_50M"
  # ...
}

resource "google_compute_interconnect_attachment" "vlan_b" {
  type                     = "PARTNER"
  edge_availability_domain = "AVAILABILITY_DOMAIN_2"
  bandwidth                = "BPS_50M"
  # ...
}

冗長構成の設計

Partner Interconnectでは、VLAN Attachmentを作成する際に edge_availability_domain を指定します。これはGCPとプロバイダ間の物理的な接続経路を表しており、AVAILABILITY_DOMAIN_1AVAILABILITY_DOMAIN_2 の2つがあります。異なるAvailability Domainに1本ずつ配置することで、一方の物理経路が障害になってももう一方で通信を継続できます。

この設計はGoogleの公式ドキュメントでも推奨されています。本番環境で利用する場合は、異なるAvailability Domainに最低2本のVLAN Attachmentを配置することがほぼ必須と言えます。検証環境だとしても、可用性を試したいのであれば最初から2本構成にしておくのが無難です。

帯域の選択については、今回は最小の50 Mbpsで十分な通信量だったためこれを選びました。注意点として、帯域を後から変更したい場合はVLAN Attachmentの再作成が必要になります。片方ずつ再作成すれば通信断を避けられるので、冗長構成にしておくメリットはここにもあります。

構築の流れ — Terraformだけでは完結しない

Partner Interconnectの構築でまず驚いたのが、完全にTerraformだけでは完結しないということです。プロバイダとの手動連携が途中で必要になります。全体のフローは以下のようになります。

まず、TerraformでCloud RouterとVLAN Attachmentを作成します。VLAN Attachmentが作成されると、GCPコンソールに「ペアリングキー」が表示されます。このペアリングキーをプロバイダに連絡し、プロバイダ側でVLANの設定を行ってもらいます。プロバイダの作業が完了すると、VLAN Attachmentのステータスが ACTIVE に変わり、以降はTerraformでBGP Peerの設定を行えるようになります。

この「ペアリングキーをプロバイダに渡して、向こうの設定完了を待つ」というステップがIaCの自動化の中に手動プロセスとして入り込むのが特徴的です。実際にプロバイダの作業完了まで数日〜1週間かかることもあるため、構築スケジュールには余裕を持たせておく必要があります。

ステータスの確認はgcloudコマンドで行えます。ACTIVE になっていれば準備完了です。


# ペアリングキーの確認
gcloud compute interconnects attachments describe vlan-a \
  --region=asia-northeast1 --format="value(pairingKey)"

# ステータス確認
gcloud compute interconnects attachments describe vlan-a \
  --region=asia-northeast1 --format="value(state)"
# ACTIVE になっていればOK

PENDING_PARTNER のままであれば、まだプロバイダ側の作業が完了していないことを意味します。

工夫したところ・ハマったところ

既存リソースをTerraformにimportする苦労

実は最初にPartner InterconnectをGCPコンソールから手動で作成していました。動作確認が終わった後で「やっぱりTerraformで管理したい」となり、importする作業が発生しました。

terraform import google_compute_interconnect_attachment.vlan_a \
  projects/my-project/regions/asia-northeast1/interconnectAttachments/vlan-a

import自体のコマンドはシンプルですが、import後に terraform plan を実行すると大量の差分が表示されて焦りました。

差分の原因は、GCPが内部的に保持している属性とTerraformが期待する属性の形式が微妙に異なることでした。特にVLAN Attachmentに紐づいて自動生成されるRouter Interfaceの存在に気づくまでに時間がかかりました。VLAN Attachmentを作成すると、Cloud Routerに自動的にInterfaceが追加されるのですが、これをTerraformで明示的に管理しようとすると衝突します。このRouter InterfaceはVLAN Attachment側の管理に委ねるのが正解でした。

まとめ

– Partner Interconnectはプロバイダ経由でGCPと外部ネットワークを専用線接続するサービスで、50 Mbpsから利用可能
– 異なるAvailability Domainに2本のVLAN Attachmentを配置することで99.99% SLAの冗長構成を実現できる

次回はCloud RouterとBGP + BFDの設定について書いていきます。

著者について

SCSK株式会社
ソリューション事業グループ
基盤ソリューション事業本部

齋藤雄太をフォローする

クラウドに強いによるエンジニアブログです。

SCSKクラウドサービス(Google Cloud)は、Google Cloudの多彩なAIや各種サービスを活用したワンストップソリューションを提供します。SCSKのノウハウや体制を有効活用し、業務課題の解決に必要な全体検討と組み合わせで、最適な業務実装まで支援します。

Google Cloudその他技術ナレッジ
シェアする
×
タイトルとURLをコピーしました