#背景と雑談
- クラウドVPNの第二弾として、
自分のメモも兼ねてステップバイステップでAWSとのVPN接続手順を紹介します。 - AWSではVPNを作る度に、pre-shared-keyやAWS側のグローバルIPが変更されます。コスト削減で接続と切断を繰り返す場合はAzureに比べて非常に煩雑なのでご注意ください。
- 余談ですがVPNの接続スピードの上限ですが、AWSは1.25Gbps、Azureは選択式、GCPは3Gbps(上り下りの合計)とのことです。(後述)
- Azure VPN接続手順は以下からご覧ください。
https://qiita.com/kan_itani/items/0cda4479b61d543c8dde - GCP版も近日中に作成予定です。
#目次
- 構成イメージ
- 事前確認・注意事項
- AWSのVPC内のネットワーク作成
- 仮想プライベートゲートウェイ(VGW)の作成
- VPCに仮想プライベートゲートウェイ(VGW)をアタッチ
- カスタマーゲートウェイの作成
- VPNコネクションの作成
- オンプレ側ルータ設定
- VPCのルートテーブル設定変更
- VPCのFirewall設定変更
- VPNのトンネル状態確認とルーティングテーブル確認
- 関連情報
#1. 構成イメージ
以下はAzure VPN編で使った構成図ですが、サブネットが違うだけであとは似たような感じなので(←適当すぎる)、そのまま絵を流用します。
- 192.168.70.0/24 → 今回は192.168.65.0/24
- 172.16.0.0/16 → 今回は172.31.0.0/16がAWS側のネットワーク
- 実際にAWS側に存在するサブネットは以下の3つです。
172.31.0.0/20
172.31.16.0/20
172.31.32.0/20
- 実際にAWS側に存在するサブネットは以下の3つです。
#2. 事前確認・注意事項
- ネットワーク設計
- (当たり前ですが)オンプレとAWSでそれぞれサブネットがかぶらないようにネットワークを割り当てます。
- この手順ではVPC内のネットワーク作成手順は省略します。(デフォルトで3つ作られていたため。)
-
VPN接続用の共通パスワードの準備- 今回の手順ではpre-shared-keyは意識することなく設定できます。(自動生成&ダウンロードするルーターconfigに含まれているため)
- グローバルIPの確認
- 事前にオンプレミス側のVPN接続用ルータのグローバルIPを確認します。
- AWS側は特に意識しなくてもこの手順実施後にダウンロードできるルータコンフィグにグローバルIPが含まれます。
- 接続する回線速度の検討
- Azureの場合は設定画面でSKUを選ぶことができましたが、AWSは以下のFAQに記載があるように、1.25Gbpsが最大とのことです。
https://aws.amazon.com/jp/vpn/faqs/- Q: サイト間 VPN 接続の最大スループットはどれくらいですか?
- A: 各 AWS サイト間 VPN 接続には 2 つのトンネルがあり、各トンネルは最大 1.25 Gbps のスループットをサポートします。VPN 接続が仮想プライベートゲートウェイに接続されている場合、集約されたスループット制限が適用されます。
- GCPの場合は3Gbps(上りと下りの合計)が性能上限とのことです。
Cloud VPN - 割り当てと上限
https://cloud.google.com/network-connectivity/docs/vpn/quotas?hl=ja#limits
- Azureの場合は設定画面でSKUを選ぶことができましたが、AWSは以下のFAQに記載があるように、1.25Gbpsが最大とのことです。
#3. AWSのVPC内のネットワーク作成
「Subnets」を見るとデフォルトで3つのセグメントが作られていたので、ここでは特に設定しません&手順は省略します。
#4. 仮想プライベートゲートウェイ(VGW)の作成
(1) 「Virtual Private Gateways」を選び、「Create Virtual Private Gateway」を選択します。
(2) VGWのパラメーターを入力
「Name tag」に任意の文字列を入力します。
「ASN」はCustom ASNを選択し、値は既存の他のVPNやDirect Connectで使っていない値を入力します。
#5. VPCに仮想プライベートゲートウェイ(VGW)をアタッチ
(1) アタッチ前のデタッチ
この環境は直前までAWSのDirect Connectを使ってVPCのサブネットとオンプレミスで通信を行っていました。以下の絵にあるように、すでに1つVGWがアタッチされているため、別のVGWはアタッチできません。使わないものを先にデタッチします。
(2) VPCにVGWをアタッチ
作成したVPN用のVGWを選択し、画面上部の「Actions」から「Attach to VPC」を選択。
VPCをプルダウンメニューから選択し。「Yes, Attach」を選択。
「attaching」というステータスが「attached」になるまで少しかかるので、次の作業に進みます。
#6. カスタマーゲートウェイの作成
(1) 「Customer Gateways」→「Create Customer Gateway」を選択。
(2) カスタマーゲートウェイの名前を入力し、Routingを「Static」、「IP Address」にオンプレ環境のルータのグローバルIPを入力し、「Create Customer Gateway」を選択。
#7. VPNコネクションの作成
(1) 事前チェック - VGWをVPCにアタッチした結果の確認
VPNコネクションを作成する前に、5.の手順でVGW(Virtual Private Gateway)をVPCにアタッチする作業を行いましたが、それが成功しているか確認します。
(2) 「Site-toSite VPN Connections」→ 「Create VPN Connection」を選択
(3) 各種設定を入力します。
設定項目 | 値 | 備考 |
---|---|---|
Name tag | 任意の文字列 | |
Target Gateway Type | Virtual Private Gateway | |
Virtual Private Gateway | 作成したものをプルダウンから選択。 | |
Customer Gateway | Existing | |
Customer Gateway ID | 作成したものをプルダウンから選択。 | |
Routing Options | Dynamic (require BGP) | |
Tunnel Inside Ip Version | IPv4 | |
Local IPv4 Network Cidr | 192.168.65.0/24 | オンプレ側のネットワーク |
Remote IPv4 Network Cidr | 172.31.0.0/16 | AWS側のネットワーク |
その他「Tunnel Options」はそのままで、「Create VPN Connection」を選択。
#8. オンプレ側ルータ設定
(1) 直前の手順で「Close」を押下すると以下の画面になるので、「Download Configuration」を選択。
※以下の画面で「State」が「pending」になってますが、そのまま続行します。
(2) ポップアップ画面でルータ機種を選択し、Configをダウンロード
※Yamaha RTX1210のConfigをダウンロードする際は、ikev1を選択してください。(2021-10-01時点)
(3) ルータ側にConfigを投入します。
※ 詳細省略
#9. VPCのルートテーブル設定変更
ここまでの手順がうまくいっていると、VPNコネクションの「State」も「available」になりますが、オンプレとAWSはまだ通信ができません。
(1)「Your VPCs」→「Main route table」のルートテーブルをクリックします。
(2) ルートテーブルが選択されているので、「Route Propagation」→ 「Edit route propagation」を選択。
#10. VPCのFirewall設定変更
(1) 「Security Group」 → 「Edit inbound rules」
(2) 「Add rule」でオンプレミス環境からの通信を許可する設定を入れて、「Save rules」で保存。
ここまで終わると、オンプレからpingが通るようになります。
#11. VPNのトンネル状態確認とルーティングテーブル確認
(1) トンネル状態の確認
「Site-to-Site VPN Connection」 → VPNコネクションを選択 → 「Tunnel Details」タブを選択 → 「Status」がUPとなっていることを確認・
(2) ルーティングテーブル確認
「Route Tables」 → ルートテーブルを選択 → 「Routers」タブを選択 → 下段にオンプレ側のサブネットが表示され、仮想プライベートゲートウェイ(VGW)がTargetになっていることを確認。
#12. 関連情報
(追記中)