入社2か月目でAWS Site-to-Site VPNを任された話

未経験で入社して2か月。先輩から課題を与えられました。
「君、ネットワークエンジニアになるんだからこれくらいできるよね(・ω・)」
──こうして、オンプレミスとAWS間のSite-to-Site VPN接続を任されることになりました。
当時の私は「なにから始めれば??」という状態でしたが、手を動かしてみると案外シンプルで勉強になったので、ここに記録を残します。
なぜSite-to-Site VPNなのか
社内ネットワークからAWS VPC上のEC2へ安全にアクセスしたい──これが今回の目的です。
今回私にこの課題が与えられた理由はたぶんこんな感じです。
- Direct Connectを利用予定だが開通までにいましばらくかかる。暫定手段が必要。
- 社内でSite-to-Site VPNの構築実績がなかった
- 新人教育の一環としてVPNの仕組みを学ばせたかった
- 先輩が単に楽をしたかった☆
目標
社内ネットワークから、AWS VPCプライベートサブネット配下のEC2にアクセスできること
完成図例
![]()
前提
オンプレミスルータはYamaha RTX1210を使用。
BGPは使用しない。 記載しているIPアドレスは公開用に編集しています。
やったこと(ざっくり手順)
- カスタマーゲートウェイ(CGW)の作成
- 仮想プライベートゲートウェイ(VPG)の作成
- Site-to-Site VPN接続の作成
- RTX1210用VPN設定ファイルをダウンロード・修正
- ルートテーブルを設定
- RTX1210へ設定投入 → 接続確認
1. カスタマーゲートウェイ(CGW)の作成
カスタマーゲートウェイ(CGW)はオンプレミス側ルーター(RTX1210)をAWSに特定させるためのゲートウェイ。
- VPCコンソール → [カスタマーゲートウェイ] → [作成]
- 名前タグは任意の名前
- BGPは未使用のためルーティング: 静的
- IPアドレス: オンプレRTX1210のグローバルIP
- 今回のルーティングのタイプは静的
- 作成をクリック
![]()
2. 仮想プライベートゲートウェイ(VPG)の作成
仮想プライベートゲートウェイ(VPG)はCGWとは逆にAWS側に設置するゲートウェイです。そのため、VPCにアタッチして利用します。
- VPCコンソール → [仮想プライベートゲートウェイ] → [作成]
- ASNはデフォルトでOK
![]()
- 作成後、VPCにアタッチを忘れずに!
![]()
![]()
VPGはAWS側のVPN終端装置。VPCと必ず紐付けが必要です。
3. Site-to-Site VPN接続の作成
- [Site-to-Site VPN接続] → [作成]
- ターゲットゲートウェイ: 先ほど作ったVPGを選択
- カスタマーゲートウェイ: 既存のCGWを選択
- ルーティングタイプは静的
- 静的ルート: 社内ネットワークのCIDR例
192.168.10.0/24 - 作成
![]()
作成が完了すると、VPNのステータスが「利用可能」になります。
この段階ではオンプレミスのルータの設定がまだなので、VPNは張られていません。
そのためトンネルのステータスは「ダウン」と表示されます。
![]()
4. VPN設定ファイルのダウンロード
ここから実機のルータに設定を追加し、CGWとVPGを接続していきます。
- 作成したVPN接続を選択 → [ダウンロード設定]
- ベンダーにYamahaを選択
- IKEバージョンはikev1 または ikev2
- ダウンロードしておく(後ほどルーター側で利用)
設定ファイルにはIKEフェーズ1/2や事前共有キーが記載されています。
![]()
![]()
5. ルートテーブルの設定
まず、ルート伝播を有効化します
- VPC → [ルートテーブル] →対象となるルートテーブル→ルート伝播の編集
![]()
![]()
「有効化」にチェックを入れて、「保存」をクリックします。上記の設定を有効化した後しばらくすると、オンプレミスネットワークへのルーティングが通常自動で追加されます。
![]()
この設定を忘れるとトラフィックがVPNに流れず通信できません。 私はこの設定を忘れていたので、実際の通信ができないということがありました…
6. RTX1210への設定投入
AWSからダウンロードした設定ファイルをベースに自環境に合わせて修正していきます。 例えば、AWSのSitetoSiteVPNは可用性を高めるために、デフォルトで2つのトンネルを用意してくれますが、今回は一つで十分であるため、片方の設定は削除しました。
RTX1210に設定を追加できたので、AWS上でVPN接続の状態を確認してみましょう。先ほどまで「ダウン」となっていた個所が「アップ」に代わりました! (今回は一つのトンネルしか設定していないため、もう片方はダウンのままとなっています)
![]()
- 実際に
pingを打って確認
sysop@ubuntu-wsl:~$ ping 10.0.11.87
PING 10.0.11.87 (10.0.11.87) 56(84) bytes of data.
64 bytes from 10.0.11.87: icmp_seq=1 ttl=125 time=13.7 ms
64 bytes from 10.0.11.87: icmp_seq=2 ttl=125 time=14.3 ms
64 bytes from 10.0.11.87: icmp_seq=3 ttl=125 time=13.7 ms
64 bytes from 10.0.11.87: icmp_seq=4 ttl=125 time=14.2 ms
^C
--- 10.0.11.87 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 13.688/13.974/14.326/0.278 ms
プライベートサブネット配下のEC2につながりました!
学んだこと
VPNのトンネルステータスが有効になっても、実際の経路設定がされていなければ、トンネルが作成されただけで、実際のパケットがそのトンネルに流れていきません。今回は、ルート伝播を有効化することを忘れていたので、pingが飛ばないということがありました、、パケットの流れを意識することの大切さを感じました。
まとめ
躓いたところはありますが、とても簡単にAWSとVPNを張れることがわかりました。
オンプレミスのルーターに追加するコンフィグを生成してくれるのは親切ですよね。
執筆者:K.S.(プロフィール)
Search
よく読まれている記事
カテゴリ
アーカイブ
あなたに最適な解決策を一緒に考えます。
状況に応じた最適なご提案で、お客様の課題解決をサポートいたします