【レポート】はてなにおける AWS Transit Gateway の導入と活用 #AWSSummit

Direct Connect と Transit Gateway を利用する場合の注意点と、経路の優先順位に気をつけましょう。
2020.09.13

こんにちは、崔です。

今回は、2020年9月8日から9月30日の間で開催されているAWS Summit Online のセッションで「はてなにおける AWS Transit Gateway の導入と活用」を視聴しましたので、レポートをお届けします。
Direct Connect と Transit Gateway を利用する場合の注意点と、経路の優先順位についてです。

セッション情報

スピーカー

株式会社 はてな
サービス・システム開発本部 システムプラットフォーム部
SRE (Site Reliability Engineer) / シニアエンジニア 渡辺 道和 氏

概要

はてなではクラウド環境とオンプレミス環境の両方にシステムを構築しており、内部ネットワークは VPN などで直接接続していました。
今後の成長や構成変更に追従できるようにするため、AWS Transit Gateway(transit gateway)を中心としたネットワークへの移行を実施しています。
本セッションではクラウド環境とオンプレミス環境の接続部分に transit gateway を導入の検討をされている方に向けて、AWS Direct Connect や VPN を transit gateway による集中管理に移行する際に気をつけるポイントなどについてお話します。

資料

アジェンダ

  • はてなにおけるサービス構成とネットワーク再構成の課題
  • AWS Transit Gateway のおさらい
  • ネットワーク再構成における AWS Transit Gateway の導入状況
  • AWS Transit Gateway に AWS Direct Connect の接続する場合の課題と解決策

はてなにおけるサービス構成とネットワーク再構成の課題

はてなのサービス

以下を中心に行っている。

  • コンテンツプラットフォーム
    • はてなブックマーク
    • はてなブログ
  • テクノロジーソリューション
    • mackerel
  • コンテンツマーケティング

はてなのサービスと基盤部分の課題

  • サービスの性質
    • 異なる性質のサービスを複数もっている(toC/toBtoC/toB向け SaaS)
    • リリースから10年以上経っているサービスや、リリースしたばかりのサービスまで、構成に差異がある状態
  • 基盤側の事情
    • AWSとオンプレミス環境のハイブリッドクラウド構成
    • 1つのVPCに複数の性質が異なるサービスが相乗り

内部ネットワークの整備

  • AWS アカウントを分離してサービスごとの VPC を構築した
  • サービス提供に影響しないネットワークの構成変更
    • 内部ネットワークのコア部分の構成変更なので、作業影響がネットーワク全体に波及する可能性が高い

Transit Gatewayを中心にしたスター型ネットワークへの構成変更

今後増える見込みのVPC間の接続や、オンプレミスとの接続の管理コストを削減するために、 Transit Gateway を採用する

Transit Gateway についておさらい

Transit Gateway とは(話者の理解)

  • Site-to-Site VPN / Direct Connect / VPC を相互接続できるゲートウェイ
  • 中身はざっくり言うと、複数のルートテーブル
    • VPC におけるルートテーブルと極めて似ている
    • 単一のルートテーブルのみという運用も可能
  • BGP による経路交換で、オンプレミス環境の経路を Transit Gateway のルートテーブルに経路伝播させる

Transit Gateway にAWSリソースを接続するときの各種用語

  • アタッチメント
    • VPC などの AWS リソースを Transit Gateway に関連付ける
  • アソシエート
    • AWS リソースのアタッチメントを Transit Gateway のルートテーブルに接続する
  • プロパゲート
    • Transit Gateway のルートテーブルに、アタッチメントから経路情報を伝播させる

構成の概要

内部ネットワークの構成変更の履歴

  • 2019/09
    • Classic VPN のリプレースのため Transit Gateway を導入
  • 2019/12
    • オンプレミス環境の1つと Transit Gateway を Direct Connect で接続 ← 今日お話しする内容
  • 2020/XX
    • オンプレミス環境と Site-to-Site VPN で接続している VPC を Transit Gateway に変更予定

今回お話しするネットワークの全体像

  • オンプレミス環境A
    • 複数の VPC が接続していて、その中の一つが VPN で Transit Gateway と接続している
  • オンプレミス環境B
    • Transit Gateway と Direct Connect でつながっている

Transit Gateway に Direct Connect を接続する場合の課題と解決策

Direct Connect Gateway ?

  • Direct Connect と Transit Gateway を接続する場合に必要
    • Direct Connect の VIF を Direct Connect Gateway に収容して、 Transit Gateway にアタッチする
  • Direct Connect のオンプレミス側終端と BGP による経路交換を担当している

Direct Connect Gateway の注意点

  • Direct Connect Gateway にアタッチした Direct Connect の VIF はデタッチできない
  • Direct Connect Gateway の作り直しは Direct Connect の VIF の作り直しを意味する

オンプレミス環境から Transit Gateway への経路伝播

  • オンプレミス環境に設置している Direct Connect の終端装置と Direct Connect Gateway が BGP で経路交換している
  • Direct Connect Gateway がプロパゲートしている Transit Gateway のルートテーブルに経路が伝播する

Transit Gateway からオンプレミス環境への経路伝播

  • Transit Gateway で持っている経路情報は伝播されない
    • VPC と Transit Gateway を接続した場合も VPC のルートテーブルに Transit Gateway 経由の静的経路を追加する
  • オンプレミス環境との BGP セッションを終端している Direct Connect Gateway に静的に書かれた経路情報が経路交換の対象
    • Direct Connect Gateway に登録するネットワーク情報が重要になってくる

Direct Connect Gateway に登録できるネットワーク情報

  • 登録できる経路は 20 prefix まで
    • ハードリミット
  • 多数のネットワークを Transit Gateway で収容した場合
    • 20 prefix のハードリミットがネックになることが予想できる
  • あらかじめ経路集約可能なネットワーク構成にしておく

Direct Connect の仮想インターフェース

  • Direct Connect が Transit Gateway に対応したときに、仮想インターフェースのタイプとして transit VIF が追加された
  • Direct Connect を Transit Gateway に収容する場合は、仮想インターフェースを transit VIF で作成する必要がある
    • 既存の Direct Connect では、仮想インターフェースを private か publicで作成しているはずなので注意が必要
    • 利用しようとするパートナーの Direct Connect の提供形態によっては transit VIFに対応していない場合があるので注意が必要

Transit Gateway のルートテーブルにおける経路の優先順位

Direct Connect 接続前の構成

  • オンプレミスBの経路
    • オンプレミスAに伝播してVPNに接続している

Direct Connect 接続後の構成

  • オンプレミスBの経路
    • 既存経路と、Direct Connect 経路の2つの経路で伝播する

どのように対応するか

  • 同一 prefix の場合は、以下の順番で選択される
    • 静的に入れた経路情報
    • VPC 由来の経路情報
    • Direct Connect Gateway から伝播した経路情報
    • Site-to-Site VPN から伝播した経路情報

構成変更による影響を最小限に抑える

  • それぞれの操作によって発生するネットワーク的変化を把握する
    1. Transit Gateway のルートテーブルにアタッチメントしてアソシエートしたら、 Direct Connect から Transit Gateway にパケットが流れるようになる
    2. Transit Gateway のルートテーブルにプロパゲートしたら、Transit Gateway から Direct Connect にパケットが流れるようになる
    3. Direct Connect Gateway に経路情報を追加すると、オンプレミス環境から Direct Connect Gateway までパケットが到達する

  • オンプレミス側で Direct Connect を収容しているルータで BGP ピアがアップしたときの状態を想定
    1. オンプレミス側から Transit Gateway に広報される経路情報
    2. Direct Connect Gateway からオンプレミス側のルータに広報される経路情報
    3. Direct Connect Gateway から広報された経路によって生じるオンプレミス側のネットワークの経路情報の変化

  • 各手順で発生するネットワーク的な変化に矛盾が生じないように手順を考える
    • 逆方向の経路がおかしな経路になっていないか
  • 必要に応じてオンプレミス側のネットワーク設定を変更する
  • Transit Gateway のルートテーブルにプロパゲートすることが適切かを考える
    • アソシエートして、静的経路を書くだけで Transit Gateway から Direct Connect にパケットを流すことも可能

まとめ

Transit Gateway と Direct Connect を接続するときに注意すること

  • Direct Connect Gateway が必要
  • Direct Connect の仮想インターフェースは transit VIF で作成する
  • Direct Connect との経路交換は AWS Site-to-Site VPN と異なる

Transit Gateway に複数のオンプレミス環境を収容した場合は、経路の優先順位に気をつける
トラブルを未然に防ぐために、ネットワーク全体を俯瞰して作業計画を立てる