インフラ

AWS VPNとは?2方式の料金実額とCLI構築手順・専用線との分岐点

AWS VPNとは?2方式の料金実額とCLI構築手順・専用線との分岐点

AWS VPNは、オンプレミスの拠点や手元の端末とAmazon VPCの間に、インターネット越しの暗号化トンネルを張るマネージドサービスです。拠点間をIPsecで結ぶSite-to-Site VPNと、端末ごとにOpenVPNで接続するClient VPNの2方式があり、どちらを選ぶかで月額は35ドル前後から600ドル超まで動きます。この記事では、AWS公式のPrice List APIから取り出した東京リージョンの実額単価、トンネルの帯域とMTUの上限、CLIとTerraformでの構築コード、専用線や自前VPNへ切り替える条件を実装者の目線で整理します。VPNそのものの仕組みを押さえたうえで、AWS上での接続方式を決める材料にしてください。

まとめ:AWS VPNは構成の選び方で月額が35ドルから1,600ドル超まで動く

AWS VPNの料金は従量課金と説明されますが、実態の大半は接続を張っている時間に対する固定費です。東京リージョンでSite-to-Site VPN接続1本は0.048ドル毎時、730時間換算で月およそ35ドル。Transit Gatewayを挟むと月額は86ドル前後に増えます。

Client VPNはさらに読みにくい構造です。エンドポイントとサブネットの関連付け1件につき0.15ドル毎時、クライアント接続1本につき0.05ドル毎時という二階建てで、サブネットを2つ関連付けて50人が月160時間つなぐと合計619ドルに達します。

判断の軸は3つです。拠点とVPCを常時つなぐならSite-to-Site VPN、帯域が1.25Gbpsで足りなければ大容量トンネル、拠点が19を超えるならVPN Concentratorへ集約します。端末単位の接続で人数が数十人を超えるなら、自前のVPNサーバーのほうが安く収まる場面もあります。

Site-to-Site VPNとClient VPNという2方式の構造と適用場面

AWS VPNという単一のサービスがあるわけではなく、接続する主体が「拠点」か「端末」かで別サービスに分かれます。

拠点間をIPsecでつなぐSite-to-Site VPNの2トンネル構成

Site-to-Site VPNは、オンプレミス側のルーター(カスタマーゲートウェイ)とAWS側のゲートウェイの間にIPsecトンネルを張り、拠点のネットワークとVPCを相互に到達可能にします。AWS側の終端は仮想プライベートゲートウェイかTransit Gatewayのいずれかです。

特徴的なのは、1つのVPN接続が必ず2本のトンネルで構成される点です。公式ドキュメントのトンネルオプションでは、2本がそれぞれ異なるアベイラビリティゾーンで終端し、片方が保守で落ちても残り1本へ自動的に切り替わると説明されています。ただし切り替えが働くのは、拠点側ルーターで2本とも設定してある場合に限られます。片系しか設定していない構成は珍しくありません。AWS側のトンネル保守が、そのまま通信断になります。

ルーティングは静的と動的(BGP)から選べます。拠点が増える見込みがあるならBGPを選んでください。静的ルーティングではECMPによる帯域の積み増しが使えません。

端末単位で接続するClient VPNのOpenVPN方式と443番ポート

Client VPNの管理者ガイドによれば、Client VPNはOpenVPNベースのクライアントからTLS接続を張るマネージド型のリモートアクセスVPNです。待ち受けポートはTCPとUDPの443番と1194番に対応し、既定は443番。社外ネットワークで1194番が塞がれていても通りやすいという理由からです。

認証はActive Directory連携、相互証明書認証、SAMLによるフェデレーションの3系統に対応します。Site-to-Site VPN側の認証オプションが事前共有キーと証明書の2択であるのと比べると、ID基盤と接続する前提で設計されたサービスです。

接続先はVPCのサブネットを関連付ける方式のほか、Transit Gatewayへ直接アタッチする構成が使えます。VPCが複数ある環境では、後者のほうが関連付けの課金を抑えられます。

標準トンネル1.25Gbpsと大容量5Gbpsの帯域上限とpps値

帯域の上限はSite-to-Site VPNのクォータ一覧に明記されています。標準トンネルは1本あたり最大1.25Gbps、毎秒パケット数は最大140,000pps。大容量トンネル(Large Bandwidth Tunnel)では1本5Gbps・400,000ppsまで引き上げられます。

大容量トンネルには制約があります。Transit GatewayまたはCloud WANに接続したVPNでのみ使え、仮想プライベートゲートウェイでは使えません。2本のトンネルは同じ帯域設定に揃える必要があり、Accelerated VPNとの併用は不可、カスタマーゲートウェイは固定IPを持つものに限られます。

トンネル種別 帯域上限 pps上限 接続先の条件
標準 1.25 Gbps 140,000 VGW・TGWとも可
大容量(LBT) 5 Gbps 400,000 TGWまたはCloud WAN
Concentrator 100 Mbps 10,000 TGW接続かつBGP

5Gbpsを超える帯域が要るときは、複数のVPN接続をECMPで束ねます。

AWS VPN東京リージョンの実額単価と月額請求が膨らむ課金構造

以下の単価は、AWSが公開しているPrice List APIのap-northeast-1向け料金ファイル(AmazonVPCは2026年9月11日公開版、AWS Direct Connectは同年9月15日公開版)から取り出した実額です。取得手順は次章のcurlコマンドで再現できます。

Site-to-Site VPN接続の0.048ドル毎時と経路別の加算

東京リージョンのSite-to-Site VPN接続は0.048ドル毎時、月730時間で35.04ドルです。AWS VPNの料金ページにある体系のとおり、これにVPN経由の下りデータ転送料と、接続が使うパブリックIPv4アドレスの料金(使用中で0.005ドル毎時)が加わります。

見落としやすいのが接続先による加算です。仮想プライベートゲートウェイに直結する構成なら追加はありません。Transit Gateway経由にすると、VPNアタッチメント1本につき0.07ドル毎時と、処理データ1GBあたり0.02ドルが上乗せされます。VPN本体より高い単価です。

構成 時間単価 月額(730時間)
VPN接続のみ(VGW直結) 0.048 USD 35.04 USD
VPN接続+TGWアタッチ 0.118 USD 86.14 USD
大容量トンネル接続 0.600 USD 438.00 USD

大容量トンネルの0.60ドル毎時は標準の12.5倍です。帯域は4倍にしかならないので、常時1.25Gbpsを使い切っているかをCloudWatchで確認してから切り替えてください。ピークだけ超えるなら、ECMPで標準トンネルを2本に増やすほうが月額は下がります。

Client VPNはエンドポイント0.15ドルと接続0.05ドルの二重課金

Client VPNの東京リージョン単価は、エンドポイント関連付けが0.15ドル毎時、クライアント接続が0.05ドル毎時です。前者は「エンドポイントとサブネットの組み合わせ1件ごと」に発生します。可用性のために2つのアベイラビリティゾーンのサブネットを関連付ければ、誰も接続していなくても0.30ドル毎時、月219ドルが確定で積まれます。

さらにClient VPNのネットワークインターフェースには、インターネットゲートウェイを持つサブネットへ関連付けた場合Elastic IPが割り当てられ、使用中のパブリックIPv4アドレスとして0.005ドル毎時が課金されます。関連付け・接続時間・IPアドレス・データ転送の4系統が同時に動く構造です。

利用50人の月額試算が600ドルを超える理由と固定費の削り方

50人の開発チームが在宅勤務でClient VPNを使う前提で試算します。関連付けは2サブネット、1人あたりの接続時間は営業日20日×8時間=160時間としました。

  • 関連付け:0.15 USD × 2 × 730時間 = 219.00 USD
  • 接続時間:0.05 USD × 160時間 × 50人 = 400.00 USD
  • 合計:619.00 USD(データ転送とIPアドレス分を除く)

人数が100人になれば接続料は800ドル、合計は1,000ドルを超えます。削る余地は接続時間にあり、接続ハンドラーでアイドルセッションを落とす仕組みを入れて実効時間が3割減れば、月120ドル前後が浮きます。

19拠点を境にVPN Concentratorが安くなる集約の判断

2025年11月に追加されたSite-to-Site VPN Concentratorは、多数の小規模拠点を1つのTransit Gatewayアタッチメントに集約する仕組みです。1台あたり最大100サイト、総帯域5Gbps、サイトあたり100Mbpsまでで、ルーティングはBGPのみです。

東京リージョンの単価はConcentrator本体が1.95ドル毎時、収容するサイト1件につき0.01ドル毎時。拠点ごとにVPN接続を張ってTransit Gatewayへ挿す従来方式は、1拠点あたり0.048+0.07=0.118ドル毎時です。両者が釣り合う拠点数nは、0.118n = 1.95 + 0.07 + 0.01n を解いて約18.7、つまり19拠点で逆転します。

拠点数 個別VPN接続 Concentrator
10拠点 861 USD 1,547 USD
19拠点 1,637 USD 1,613 USD
25拠点 2,154 USD 1,657 USD

店舗やサテライトオフィスを20か所以上抱えるなら、Concentratorへ寄せたほうが安く済みます。拠点が10前後なら個別接続のままが安いので、拠点数だけを見て飛びつかないでください。サイトあたり100Mbpsの上限があるため、本社のような太い拠点は個別接続で残します。

AWS CLIとTerraformで作るSite-to-Site VPN接続の手順

コンソールの画面手順は版が変わると使えなくなるため、CLIとTerraformの記述を示します。

create-vpn-connectionでトンネル冗長を作る実行例

先に拠点側ルーターの情報をカスタマーゲートウェイとして登録し、続いてVPN接続を作ります。BGPを使うのでASNを指定します。

aws ec2 create-customer-gateway \
  --type ipsec.1 \
  --bgp-asn 65000 \
  --ip-address 203.0.113.10 \
  --device-name onprem-rtr01

次にVPN接続です。create-vpn-connectionのリファレンスにあるとおり、2本のトンネルそれぞれに内部CIDRとIKEバージョンを指定できます。省略するとAWSが既定値を割り当てますが、拠点側ルーターの設定と衝突しやすいので明示を勧めます。

aws ec2 create-vpn-connection \
  --type ipsec.1 \
  --customer-gateway-id cgw-0abc123456789 \
  --transit-gateway-id tgw-0def456789abc \
  --options '{"StaticRoutesOnly":false,"TunnelInsideIpVersion":"ipv4","TunnelOptions":[{"TunnelInsideCidr":"169.254.10.0/30","IKEVersions":[{"Value":"ikev2"}]},{"TunnelInsideCidr":"169.254.11.0/30","IKEVersions":[{"Value":"ikev2"}]}]}'

トンネル内部CIDRは169.254.0.0/16のリンクローカル範囲から/30で切ります。2本で重複させないこと、拠点側で使用中の範囲を避けることが条件です。作成後はdescribe-vpn-connectionsで設定ファイルを取得し、ルーター機種ごとの設定へ反映します。

Terraformでトンネルオプションとルーティングを固定する記述

同じ構成をTerraformで書くと次のようになります。aws_vpn_connectionのリソース定義では、トンネルごとの属性がtunnel1_・tunnel2_の接頭辞で分かれています。

resource "aws_vpn_connection" "onprem" {
  customer_gateway_id = aws_customer_gateway.onprem.id
  transit_gateway_id  = aws_ec2_transit_gateway.main.id
  type                = "ipsec.1"
  static_routes_only  = false

  tunnel1_inside_cidr  = "169.254.10.0/30"
  tunnel1_ike_versions = ["ikev2"]
  tunnel2_inside_cidr  = "169.254.11.0/30"
  tunnel2_ike_versions = ["ikev2"]

  tags = {
    Name = "onprem-tokyo"
  }
}

事前共有キーをコードに直書きしないでください。tunnel1_preshared_keyを指定するとstateファイルに平文で残ります。指定を省いてAWS側に生成させ、値はSecrets Manager経由で取り回す方式が安全です。

Price List APIで東京の単価を確認するcurlの実行手順

料金ページは地域切り替えがJavaScript依存で、自動取得や見積りの記録には向きません。実額はPrice List APIから引くほうが確実です。まずリージョン索引を取り、東京向け料金ファイルのパスを取得します。

curl -s https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonVPC/current/region_index.json \
  | jq -r '.regions["ap-northeast-1"].currentVersionUrl'

返るパスは/offers/v1.0/aws/AmazonVPC/20260911124513/ap-northeast-1/index.json のような日時入りの文字列で、この数字が料金ファイルの公開時点を示します。同じホストにこのパスを連結して取得すると、priceDimensionsのdescriptionに「$0.048 per VPN Connection-Hour」のような行が並びます。

MTU1446バイトとルート広告数の上限で詰まる設計上の制約

VPN接続そのものは数分で作れます。詰まるのはその後です。

MTU1446バイトとMSS1406バイトで詰まる通信の不良例

Site-to-Site VPNがサポートする最大転送単位は1446バイト、対応する最大セグメントサイズは1406バイトです。ジャンボフレームは非対応で、経路MTU探索(Path MTU Discovery)も動きません。

この組み合わせが生む症状は独特です。pingは通り、SSHのログインもできるのに、大きなファイルの転送やデータベースの一括取得だけが途中で止まります。パケットが分割を必要とするサイズに達した瞬間だけ落ちるためです。対処は拠点側ルーターでのMSSクランプ設定で、TCPのMSSを1406バイト以下へ書き換えます。暗号化アルゴリズムによってはヘッダがさらに大きくなるため、公式ドキュメントもアルゴリズムに応じた調整を推奨しています。

仮想プライベートゲートウェイの100経路上限とTGWへの移行

クォータ一覧に挙がっている経路数の上限は、接続先によって10倍違います。拠点側から仮想プライベートゲートウェイへ広告できる動的経路は100本まで。Transit Gateway宛なら1,000本まで受け付けます。逆方向はそれぞれ1,000本と5,000本で、いずれも引き上げ申請ができない固定値です。

拠点のネットワークを細かく分割して広告している環境では、100本はすぐ埋まります。上限を超えた分は黙って落ちるため、特定のサブネットだけ到達しない形で表面化します。拠点側で経路を集約するか、Transit Gateway構成へ移すかの二択です。

リソース側の上限も押さえておきます。1リージョンあたりカスタマーゲートウェイ50個、仮想プライベートゲートウェイ5個、Site-to-Site VPN接続50本。仮想プライベートゲートウェイの5個という枠は小さく、環境をVPCごとに分けている組織では先に当たります。

Client VPNのクライアントCIDRとSNATの設計注意

Client VPNのクライアントCIDR範囲は、接続してきた端末へ配るIPアドレスの元になります。IPv4では自分で指定し、IPv6ではAWSが自動で割り当てます。ここで指定した範囲は、VPCのCIDRとも拠点側のネットワークとも重ならないよう設計してください。重複すると経路が壊れ、作り直しになります。

IPv4通信では送信元アドレス変換(SNAT)が適用され、クライアントのIPはネットワークインターフェースのIPへ置き換わる仕様です。接続元IPで制御しているアプリケーションや、監査ログで個人の接続元を追いたい要件があると、この変換が壁になります。IPv6通信ではSNATが適用されないため、接続元の可視性が要るならIPv6での設計を検討する余地があります。

Direct Connectと自前VPNサーバーとの損益分岐の判断

ここからは判断の章です。AWS VPNを選ばない条件を金額と要件の両面で言い切ります。

Direct Connectとのポート費差を下り単価で回収する分岐

専用線を敷くAWS Direct Connectは、東京リージョンで1Gbpsの専用ポートが0.285ドル毎時(月208ドル)、100Mbpsのホスト接続が0.057ドル毎時(月42ドル)です。下りのデータ転送は0.041ドル毎GB。対するSite-to-Site VPNは月35ドルで、下りはインターネット経由の転送料が適用されます。

1Gbpsの専用ポートとVPNのポート費の差は月173ドル。下り単価の差でこれを回収できる転送量に達しているなら専用線、届かないならVPNです。月の下り転送が数百GB程度で、遅延のばらつきが業務に影響しない業務システムならVPNのままで構いません。回線の安定性そのものが要件になる基幹系や、数TB単位のデータ連携を毎月動かす構成では専用線が有利になります。接続タイプと仮想インターフェースの設計はAWS Direct Connectの解説記事で扱っています。

両者は排他ではありません。Direct Connectを主系、Site-to-Site VPNをバックアップに置く冗長構成が実務の定石で、待機中のVPNも月35ドルは保険料として常時かかります。ネットワーク構成の設計から運用までは、AWSのインフラ構築支援で要件整理から対応しています。

Client VPNを見送りEC2上の自前VPNにすべき条件

Client VPNを見送るべき条件を明示します。接続先がAWS内のリソースに限られ、利用者が30人を超え、接続時間が長い。この3つが揃うならClient VPNは割高です。前述のとおり50人規模で月619ドルに達しますが、同じ用途をt4g.smallクラスのインスタンス1台にWireGuardを載せて実現すれば、インスタンス費用とIPアドレス費用で月20ドル前後に収まります。

ただし自前構成は運用を引き受けることでもあります。カーネル更新、鍵のローテーション、接続ログの保全、退職者の失効処理。これらを回す体制がないなら、月600ドルはマネージドの対価として妥当です。運用を持ちたくない場合は、Tailscaleのようなオーバーレイ型サービスが中間解になります。

反対にClient VPNを選ぶべき場面もはっきりしています。Active DirectoryやSAMLのID基盤に認可を寄せたい、接続ログを監査証跡として残したい、拠点のオンプレミス側にも同じトンネルで到達したい。1つでも当てはまるなら、自前構成で同等品を作るコストのほうが高くつきます。

よくある質問

AWS VPNの設計と運用でよく聞かれる質問に、公式ドキュメントの記述と実額にもとづいて答えます。

Site-to-Site VPNは接続していない時間も課金されますか?

課金対象は「VPN接続というリソースが存在している時間」であり、トンネルを通るトラフィックの有無は関係ありません。東京リージョンでは0.048ドル毎時が発生し続けるため、検証で作ったVPN接続を消し忘れると月35ドルが静かに積み上がります。タグでリソースを識別し、未使用の接続を検出する仕組みを入れておくと防げます。

VPNの帯域が足りないとき、どう増やせばよいですか?

選択肢は3つです。ECMPで複数のVPN接続を束ねる方法は動的ルーティング(BGP)が前提。大容量トンネルへの切り替えは1本5Gbpsまで上がりますが、Transit Gateway接続が条件で単価は0.60ドル毎時になります。3つ目がDirect Connectへの移行です。CloudWatchで実効帯域とpps値を測り、1.25Gbpsと140,000ppsのどちらに当たっているかを確認してから選んでください。

Client VPNの同時接続数に上限はありますか?

接続数そのものはAWS側で自動的にスケールしますが、実質的な上限はクライアントCIDR範囲のサイズが決めます。各接続に1つIPアドレスを配るため、範囲が狭いと新規接続が弾かれます。クライアントCIDRはエンドポイント作成後に変更できないので、将来の人数を見込んだ広さで設計してください。

VPN経由で特定の通信だけ遅い場合、どこを見ればよいですか?

最初にMTUとMSSを確認します。Site-to-Site VPNのMTUは1446バイト、MSSは1406バイトで、経路MTU探索は動きません。大きなパケットを必要とする通信だけが止まる、ファイル転送が途中で固まるといった症状は、ほぼMSSの未調整が原因です。拠点側ルーターでMSSクランプを設定してから帯域の調査に進んでください。

拠点が増えたとき、VPN接続を増やし続けてよいですか?

1リージョンあたりのSite-to-Site VPN接続は既定50本、仮想プライベートゲートウェイあたりは10本が上限です。前者は引き上げ申請ができますが、管理の手間は拠点数に比例して増えます。拠点が19を超え、各拠点の帯域が100Mbps以内であれば、VPN Concentratorへ集約したほうが月額も管理対象の数も下がります。

関連記事

資料請求

RELATED POSTS 関連記事