「毎月のデータ転送コストが想定以上にかかっていて、どう改善すれば良いか分からない」
こういった相談は、AWSを本番稼働させているエンジニアからセミナーでもよく出てきます。Site-to-Site VPNは手軽に構築できますが、インターネット経由という構造上、帯域保証がなく転送コストも高くなりがちです。
この記事では、AWS Direct Connectの基本概念から、仮想インターフェース(VIF)の3種類の使い分け、BGP設定の要点、そして可用性要件に応じた冗長構成パターンまでを解説します。CLIの実行例も交えながら、実務判断に必要な内容を一気にカバーします。
この記事のポイント
・AWS Direct Connectは専用物理回線でAWSに直結し帯域が安定する
・VIFはPrivate・Public・Transitの3種類を用途で使い分ける
・本番環境はDX+VPNのアクティブ・スタンバイ冗長構成が定石
・CLIのdescribe-*コマンドでBGP状態と接続状態を確認できる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
なぜDirect Connectが必要なのか—Site-to-Site VPNとの違い
Site-to-Site VPNはIPsecトンネルをインターネット上に構築する方式で、数分で開通できます。手軽な反面、帯域がインターネット回線の混雑状況に左右され、AWSのデータ転送料金(アウトバウンド)の単価が高いのが課題です。Direct Connect(以下 DX)は、AWSのデータセンターと自社のルーターを専用の物理ケーブルで直結するサービスです。接続点となる「Direct Connect Location」を経由するため、通信経路にインターネットが入りません。
主な比較を整理すると次の通りです。
| 項目 | Site-to-Site VPN | Direct Connect |
|---|---|---|
| 通信経路 | インターネット(IPsecトンネル) | 専用物理回線 |
| 帯域保証 | なし(インターネット帯域依存) | あり(契約帯域を専有) |
| 帯域の選択肢 | インターネット回線速度に依存 | 50Mbps~100Gbps(タイプにより異なる) |
| レイテンシの安定性 | 時間帯・混雑で変動 | 安定(物理距離のみ) |
| データ転送料金 | アウトバウンド単価が高い | DXポート料金+低単価の転送料 |
| 開通までの期間 | 数分 | 数週間~数ヶ月(物理工事あり) |
Direct Connectの接続タイプと仮想インターフェースを理解する
1. DedicatedとHosted—物理接続の2タイプ
DXには物理接続の調達方式が2種類あります。Dedicated Connection(専用接続)
AWSから 1Gbps・10Gbps・100Gbps の専用ポートを直接払い出す方式です。DX Location にケーブルを引く物理工事が必要で、開通まで数週間~数ヶ月かかることがあります。大容量を長期で使う場合に向いています。
Hosted Connection(ホスト型接続)
NTT・SoftBank などの AWS パートナーが DX Location に引いた物理回線を共有し、50Mbps~10Gbps の帯域を切り出して提供する方式です。物理工事はパートナー側が担うため開通が比較的早く、小~中規模の帯域でも導入しやすいのが特徴です。
2. 仮想インターフェース(VIF)の3種類と使い分け
物理回線の上で論理的な接続を実現するのが VIF(Virtual Interface)です。用途に応じて3種類を使い分けます。Private VIF(プライベートVIF)
VGW(Virtual Private Gateway)または DX Gateway に接続し、VPC 内のプライベート IP(例: 10.0.0.0/8、172.16.0.0/12)に通信します。オンプレの端末から VPC 内の EC2 に直接アクセスするケースで最もよく使われます。
Public VIF(パブリックVIF)
S3・DynamoDB・CloudWatch などの AWS パブリックサービスに、専用回線から直接アクセスします。NAT Gateway を経由したインターネット転送コストを削減したい場合に有効です。
Transit VIF(トランジットVIF)
AWS Transit Gateway に直接接続し、複数 VPC への通信をハブ形式で一括管理します。マルチ VPC 構成やマルチアカウント構成での接続統合に適しています。
3. BGPルーティングの要点
DX では BGP(Border Gateway Protocol)でルーティング情報を交換します。AWS 側の BGP ASN はデフォルトで 64512 ですが、カスタム ASN も指定できます。オンプレ側には BGP 対応ルーターが必要です。BGP セッションが確立されると、AWS は VPC の CIDR を広告し、オンプレ側のルーターはオンプレ側の CIDR を広告します。この経路交換でエンドツーエンドのルーティングが実現します。
BGP MD5 認証を設定することで、不正なルーターが経路を注入することを防止できます。本番環境では必ず MD5 キーを設定しましょう。
冗長構成の設計パターン(可用性要件別)
DX を単独で使うのは本番環境では危険です。物理ケーブル断や DX Location 側の障害でアクセス不能になります。AWS ではいくつかの冗長パターンを公式に紹介しています。1. アクティブ・スタンバイ(DX+VPN バックアップ)
コストを抑えながら基本的な冗長性を確保するパターンです。・通常時: DX 経由で安定した低レイテンシ・低コスト通信を行う
・障害時: BGP が DX ルートを失うと自動的に Site-to-Site VPN へフェイルオーバーする
・注意点: VPN 側は帯域保証がないため、あくまで緊急時のバックアップとして設計する
オンプレ側のルーターで DX 経由の BGP ルートに高い Local Preference を設定することで、DX を優先経路にできます。障害時の VPN 自動切り替えを確認する定期的なテストも実施してください。
2. アクティブ・アクティブ(マルチロケーション冗長)
金融・医療など SLA が厳しいシステム向けのパターンです。・2か所以上の DX Location からそれぞれ別の物理回線を引く
・1本の回線が断絶しても他の回線で通信を継続できる
・AWS は「2ロケーション×2接続 = 4接続構成」を最高可用性パターンとして推奨
AWS でのマルチ AZ 冗長設計の全体像を体系的に学びたい場合は、ハンズオン形式で学べるAWSマスターセミナー【上級編】も参考にしてみてください。Direct Connect の冗長構成は、マルチ AZ 設計や RDS フェイルオーバーと組み合わせて初めて完全な可用性設計になります。
Direct Connectの設定手順(CLIで接続状態を確認する)
AWS CLI を使って DX 接続・VIF・BGP ピアの状態を確認する手順を示します。1. DX接続の状態確認
# DX接続の一覧と状態を確認する $ aws directconnect describe-connections --region ap-northeast-1 \ --query 'connections[*].{Name:connectionName,State:connectionState,BW:bandwidth}' \ --output table ------------------------------------------------------------------- | DescribeConnections | +----------+-------------------------------+---------------------+ | BW | Name | State | +----------+-------------------------------+---------------------+ | 1Gbps | corp-to-aws-tokyo-primary | available | | 1Gbps | corp-to-aws-osaka-secondary | available | +----------+-------------------------------+---------------------+ # connectionState: available = 物理リンクが正常 # connectionState: down = 物理リンクの障害(ケーブル断・工事中等)
2. 仮想インターフェースのBGP状態を確認する
# VIFのBGPピア状態を確認する $ aws directconnect describe-virtual-interfaces --region ap-northeast-1 \ --query 'virtualInterfaces[*].{Name:virtualInterfaceName,Type:virtualInterfaceType,BGP:bgpPeers[0].bgpStatus,State:virtualInterfaceState}' \ --output table ------------------------------------------------------------------------------------ | DescribeVirtualInterfaces | +------+-----------------------------------+----------+---------------------------+ | BGP | Name | State | Type | +------+-----------------------------------+----------+---------------------------+ | up | private-vif-vpc-prod-primary | available| private | | up | private-vif-vpc-prod-secondary | available| private | +------+-----------------------------------+----------+---------------------------+ # bgpStatus: up = BGPセッションが正常に確立済み # bgpStatus: down = BGP接続の障害(ASN/認証キーの不一致等)
3. EC2からオンプレへの疎通確認(実行例)
VIF が available・BGP が up になったら、プライベート VIF 経由で EC2 からオンプレのホストへ疎通確認します。# EC2(Amazon Linux 2023: ip-10-0-1-45)からオンプレのホストへ疎通確認 [ec2-user@ip-10-0-1-45 ~]$ ping -c 4 192.168.10.100 PING 192.168.10.100 (192.168.10.100) 56(84) bytes of data. 64 bytes from 192.168.10.100: icmp_seq=1 ttl=62 time=2.31 ms 64 bytes from 192.168.10.100: icmp_seq=2 ttl=62 time=2.29 ms 64 bytes from 192.168.10.100: icmp_seq=3 ttl=62 time=2.30 ms 64 bytes from 192.168.10.100: icmp_seq=4 ttl=62 time=2.28 ms --- 192.168.10.100 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3004ms rtt min/avg/max/mdev = 2.284/2.296/2.314/0.011 ms # 2ms台の安定したレイテンシ = 専用線接続の特徴 # インターネットVPN経由では20ms~50ms以上に変動するケースが多い
また、Private VIF 経由でオンプレ側の DNS サーバーを使う場合は、EC2 の /etc/resolv.conf(または nmcli の dns 設定)との連携が必要です。Linux の DNS 設定についてはLinux DNS 設定の基本を参照してください。
トラブルシュート—よくある問題と対処法
「BGPステータスがdownのまま上がらない」
BGP セッションが確立しない原因は、設定値の不一致がほとんどです。次の順番で確認します。・VIF の BGP 設定(ASN・MD5 認証キー・BGP IP アドレス)がオンプレルーターの設定と完全一致しているか
・VLAN タグ番号がオンプレのトランクポート設定と一致しているか
・ファイアウォールが BGP ポート(TCP 179)をブロックしていないか
# VIFのBGP詳細設定を確認する $ aws directconnect describe-virtual-interfaces \ --virtual-interface-id dxvif-xxxx1234 \ --query 'virtualInterfaces[0].bgpPeers' [ { "asn": 65001, "authKey": null, "amazonAddress": "175.45.xxx.1/30", "customerAddress": "175.45.xxx.2/30", "bgpPeerState": "available", "bgpStatus": "down" } ] # bgpStatus: down の場合はASN/MD5キー/VLAN番号の不一致を疑う
「connectionStateがpendingのまま変わらない」
Dedicated Connection の物理工事完了前は pending 状態が続きます。LOA-CFA(Letter of Authorization and Connecting Facility Assignment)を AWS から発行し、コロケーション事業者に工事依頼が完了しているか確認します。# LOA(接続承認書)の発行確認 $ aws directconnect describe-loa --connection-id dxcon-abcd1234 \ --provider-name "YOUR-ISP-NAME" --loa-content-type application/pdf \ --output text 2>&1 | head -3 # LOA が発行済みなら Base64 エンコードの PDF データが返る # "LoaContent not available" が返る場合はまだ未発行
「DX経由で繋がるはずのEC2にアクセスできない」
BGP が up でも EC2 への通信が通らない場合、VPC 側の設定を確認します。・VGW がターゲット VPC に正しくアタッチされているか
・VPC ルートテーブルで VGW からの経路伝播(Route Propagation)が有効になっているか
・セキュリティグループがオンプレ側 CIDR からのインバウンドを許可しているか
・Network ACL がオンプレ側 CIDR を拒否していないか
# VPCルートテーブルにDX経由の経路が伝播されているか確認 $ aws ec2 describe-route-tables \ --filters "Name=vpc-id,Values=vpc-0a1b2c3d4e5f6g7h" \ --query "RouteTables[*].Routes[?Origin=='EnableVgwRoutePropagation']" \ --output table # 出力例(オンプレ CIDR が伝播済みの正常状態) --------------------------------------------------------------------------- | DestinationCidrBlock | GatewayId | State | +------------------------+-----------------+----------------------------+ | 192.168.0.0/16 | vgw-xxxx5678 | active | +------------------------+-----------------+----------------------------+ # このエントリが存在しない場合は VGW の Route Propagation が無効
本記事のまとめ
| やりたいこと | コマンドまたは設計ポイント |
|---|---|
| DX接続の物理状態確認 | aws directconnect describe-connections --region ap-northeast-1 |
| VIFとBGPピアの状態確認 | aws directconnect describe-virtual-interfaces --region ap-northeast-1 |
| BGP設定の詳細確認 | aws directconnect describe-virtual-interfaces --virtual-interface-id dxvif-xxxx |
| LOA(接続承認書)発行確認 | aws directconnect describe-loa --connection-id dxcon-xxxx |
| VPCへのルート伝播確認 | aws ec2 describe-route-tables --filters "Name=vpc-id,Values=vpc-xxxx" |
| コスト優先の冗長構成 | DX(プライマリ)+Site-to-Site VPN(バックアップ)のアクティブ・スタンバイ |
| 可用性最優先の冗長構成 | マルチロケーション2ロケーション×2接続(AWS推奨の4接続構成) |
AWS 環境での Linux サーバー構築・運用をさらに深く学びたい方は、AWS(Amazon Linux)の基礎から実践まで解説した入門ガイドもぜひ参考にしてください。
AWS Direct Connectの設計を「実務の型」として身につけませんか?
DXの接続方法は調べれば分かります。でも「なぜ VPN ではなく DX を選ぶのか」「冗長構成パターンをどう判断するのか」を現場で説明できますか?
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら
- 前のページへ:AWS Global Acceleratorでマルチリージョン冗長化を設計する方法|Anycast IPとエンドポイントグループの実践設定
- この記事の属するカテゴリ:AWS(Amazon Linux)へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。
登録無料・いつでも解除できます