オンプレミス環境とAWS VPC間でAWS Site-to-Site VPNを用いて接続してみた

皆さんお疲れ様です!椎名です。

皆さんは検証や構築時にどのようにプライベートなEC2インスタンスにアクセスしていますか?
私はよくパブリックサブネットに踏み台サーバーを立てるか、SSMを使ってアクセスすることが多いです。

作業が慣れてくるとそこまで時間はかかりませんが、やはりいちいち追加設定するのは面倒くさく感じますよね。

こんな時に、手元(オンプレミス)の環境とAWS側と接続を確立できると便利です。

1. はじめに

AWSと接続する方法

オンプレミス環境とAWS VPC間で接続を確立するには、主に

  • Client VPN
  • Direct Connect
  • Site to site VPN

の三つがあります。

  • Client VPNは、オンプレミスのデバイス一台のみをVPCに接続します。
  • Direct Connectは、オンプレミスとAWS間で閉域網での双方向な接続ができますが、接続プロバイダーパートナーを通して契約する必要があります。
  • Site to site VPNは、オンプレミスとAWS間でインターネット網での双方向な接続ができます。

それぞれに特徴はありますが、

  1. オンプレミス全体をAWSと接続をしたい
  2. インターネット回線に十分な帯域幅があります。
  3. 簡単で、価格重視で接続したい

の三つ条件を満たしていれば、Site to site VPNが適しています。

前提条件

  1. オンプレミスとVPCのCIDRが重複しないこと
    上記三つの接続方法のどれも該当しますので、CIDRの変更が難しい場合は、先日ご紹介したPrivatelinkも検討してください。
  2. VPN(IPsec)対応のルーターを導入していること
    オンプレミス環境であれば業務用レベルのルーターが導入されていると思いますが、VPN(IPsec)対応であれば市販の安価なルーターでも設定可能です。検証ではYAHAMA RTX830を使用しています。
  3. 固定Public IPを有していること
    必ずしも必須ではありませんが、固定Public IPがあれば環境構築が容易にできます。

構成イメージ

  • 最終目標は、オンプレミス環境のWindowsPCとWindowsEC2インスタンスを相互にリモートデスクトップで接続を行います。(リモートデスクトップがない場合、pingコマンドでテストする)
  • 複数のVPCと接続したい場合はトランジットゲートウェイを用いますが、検証のため仮想プライベートゲートウェイで単一VPCと接続を行います。

2. AWS側の事前準備

VPCの作成

プライベートサブネットが含まれるVPCを作成します。CIDRはオンプレミス環境と重複しないようにしてください。ルートテーブルを作成し、ルーと伝播を有効化し、プライベートサブネットと関連付けます。

WindowsEC2インスタンスの作成

プライベートサブネット内にWindowsEC2インスタンスを作成します。(ami-00f0eb749082a6552)
検証のため、セキュリティグループにすべてのトラフィックを許可するルールを追加します。

EC2ファイアウォールルールの追加(pingテスト用)

リモートデスクトップ利用可能な場合はこのステップが省略可能です。

AWSコンソールのEC2インスタンス画面で作成したEC2を選択し、接続をクリックします。


Fleet Managerで接続し、ローカルにあるキーペアで認証します。




ファイアウォール設定を開き、インバンドに新規ルールを追加します。
「Rule Type」をカスタム、「Protocol and Ports」の「protocol type」をICMPv4に変更して、その他はデフォルトのままで作成します。

同じ手順でオンプレミスPCにも設定をしておきます。

ここでオンプレミスPCからEC2のプライベートipアドレスにpingを送ってみても、当然通りません。

3. Site-to-Site VPNの構築

カスタマーゲートウェイの作成


VPCの画面でカスタマーゲートウェイを作成します。
BPGASNはデフォルトの65000、IPアドレスにオンプレミス環境のルーターのPublic IPを入れます。
証明書は今回使用しませんので、このまま作成します。

仮想プライベートゲートウェイの作成


同じくVPCの画面で仮想プライベートゲートウェイを作成します。
こちらもデフォルトのASNを使います。
作成が完了したら、アクションボタンをクリックし、ステップ3で作成したVPCにアタッチします。

VPN接続の作成


最後に、VPCの画面でVPN接続を作成します。
基本的に今回作成したものを選択していく感じです。CIDRに関して適宜制限しても大丈夫です。

カスタマーゲートウェイデバイス(ルーター)の設定

ルーターごとに設定する方法が異なります。


YAHAMA RTX83の場合はGUIで設定できるため、IAMユーザーのアクセスキーなどを入れるだけで簡単に設定できました。



ルーター側のVPN接続の設定をしてからしばらく待つと、ルーターのGUIとAWSコンソール画面で二つのトンネルが確立し、VPNの状態が利用可能に変わったことを確認できます。

GUIで設定できず、ルーターにSSH接続して設定ファイルをいじる必要がある場合は、VPN接続画面で「設定をダウンロードする」をクリックし、ダウンロードしたファイルを参照しながら設定を行ってください。

4. 接続のテスト

オンプレミスPCからEC2へ



EC2インスタンス接続画面でRDPクライアント用のパスワードを取得します。



オンプレミスのPCで「リモートデスクトップ接続」を検索し、EC2インスタンスのプライベートIPアドレス、アカウント名、パスワードを入れて接続を行います。
証明書に関する警告が出ますが、はいを押してください。

無事EC2側のデスクトップ画面が表示されたら成功です。

EC2からオンプレミスPCへ

そのままリモートデスクトップでEC2を操作します。
現在操作中のPCとは別のPCにリモートアクセスするのが理想的ですが、難しい場合このまま「リモートデスクトップ接続」で操作中のPCのプライベートIPにアクセスします。
証明書の画面まで進められましたら成功です。はいをクリックしてしまうと、オンプレミスPCのユーザーログイン画面に戻り、リモートデスクトップ接続が中断されます。

pingテスト

Windows10homeなどのバージョンでは、EC2からオンプレミスPCへのリモートデスクトップ接続ができないため、pingコマンドで疎通をテストします。


オンプレミスPCのIPアドレスに対してpingコマンドを実行します。
ちゃんとpingが返ってきましたら成功です。おめでとうございます!

5. 最後に

ちょうど先日に、「AWS Direct Connect Dive Deep セミナー – Direct Connect HandsOn Advance Transit VIF Migration シナリオ」に参加いたしました。

Direct Connectに触れる貴重な機会で、実際に接続を行ってみて、様々な設定がSite-to-Site VPNと似ているなと感じながらも、改めて大規模なワークロードでないと導入しにくいと実感しました。

特に検証段階ではSite-to-Site VPNが結構便利なので、皆さんもぜひ活用してみてください。

今回のご紹介は以上となります。
では皆さん、よいクラウドライフを!

Last modified: 2024-04-23

Author