【画像付手順】:
VPCを使用してプライベートサブネットを構築する

AWS VPCはAWS内にプライベートな仮想ネットワーク空間を作成できるサービスです。

VPCを利用することで、「VPN経由や専用線でしか接続できないセキュアな環境」を構築することができます。

今回は、VPCを使用してどのようにセキュアな環境を構築すればよいか、構築の具体的な手順を紹介します。

今回構築するアーキテクチャ

今回はVPC空間に「パブリックサブネット」と「プライベートサブネット」を構築し、パブリックサブネットにある「VPNサーバー」を経由しないと「VPN接続テスト用サーバー」にアクセスできないような構成とします。

VPCやサブネットの空間を考えるときに重要なのは「サブネットのIPゾーン」です。

あらかじめ接続元となる環境(社内環境等)で使用しているプライベートIPのIPゾーンを確認しておき、VPCに設定するゾーンと被らないようにする必要があります

今回は接続元が「192.168.1.0/24」を使用しており、パブリックサブネットには「192.168.11.0/24」、プライベートサブネットには「192.168.12.0/24」を設定します。

今回構築するアーキテクチャ
(クリックすると画像が拡大されます。)

AWSで構築するもの

上記で紹介したのは概念的なアーキテクチャ構成でしたが、AWS内部に注目すると以下のように何を構築すればよいかが見えてきます

AWS内部のアーキテクチャ
(クリックすると画像が拡大されます。)

こちらの図からAWSで構築するものを抽出すると以下のようになります。

AWSで構築するもの
  • VPC
  • パブリックサブネット
  • プライベートサブネット
  • インターネットゲートウェイ
  • NATゲートウェイ
  • ルートテーブル
  • VPNサーバー
  • VPN接続テスト用サーバー

インターネットゲートウェイ」はインターネットからパブリックサブネットにアクセスするために必要です。

また、「NATゲートウェイ」はプライベートサブネットからインターネットにアクセスするために必要です。
(これがないとインターネットからyumパッケージをインストールできなくなります。)

さらに、「ルートテーブル」は各サブネットの通信先を設定するために必要です。

「AWSで構築するもの」にリストアップしたものを1つずつ構築していけば「今回構築するアーキテクチャ」が出来上がります。それでは、早速それぞれの構築手順を紹介していきます。

VPCの作成

まずはVPCの作成を行います。

VPCコンソール画面の「VPCダッシュボード」から「VPC」をクリックし、「VPCを作成」をクリックします。

VPCの作成1/3
(クリックすると画像が拡大されます。)

名前を入力し、CIDRブロックにはパブリックサブネットかプライベートサブネットどちらかのCIDRブロックを入力します。今回はパブリックサブネットのCIDRブロック「192.168.11.0/24」を入力しています。

入力できたら「VPCを作成」をクリックします。

VPCの作成2/3
(クリックすると画像が拡大されます。)

VPCが作成出来たら、先ほど追加していないCIDRブロックを追加していきます。

VPCコンソール画面の「VPC」から先ほど作成したVPCを選択し、「アクション」から「CIDRの編集」をクリックします。
新しいIPv4 CIDRを追加」をクリックし先ほど入力しなかったサブネットのCIDRを入力し、「保存」ボタンをクリックし「閉じる」をクリックします。

先ほどはパブリックサブネットのCIDRブロック「192.168.11.0/24」を入力していたため、プライベートサブネットのCIDRブロック「192.168.12.0/24」を入力します。

VPCの作成3/3
(クリックすると画像が拡大されます。)

サブネットの作成

作成したVPCに「パブリックサブネット」と「プライベートサブネット」を作成していきます。

VPCコンソール画面の「サブネット」から「サブネットを作成」をクリックします。
サブネットを作成画面では先ほど作成したVPCを選択し、「サブネット名」「アベイラビリティゾーン」「CIDRブロック」を入力していきます。
新しいサブネットを追加」ボタンをクリックすることで複数のサブネットを同時に作成することができます。

サブネットの作成
(クリックすると画像が拡大されます。)

インターネットゲートウェイの作成

インターネットゲートウェイ」を作成していきます。

VPCコンソール画面から「インターネットゲートウェイ」を選択し「インターネットゲートウェイの作成」をクリックします。
インターネットゲートウェイの作成画面では「名前」を入力し「インターネットゲートウェイの作成」をクリックします。

インターネットゲートウェイの作成1/2
(クリックすると画像が拡大されます。)

ここまででインターネットゲートウェイ自体はできたのですが、VPCにアタッチする必要があります

VPCコンソール画面の「インターネットゲートウェイ」で作成したインターネットゲートウェイを選択し「アクション」から「VPCにアタッチ」を選択します。
VPCにアタッチ画面では作成したVPCを選択し「インターネットゲートウェイのアタッチ」をクリックします。

インターネットゲートウェイの作成2/2
(クリックすると画像が拡大されます。)

NATゲートウェイの作成

NATゲートウェイ」を作成していきます。

VPCコンソール画面で「NATゲートウェイ」を選択し「NATゲートウェイを作成」をクリックします。
NATゲートウェイを作成画面では「名前」を入力し「作成したパブリックサブネット」を選択します。接続タイプはインターネットに繋げるために「パブリック」を選択します。「Elastic IPの割り当て」をクリックして「NATゲートウェイを作成」をクリックします。

NATゲートウェイの作成
(クリックすると画像が拡大されます。)

ルートテーブルの作成

ルートテーブル」を作成し、サブネットに関連付けます。

VPCコンソール画面で「ルートテーブル」を選択し「ルートテーブルを作成」をクリックします。

パブリックサブネット用のルートテーブルを「名前」と作成したVPCを選択して「ルートテーブルを作成」から作成します。
また、プライベートサブネット用のルートテーブルも「名前」と作成したVPCを選択して「ルートテーブルを作成」から作成します。

ルートテーブルの作成
(クリックすると画像が拡大されます。)

ルートテーブルを作成したら、それぞれのサブネットを関連付ける必要があります。

まずはパブリックサブネットにルートテーブルを関連付けていきます。
ルートテーブル」でパブリックサブネットを選択し「サブネットの関連付け」から「サブネットの関連付けを編集」をクリックします。
サブネットの関連付けを編集画面ではパブリックサブネットを選択し、「関連付けを保存」ボタンをクリックします。

パブリックサブネットにルートテーブルを関連付け
(クリックすると画像が拡大されます。)

プライベートサブネットも同様にルートテーブルを関連付けます。

プライベートサブネットにルートテーブルを関連付け
(クリックすると画像が拡大されます。)

ルートテーブルにルートを設定

ルートテーブルが作成出来たら、「パブリックサブネットのインターネットゲートウェイへのルーティング」と「プライベートサブネットにNATゲートウェイのルーティング」を設定します。

パブリックサブネットのルーティング設定

パブリックサブネットインターネットゲートウェイへのルーティングを設定します。

ルートテーブル」からパブリックサブネットを選択し、「ルート」の「ルート編集」をクリックします。
ルートを編集画面では送信先に「0.0.0.0/0」を、ターゲットに作成したインターネットゲートウェイを選択し「変更を保存」ボタンをクリックします。

パブリックサブネットのルーティング設定
(クリックすると画像が拡大されます。)

プライベートサブネットのルーティング設定

つぎにプライベートサブネットNATゲートウェイへのルーティングを設定します。

ルートテーブル」からプライベートサブネットを選択し、「ルート」の「ルート編集」をクリックします。
ルートを編集画面では送信先に「0.0.0.0/0」を、ターゲットに作成したNATゲートウェイを選択し「変更を保存」ボタンをクリックします。

プライベートサブネットのルーティング設定
(クリックすると画像が拡大されます。)

VPNサーバーの構築・接続確認

ここまででVPC関連の構築はすべて完了しています。
あとは各サブネットにサーバーを構築し、通信を確認していきます。

まずはVPNサーバー用のEC2インスタンスを構築します。
通常のEC2構築と比較し意識するところだけ抜粋してお伝えします。

EC2作成中の「インスタンスの設定」にて作成したVPCとパブリックサブネットを選択し、パブリックIPを「有効」にします。

VPNサーバーの構築(注意点のみ抜粋)
(クリックすると画像が拡大されます。)

EC2自体は作成出来たので、さっそくSSHで接続してみます。
セキュリティグループに「0.0.0.0/0」のポート22を許可していれば、パブリックサブネットにあるサーバーなので接続できるはずです。
以下のように、パブリックサブネットのサーバーへはインターネット経由でアクセスできることがわかります。

VPNサーバーへのSSH接続
(クリックすると画像が拡大されます。)

SSH接続できたら、VPNの設定をしていきます。こちらは別記事にまとめているのでそちらの内容を参考にしてください。

Recommended You

VPNサーバーをWindowsサーバーで構築している場合は以下の手順になります。

Recommended You
サンプルソース付:
AWS EC2(Windows)でSoftEtherを用いたVPNを設定する

WindowsサーバーにSoftEtherを設定する手順です。

また、EC2の接続では起動するごとにパブリックIPが変わってしまうので、以下を参考に名前解決できるようにすると便利です。

Recommended You
サンプルソース付:
AWS Elastic IPから卒業し、EC2のパブリックIPを名前解決する

EC2のパブリックIPをEC2起動時にDNSに登録する方法です。

VPN接続テスト用サーバーの構築・接続確認

VPNサーバーが構築できたら、VPNサーバー経由でアクセスするプライベートサブネットのサーバーを構築します。
通常のEC2構築と比較し意識するところだけ抜粋してお伝えします。

EC2作成中の「インスタンスの設定」にて作成したVPCとプライベートサブネットを選択し、パブリックIPを「無効」にします。

VPN接続テスト用サーバーの構築(注意点のみ抜粋)1/2
(クリックすると画像が拡大されます。)

セキュリティグループの設定」ではVPNサーバーのセキュリティグループをポート22の接続元にすることで、VPNサーバー経由のSSHのみ許可することができます。

VPN接続テスト用サーバーの構築(注意点のみ抜粋)2/2
(クリックすると画像が拡大されます。)

サーバーを構築したら早速VPN経由でアクセスできるか確認します。
VPNを繋いだ状態でVPN接続テスト用サーバーのプライベートIPにSSHします。

無事SSHでアクセスできることが確認できたはずです。また、curlコマンドなどを叩いてみるとインターネットにアクセスできることを確認できます。

VPN接続テスト用サーバーへのSSH接続・インターネットアクセスの確認
(クリックすると画像が拡大されます。)

以上でVPCを使用した「パブリックサブネット」「プライベートサブネット」および接続用サーバーの構築が完了です。

Spread the love