概要
AWS Site-to-Site VPNでBGPを使用すると、対向ルーターのダウンやBGPセッション切断時に、VPCルートテーブルから該当ルートが自動削除されます。この動的ルート制御の仕組みとメリットを、BGP初心者向けに解説します。
目次
- はじめに
- AWS Site-to-Site VPNとは
- Site-to-Site VPNの2つのルーティング方式
- BGPとは何か
- BGPを使ったSite-to-Site VPNの動作
- 障害時の自動ルート削除の仕組み
- 実践的なユースケースとメリット
- 設定のポイントと確認方法
- 料金について
- 終わりに
はじめに
クラウドとオンプレミスをシームレスに接続する必要性が高まる中、多くの企業がAWSとの安全な通信手段を模索しています。AWS Site-to-Site VPNは、インターネット経由で暗号化されたVPN接続を提供し、オンプレミスネットワークとAWS VPCを接続する実用的なソリューションです。
本記事では、Site-to-Site VPNでBGP(Border Gateway Protocol)を使用した動的ルーティングに焦点を当て、特に障害時の自動ルート削除という重要な機能について詳しく解説します。この記事は、AWSの基本知識を持ち、ネットワークの冗長性や可用性向上に関心のある方を対象としています。
AWS Site-to-Site VPNとは
基本概念
AWS Site-to-Site VPNは、オンプレミスのネットワークとAmazon VPCの間に、インターネットを経由した暗号化されたIPsecトンネルを確立するマネージドサービスです。このサービスにより、オンプレミスのデータセンターやオフィスからAWSリソースへ安全にアクセスできます。
主要コンポーネント
Site-to-Site VPNは以下の3つの主要コンポーネントで構成されます:
| コンポーネント | 説明 |
|---|---|
| Virtual Private Gateway(VGW) | AWS側のVPNエンドポイント。VPCにアタッチして使用します |
| Customer Gateway(CGW) | オンプレミス側のVPNデバイス(物理または仮想ルーター) |
| VPN接続 | VGWとCGWの間を結ぶIPsecトンネル(通常2本の冗長トンネル) |
使用場面
Site-to-Site VPNは以下のようなシーンで活用されます:
- ハイブリッドクラウド環境の構築(オンプレミスとクラウドの統合)
- 災害対策やバックアップ環境としてのAWS活用
- オンプレミスからAWSリソースへの安全なアクセス
- 複数拠点とAWSの接続
Site-to-Site VPNの2つのルーティング方式
AWS Site-to-Site VPNでは、ルーティング情報の管理方法として「Static VPN(静的ルーティング)」と「Dynamic VPN(動的ルーティング/BGP)」の2つの方式を選択できます。
Static VPNとDynamic VPN(BGP)の違い
| 項目 | Static VPN | Dynamic VPN(BGP) |
|---|---|---|
| 設定方法 | AWS管理コンソールで手動でルートを登録 | BGPプロトコルで自動的にルート交換 |
| 柔軟性 | ルート変更時に手動更新が必要 | ルート変更が自動的に反映される |
| 障害時の挙動 | ルートが自動削除されない(手動削除が必要) | BGPセッション切断時に自動的にルート削除 |
| 適用シーン | シンプルな構成、BGP非対応機器 | 冗長化構成、複雑なネットワーク |
| フェイルオーバー | デバイス依存(DPDなどに依存) | BGPの堅牢な死活監視機能を活用 |
なぜBGPが推奨されるのか
AWSの公式ドキュメント ( https://docs.aws.amazon.com/vpn/latest/s2svpn/vpn-static-dynamic.html ) では、『BGPプロトコルは、最初のトンネルがダウンした場合に2番目のVPNトンネルへのフェイルオーバーを支援する堅牢な死活検出チェックを提供する』と説明されています。
BGPを使用する主なメリット:
- 自動フェイルオーバー:障害発生時にルートが自動的に削除・更新される
- 運用負荷の軽減:ルート変更を手動で管理する必要がない
- ネットワークの可視性向上:BGPセッションの状態でトンネルの健全性を把握できる
- 複雑な構成への対応:複数拠点接続やマルチパス構成を柔軟に管理できる
BGPとは何か
BGPの基本的な役割
BGP(Border Gateway Protocol)は、インターネット上で広く使用されている経路制御プロトコルです。異なるネットワーク(自律システム:AS)間で経路情報を交換し、最適な通信経路を決定する役割を担っています。
日常的なアナロジーで理解する
BGPの役割を郵便配達に例えると分かりやすいでしょう。郵便局(ルーター)は、他の郵便局と定期的に配達ルート情報を交換します。ある道路(トンネル)が通行止め(障害)になった場合、その情報が即座に他の郵便局に伝わり、別のルートで配達が継続されます。BGPも同様に、ネットワークの状態変化を検知し、他のルーターと情報を共有することで、常に有効な経路を維持します。
AWS Site-to-Site VPNにおけるBGPの位置づけ
Site-to-Site VPNでBGPを使用する場合、オンプレミス側のCustomer GatewayとAWS側のVirtual Private Gateway間でBGPセッションを確立します。両者は定期的にキープアライブメッセージを交換し、互いの生存状態を監視しながら、経路情報(プレフィクス)をアドバタイズします。
BGPを使ったSite-to-Site VPNの動作
BGPセッションの確立プロセス
BGPセッションは以下のステートマシンに従って確立されます:
- Idle状態:BGP設定後の初期状態。TCP接続開始のトリガーを待つ
- Connect状態:TCPの3ウェイハンドシェイクを試行
- OpenSent状態:BGP OPENメッセージを送信し、相手からの応答を待つ
- OpenConfirm状態:相手からOPENメッセージを受信し、KEEPALIVEメッセージを交換
- Established状態:BGPセッションが確立され、経路情報の交換が可能
経路情報の交換と学習の流れ
BGPセッションが確立されると、以下の流れで経路情報が交換されます:
- アドバタイズ(広告):各側が持つネットワークプレフィクス(例:10.0.0.0/16)をBGP UPDATEメッセージで相手に通知
- 学習:受信したプレフィクスをBGPルーティングテーブルに格納
- ベストパス選択:複数の経路がある場合、BGPの属性(AS_PATH、LOCAL_PREF等)に基づき最適経路を選択
- キープアライブ:デフォルトで30秒間隔のKEEPALIVEメッセージでセッションを維持(VPN接続の場合)
VPCルートテーブルへの反映メカニズム
BGPで学習した経路は、以下のメカニズムでVPCルートテーブルに反映されます:
- Customer Gatewayがオンプレミスのネットワークプレフィクス(例:172.16.0.0/16)をBGPでアドバタイズ
- Virtual Private GatewayがこのプレフィクスをBGPルーティングテーブルに学習
- VPCルートテーブルで「ルート伝播(Route Propagation)」を有効化している場合、学習したプレフィクスが自動的にルートテーブルに追加される
- VPC内のリソースは、追加されたルートを使用してオンプレミスネットワークと通信可能になる
障害時の自動ルート削除の仕組み
BGPを使用したSite-to-Site VPNの最大のメリットの一つが、障害発生時の自動ルート削除機能です。この仕組みを理解することで、ネットワークの可用性設計に役立てることができます。
対向ルーターダウン時の動作
オンプレミス側のCustomer Gatewayルーターが物理的に停止した場合、以下の流れでルートが削除されます:
- 障害発生:Customer Gatewayルーターの電源断やハードウェア障害により停止
- キープアライブ失敗:AWS側のVirtual Private GatewayがBGPキープアライブメッセージの応答を受信できなくなる
- ホールドタイマー満了:デフォルト30秒のホールドタイマーが満了(VPN接続の場合)
- BGPセッション切断:BGPセッションが切断され、Idle状態に遷移
- ルート削除:BGPで学習していたプレフィクスがVPCルートテーブルから自動的に削除される
BGPセッション切断時の動作
ルーター自体は稼働していても、BGPセッションだけが切断されるケースもあります:
主な原因:
- ネットワーク輻輳によるパケットロス
- BGP設定ミス(ASN不一致、認証エラー等)
- CPU負荷上昇によるBGPプロセスの遅延
この場合も、キープアライブの失敗からホールドタイマー満了までの流れは同じで、最終的にルートが削除されます。
ルートテーブルからのプレフィクス削除プロセス
VPCルートテーブルからのルート削除は以下のプロセスで実行されます:
- BGPセッションが切断されると、Virtual Private Gatewayは該当セッションで学習していた全てのプレフィクスを無効化
- ルート伝播が有効なVPCルートテーブルから、これらのプレフィクスが自動的に削除される
- 削除されたプレフィクス宛のトラフィックは、ルートテーブル内の他のルート(デフォルトルート等)に従って転送される
タイムラインでの具体的な挙動
典型的な障害シナリオのタイムラインを示します:
| 時刻 | イベント | 説明 |
|---|---|---|
| T+0秒 | 障害発生 | Customer Gatewayがダウン |
| T+0秒〜T+30秒 | キープアライブ失敗 | AWS側がKEEPALIVEの応答を受信できない |
| T+30秒 | ホールドタイマー満了 | BGPホールドタイマー(デフォルト30秒)が満了 |
| T+30秒 | BGPセッション切断 | セッションが切断され、BGP NOTIFICATIONメッセージが送信される |
| T+30秒〜T+35秒 | ルート削除 | VPCルートテーブルから学習済みプレフィクスが削除 |
| T+35秒以降 | トラフィック転送停止 | 該当プレフィクス宛のトラフィックは別ルートまたはドロップ |
注意点:
- ホールドタイマーの値はデフォルト30秒ですが、カスタマイズ可能です(最小3秒まで短縮可能)
- タイマー値を過度に短くすると、一時的なネットワーク遅延でもセッションが切断される可能性があります
- オンプレミス側のルーターベンダーに推奨されるタイマー値を確認することを推奨します
実践的なユースケースとメリット
冗長化構成でのフェイルオーバー
BGPの自動ルート削除機能は、冗長化構成で真価を発揮します。
典型的な冗長構成:
- 2つのCustomer Gatewayルーターを用意(プライマリとセカンダリ)
- 各ルーターから1つずつVPN接続を確立(合計2つのVPN接続)
- BGPでプライマリ経路を優先するようにローカルプリファレンスやMEDを設定
フェイルオーバーシナリオ:
プライマリルーターがダウンすると、30秒程度でBGPセッションが切断され、プライマリ経由のルートがVPCルートテーブルから削除されます。この時点でセカンダリ経由のルートのみが残り、トラフィックは自動的にセカンダリ経路に切り替わります。
マルチサイト接続での経路制御
複数のオンプレミス拠点(東京、大阪、福岡など)とAWSを接続する場合、BGPを使用することで各拠点の経路情報を動的に管理できます。
メリット:
- 各拠点が異なるネットワークプレフィクスをアドバタイズ
- AWS側で全ての拠点への経路を自動学習
- 拠点追加時もBGP設定だけで経路が自動反映(静的ルートの手動追加不要)
自動フェイルオーバーによる運用負荷軽減
Static VPNでは、障害発生時に以下の手動作業が必要です:
- 障害検知
- AWS管理コンソールでのルート削除
- セカンダリ経路への切り替え確認
BGPを使用すれば、これら全てが自動化されます。運用チームは障害対応ではなく、根本原因の調査と恒久対策に集中できます。
注意点とベストプラクティス
注意点:
- BGPセッションとIPsecトンネルは異なる概念です。IPsecトンネルが確立していてもBGPセッションが切断されていれば、ルートは削除されます
- ルート伝播を無効化している場合、BGPで学習した経路は自動反映されません
- 同一プレフィクスを複数の経路でアドバタイズする場合、BGP属性により優先経路が決定されます
ベストプラクティス:
- 本番環境では必ず冗長化構成を採用する
- BGPタイマーは慎重に調整する(デフォルトから大幅に変更しない)
- CloudWatch Logsを有効化し、BGPセッションの状態変化を監視する
- 定期的にフェイルオーバーテストを実施し、切り替え時間を測定する
設定のポイントと確認方法
AWS側の設定要点
Site-to-Site VPN接続を作成する際、以下の設定が必要です:
1. Customer Gateway作成時の設定:
- BGP ASN(自律システム番号):オンプレミス側のBGP ASNを指定(例:65000)
- IPアドレス:オンプレミスルーターの公開IPアドレス
2. Virtual Private Gateway作成時の設定:
- AWS側のBGP ASN:デフォルトは64512、カスタマイズ可能
3. VPN接続作成時の設定:
- ルーティングオプション:「Dynamic(requires BGP)」を選択
- Virtual Private GatewayとCustomer Gatewayを関連付け
4. VPCルートテーブルの設定:
- 対象サブネットのルートテーブルで「ルート伝播」を有効化
- これによりBGPで学習した経路が自動的にルートテーブルに追加されます
オンプレミス側で必要な設定項目の概要
オンプレミス側の設定は使用するルーター機器に依存しますが、一般的に以下の項目が必要です:
BGP基本設定:
- ローカルBGP ASN(Customer Gateway作成時に指定したASN)
- BGPネイバー設定(AWS側のトンネル内部IPアドレスを指定)
- リモートBGP ASN(Virtual Private Gatewayで設定したASN)
タイマー設定(オプション):
- キープアライブタイマー(デフォルト10秒)
- ホールドタイマー(デフォルト30秒)
経路アドバタイズ設定:
- オンプレミスネットワークのプレフィクスをBGPでアドバタイズ
- 必要に応じてルートフィルタリングやBGP属性の設定
AWS管理コンソールからVPN接続の設定ファイルをダウンロードすると、機器固有の設定例が含まれています。この設定ファイルを参考にすることを強く推奨します。
動作確認の方法
1. VPCルートテーブルの確認:
- VPC管理コンソールで対象ルートテーブルを開く
- 「ルート」タブでBGPで学習したプレフィクスが表示されることを確認
- ターゲットがVirtual Private Gatewayになっていることを確認
2. VPN接続のモニタリング:
- VPC管理コンソールの「Site-to-Site VPN接続」で対象接続を選択
- 「トンネルの詳細」タブでトンネルステータスが「UP」であることを確認
- 「BGPルート」タブで学習済みルートを確認(2024年11月以降、BGPログ機能が利用可能)
3. BGPセッション状態の確認:
- オンプレミス側ルーターでBGPネイバーの状態を確認
- セッション状態が「Established」であることを確認
- 学習済みプレフィクス数を確認
4. CloudWatch Logsでの監視:
2025年11月以降、BGPログをCloudWatch Logsに出力できるようになりました。これにより、BGPセッションの状態遷移、ルートアップデート、エラー状態などを詳細に監視できます。
料金について
ap-northeast-1(東京リージョン)の料金
AWS Site-to-Site VPNの料金は主に以下の2つの要素で構成されます(2025年12月時点):
1. VPN接続時間料金:
- 標準VPN接続(1.25Gbps):$0.05/時間
- 5Gbps VPN接続:$0.60/時間
- 1ヶ月(730時間)稼働の場合:標準VPNで約$36.50/月
2. データ転送料金:
- データ転送IN(AWSへの転送):無料
- データ転送OUT(AWSからの転送):最初の100GBは無料、以降$0.09/GB(〜10TB)
3. パブリックIPv4アドレス料金:
- 各VPN接続は2つのトンネルで固有のパブリックIPv4アドレスを使用
- 標準的なパブリックIPv4アドレス料金が適用されます
料金計算例
シナリオ:東京リージョンで標準VPN接続を1つ作成し、30日間(720時間)稼働。月間10TBのデータをAWSに転送し、5TBをAWSから転送。
| 項目 | 計算 | 料金 |
|---|---|---|
| VPN接続時間 | 720時間 × $0.05 | $36.00 |
| データ転送IN | 10TB(無料) | $0.00 |
| データ転送OUT | (5,120GB - 100GB) × $0.09 | $451.80 |
| 合計 | - | $487.80/月 |
料金の注意点
- 料金は変動する可能性があります。最新情報は必ず公式料金ページ ( https://aws.amazon.com/vpn/pricing/ ) で確認してください
- Transit Gatewayを使用する場合、別途Transit Gatewayのアタッチメント料金($0.05/時間)とデータ処理料金($0.02/GB)が発生します
- Accelerated VPNを使用する場合、AWS Global Acceleratorの料金とデータ転送プレミアム料金が追加されます
- BGPを使用するかStatic VPNを使用するかで料金は変わりません(どちらも同じVPN接続料金)
終わりに
本記事では、AWS Site-to-Site VPNでBGPを使用することの利点、特に障害時の自動ルート削除の仕組みについて解説しました。
BGPを使うことで得られる主なメリット
- 自動フェイルオーバー:障害発生時に約30秒でルートが自動削除され、セカンダリ経路へ切り替わる
- 運用負荷の軽減:手動でのルート管理が不要になり、運用チームは本質的な業務に集中できる
- ネットワークの可視性:BGPセッションの状態でトンネルの健全性を継続的に監視できる
- スケーラビリティ:複数拠点接続やマルチパス構成を柔軟に管理可能
Static VPNとの使い分け指針
BGPを推奨するケース:
- 本番環境での冗長化構成
- 複数拠点とAWSの接続
- 自動フェイルオーバーが必要な環境
- ネットワーク構成が頻繁に変更される環境
Static VPNを選択するケース:
- オンプレミスルーターがBGPに対応していない
- 非常にシンプルな構成(単一拠点、冗長化不要)
- 検証・開発環境での一時的な接続
次のステップ
BGPを使ったSite-to-Site VPNの基本を理解したら、以下のステップに進むことを推奨します:
- 冗長化構成の設計:2つのCustomer Gatewayと2つのVPN接続を使った完全冗長構成を検討
- 監視の設定:CloudWatch LogsでBGPログを有効化し、アラームを設定
- フェイルオーバーテスト:本番投入前に計画的なフェイルオーバーテストを実施
- Direct Connectの検討:より高い帯域幅や低レイテンシが必要な場合、Direct Connectへの移行を検討
AWSとオンプレミスのハイブリッド環境を構築する際、BGPを活用した動的ルーティングは、ネットワークの可用性と運用効率を大幅に向上させる強力なツールです。ぜひ本記事の内容を参考に、堅牢なネットワークインフラを構築してください。
参考文献・参考サイト
AWS公式ドキュメント
- 「What is AWS Site-to-Site VPN?」AWS Documentation, https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html
- 「AWS Site-to-Site VPN routing options」AWS Documentation, https://docs.aws.amazon.com/vpn/latest/s2svpn/VPNRoutingTypes.html
- 「Static and dynamic routing in AWS Site-to-Site VPN」AWS Documentation, https://docs.aws.amazon.com/vpn/latest/s2svpn/vpn-static-dynamic.html
- 「Get started with AWS Site-to-Site VPN」AWS Documentation, https://docs.aws.amazon.com/vpn/latest/s2svpn/SetUpVPNConnections.html
- 「AWS VPN Pricing」AWS, https://aws.amazon.com/vpn/pricing/
- 「Monitoring your Site-to-Site VPN connection」AWS Documentation, https://docs.aws.amazon.com/vpn/latest/s2svpn/monitoring-overview-vpn.html
参考記事
- 「BGP routing in AWS Site-to-Site VPN connections」AWS Networking & Content Delivery Blog, https://aws.amazon.com/blogs/networking-and-content-delivery/
- 「Understanding BGP fundamentals」Cloudflare Learning Center, https://www.cloudflare.com/learning/security/glossary/what-is-bgp/


