【AWS】 Site to Site VPNの解説
AWS Site-to-Site VPNの概要
AWSとオンプレミスのネットワーク間で仮想プライベートネットワーク(VPN)接続を確立するためのサービス。これにより、企業は自社のデータセンターやオフィスとAWSクラウド環境を安全かつスムーズに接続することができる。
IPsecプロトコルを使用してデータを暗号化し、インターネットを介して安全にデータを転送する。また、複数のアベイラビリティゾーン(AZ)に冗長性を持たせることができ、高可用性を確保している。
接続は、仮想プライベートゲートウェイ(VGW)またはトランジットゲートウェイ(TGW)を使用して設定する。VGWは単一のVPCへの接続を提供し、TGWは複数のVPCおよびオンプレミスネットワーク間の接続を集中的に管理できる。
Site-to-Site VPNは動的ルーティングと静的ルーティングの両方をサポートしている。動的ルーティングはBGP(Border Gateway Protocol)を使用して自動的にルーティングテーブルを更新し、ネットワークの変更に迅速に対応できる。一方、静的ルーティングは固定ルートを設定するため、シンプルで管理が容易な方法を提供する。
構成
VPN Connection
オンプレミスのネットワークとAWS VPCを安全に接続するためのもの。IPsecプロトコルを使用してデータを暗号化し、インターネットを介して安全に通信する。各VPN接続には高可用性を確保するために2つの冗長トンネルが含まれている。
VPN Tunnel
データが顧客ネットワークとAWSの間で送受信される際に暗号化するリンク。トンネルは2つあり、一方が障害を起こした場合でももう一方が稼働し続けることで高可用性を提供する。
Customer Gateway
オンプレミスネットワーク側のエンドポイント。顧客のオンプレミスルーターやファイアウォールなどのデバイスがこれに該当し、AWSとのVPN接続を確立するために必要な情報をAWSに提供する。
Customer Gateway Device
物理的なデバイスまたはソフトウェアアプリケーションであり、VPN接続を介してAWSに接続するために使用される。これにはルーター、ファイアウォール、VPNソフトウェアなどが含まれる。
Target Gateway
AWS側のVPNエンドポイントの総称。具体的には、仮想プライベートゲートウェイ(VGW)またはトランジットゲートウェイ(TGW)が該当する。
Virtual Private Gateway (VGW)
単一のVPCに接続するためのVPNエンドポイント。オンプレミスネットワークからAWS VPCへの安全な接続を提供し、IPsec VPNトンネルを通じてデータを暗号化して転送する。
Transit Gateway (TGW)
複数のVPCやオンプレミスネットワークを接続するための中央ハブ。これにより、複数のVPN接続やVPCピアリングを一元管理でき、ネットワークのスケーラビリティと管理の効率性が向上する。
コンポーネント間の関係
VPN Connectionは全体のフレームワークであり、Customer Gateway DeviceとCustomer Gatewayがオンプレミス側の接続ポイントを提供する。これに対し、Virtual Private GatewayまたはTransit GatewayがAWS側のエンドポイントとなる。VPNトンネルはこれらのエンドポイント間のセキュアな通信リンクを形成し、オンプレミスネットワークとAWSのVPC間でデータを安全にやり取りする。
設定手順
1. カスタマーゲートウェイの作成
カスタマーゲートウェイは、オンプレミスのネットワークを表すAWSリソースです。まずこれを作成する。
手順:
AWS Management Consoleにログインする。
VPCダッシュボードに移動する。
サイドバーのVPN ConnectionsからCustomer Gatewaysを選択する。
Create Customer Gatewayをクリックする。
Nameに適切な名前を入力する。
IP AddressにオンプレミスのVPNデバイスのパブリックIPアドレスを入力する。
BGP ASN(BGPを使用する場合)に適切な値を入力する。
Create Customer Gatewayをクリックして作成を完了する。
2. 仮想プライベートゲートウェイ(VGW)の作成とアタッチ
仮想プライベートゲートウェイは、VPCと接続するVPNトンネルのエンドポイントとなる。
手順:
VPCダッシュボードに移動する。
サイドバーのVPN ConnectionsからVirtual Private Gatewaysを選択する。
Create Virtual Private Gatewayをクリックする。
Nameに適切な名前を入力する。
ASNにAmazon ASNを設定するか、デフォルトを使用する。
Create Virtual Private Gatewayをクリックして作成を完了する。
作成後、VGWをVPCにアタッチする。
Virtual Private Gatewaysのリストから作成したVGWを選択し、Actionsをクリック。
Attach to VPCを選択し、アタッチ先のVPCを指定してAttachをクリックする。
3. VPN接続の作成
VPN接続は、仮想プライベートゲートウェイとカスタマーゲートウェイをリンクするために使用される。
手順:
VPCダッシュボードに移動する。
サイドバーのVPN ConnectionsからSite-to-Site VPN Connectionsを選択する。
Create VPN Connectionをクリックする。
Nameに適切な名前を入力する。
Target Gateway TypeでVirtual Private Gatewayを選択し、作成したVGWを指定する。
Customer Gatewayで、既存のカスタマーゲートウェイを選択する。
Routing Optionsを選択する(StaticまたはDynamic)。
Staticの場合、オンプレミスネットワークのルートを追加する。
Dynamicの場合、BGPを使用する。
Create VPN Connectionをクリックして作成を完了する。
4. VPN接続のダウンロードと設定
VPN接続を作成したら、その設定情報をダウンロードし、オンプレミスのVPNデバイスに適用する。
手順:
Site-to-Site VPN Connectionsのリストから作成したVPN接続を選択する。
Download Configurationをクリックし、オンプレミスのVPNデバイスに適した設定ファイルをダウンロードする。
ダウンロードした設定ファイルに従って、オンプレミスのVPNデバイスを設定する。
5. ルートテーブルの更新
VPC内のサブネットルートテーブルに、VPNトラフィック用のルートを追加する。
手順:
VPCダッシュボードに移動する。
サイドバーのRoute Tablesを選択する。
ルートテーブルを選択し、Edit Routesをクリックする。
Add Routeをクリックし、オンプレミスネットワークのCIDRブロックを指定して、ターゲットをVirtual Private Gatewayに設定する。
Save Routesをクリックして保存する。
Site-to-Site VPNログを有効
VPNトンネルヘルスログの設定
VPNトンネルヘルスログをCloudWatch Logsに送信することで、VPNトンネルの状態を監視できます。
手順1: CloudWatchコンソールに移動し、ロググループを作成します
手順2: VPNトンネルヘルスログの設定
VPCダッシュボードに移動する。
左側のメニューからVPN Connectionsを選択。
ログを有効にしたいVPN接続を選択。
Monitoringタブに移動。
Tunnel health loggingセクションで、Editをクリック。
Enableを選択し、先ほど作成したロググループを指定。
Saveをクリックして設定を保存。
ログの見方
出力例
{
"accountId": "123456789012",
"region": "us-east-1",
"vpcId": "vpc-abcdefg",
"vpnConnectionId": "vpn-1a2b3c4d",
"customerGatewayId": "cgw-0e11f167",
"vpnGatewayId": "vgw-0e11f167",
"tunnelIp": "52.0.0.1",
"status": "DOWN",
"statusMessage": "Tunnel Down",
"timestamp": "2021-06-05T12:34:56Z"
}
accountId: AWSアカウントID
region: リージョン
vpcId: VPC ID
vpnConnectionId: VPN接続ID
customerGatewayId: カスタマーゲートウェイID
vpnGatewayId: VPNゲートウェイID
tunnelIp: トンネルのIPアドレス
status: トンネルのステータス(UP/DOWN)
statusMessage: ステータスメッセージ