本記事では、現役ウェブエンジニアの管理人が、Vultrが提供する仮想プライベートネットワークのVultr VPCとNAT Gatewayについて解説します。
通常のVPCネットワークとNATゲートウェイ付きのVPCネットワークの違い、構築方法などがわかるようになるので、ぜひ読んでみてください。
Vultr VPCとは
Vultr VPC (Virtual Private Cloud)は、クラウドプラットフォームのVultrが提供している仮想プライベートネットワークです。
Vultr VPC内ではIPv4アドレス領域をサポートしており、プライベートネットワーク上でインスタンス同士が通信できます。
VPCの使用例:
- アプリケーションサーバからデータベースサーバへのアクセス
- VPS間のファイル転送
Vultr VPCの種類と特徴
Vultrは2種類のVPCネットワークを提供しています。
- VPC Network
- VPCネットワーク内のインスタンスはパブリックIPアドレスとプライベートIPアドレスの両方を持ちます。
- インターネットから各インスタンスに直接アクセスできる一方、インスタンス同士はプライベートネットワークで通信できます。
- VPC Network with NAT Gateway
- VPCネットワークとインターネット間にNATゲートウェイが作成されます。
- パブリックIPアドレスを持つのはNATゲートウェイのみで、VPCネットワーク内のインスタンスにはプライベートIPアドレスのみが付与されます。
- デフォルトではインターネットからVPCへの匿名インバウンドリクエストは許可されず、VPCからインターネットへのアウトバウンドリクエストおよびレスポンスのみ許可されます。
- ポートフォワーディングとファイアウォールを設定することで、特定のポートのみインバウンドリクエストを許可することが可能です。
Vultr VPCとNAT Gatewayの料金
VultrはVPCの種類によって異なる料金を設定しています。
- VPC Network:無料。
- VPC Network with NAT Gateway:月額$20
いずれの場合もVPC内部のプライベートトラフィックは転送量にカウントされず無料です。
Vultr VPCの使い方
ここからは、具体的なVPCの使い方をステップバイステップで解説します。
Vultrのアカウントを作成
Vultrのアカウントを持っていない方は、以下の公式サイトで作成してください。本サイト経由であれば$300クレジットがアカウント登録時に付与されるため、VPCやNAT Gatewayを始めとするVultrの各種機能を無料で試すことができます。
アカウント登録方法は以下の記事内で詳しく解説していますので、参考にしてください。
VPCネットワーク作成
管理画面の左サイドメニューより「Network」->「VPC Networks」を選択し、「Create VPC Network」をクリックします。

「Basics」セクションで「VPC Network」を選択し、「Name」にネットワーク名を入力します。

「Location」を選択し、「Custom IP Range」は無効にします(手動でIPアドレス幅を設定したい場合は有効にします)。

「Summary」セクションで設定を確認し、問題なければ「Create VPC Network」ボタンをクリックします。

VPCネットワークが作成されれば成功です。
VPCネットワークへのVPSインスタンス追加
同じリージョンのVPSインスタンスであればVPCネットワークに追加可能です。
VPC一覧画面でネットワーク名をクリックします。

「Attached Nodes」セクションで「Attach」ボタンをクリックします。

VPCに追加したいVPSのチェックボックスをオンにし、「Attach Nodes」をクリックします。

VPCネットワークにVPSが追加され、VPC内で有効なプライベートIPアドレスが付与されます。

注)VPCネットワークにVPSインスタンスを追加してもVPSインスタンスのパブリックIPアドレスはそのままなので、インターネットから引き続きアクセス可能です。
同じVPCネットワーク内の別のVPSインスタンスから、プライベートIPアドレスを使ってpingやsshなどの通信が可能になります。
ping 10.25.96.3
VPCネットワークへのVultr Managed Databaseの追加
Vultr Managed DatabaseをVPCネットワークに追加するためには、VPCネットワーク画面からではなくマネージドデータベース詳細画面から操作が必要です。
Vultr Managed Databaseの詳しい解説や使い方は以下の記事を参考にしてください。
関連記事:Vultr Managed Databaseを現役エンジニアがレビュー
管理画面でマネージドデータベース詳細画面を開き、「Overview」タブの「VPC Network」画面でVPCを選択し、「Update」をクリックします。

データベースのクラスターステータスが「Rebalancing」になるので、「Running」に戻るのを待ちます。

VPCの「Attached Nodes」一覧にマネージドデータベースのプライマリーノード及びリードレプリカが表示され、プライベートIPアドレスが付与されます。

マネージドデータベース詳細画面でコネクション情報を確認すると、ホストURLが以下の2つに分かれていることが確認できます。
- host: プライベートIPアドレスに解決
- public host: パブリックIPアドレスに解決

digでhostがプライベートIPアドレスに解決することを確認:
dig vultr-prod-your_db_vultr-prod-ecbc.vultrdb.com
# ;; ANSWER SECTION:
# vultr-prod-your_db_vultr-prod-ecbc.vultrdb.com. 15 IN A 10.25.96.6
アプリケーションサーバからは「host」で接続すれば、プライベートネットワーク経由でデータベースと通信でき転送料金がかからなくなります。
Vultr NAT Gatewayの使い方
NAT Gateway付きVPCの作成
管理画面の左サイドメニューより「Network」->「VPC Networks」を選択し、「Create VPC Network」をクリックします。

「VPC Network with NAT Gateway」を選択し、「Name」にネットワーク名を入力します。

「Location」を選択し、「Custom IP Range」は無効にします(手動でIPアドレス幅を設定したい場合は有効にします)。

「Summary」セクションで設定を確認し、問題なければ「Create VPC Network」ボタンをクリックします。

VPCとNATゲートウェイノードが構築されます。

VPCにプライベートVPSインスタンスを追加
VPSインスタンス作成画面の「Additional Features」セクションで以下の通り設定します。
- Instance Connectivity: Private Instance(s) behind NAT Gateway
- VPC Network: 作成したNAT Gateway付きVPC

VPSインスタンス作成手順については以下の記事で詳しく解説しています。
作成したVPSインスタンスがVPSインスタンス一覧、及びVPC詳細画面のAttached Nodesに表示されます。

このVPSインスタンスにはパブリックIPアドレスは付与されず、プライベートIPアドレスのみ付与されます。
そのため、デフォルトではインターネット経由でSSHでのアクセスはできませんので、以下のいずれかの方法でログインします。
- VPS詳細画面からVultr Console(ブラウザベースのコンソール)からユーザ名とパスワードでログイン。
- NAT Gatewayにポートフォワーディングを設定(後述)。
Vultr Consoleでのログイン:


ポートフォワーディングを追加
前述の通り、デフォルトではNATゲートウェイ付きVPC内のVPSインスタンスにはインターネットからアクセスできません。
HTTPやSSHのみインターネットからアクセス可能にするには、ポートフォワーディングを設定します。
VPC詳細画面の「NAT Port Forwarding」で「Add Forwarding Rule」をクリック。

ポートフォワーディングルールを設定し、「Save Changes」で保存します。本記事では以下のようにSSH用ルールを設定します。
- Rule Name: SSH
- Protocol: TCP
- External Port: 2222
- Internal IP: VPSインスタンスのプライベートIP
- Internal Port: 22(SSHポート)

ポートフォワーディング一覧にルールが追加されます。

ターミナルで、VPC詳細画面に表示されているNAT GatewayのパブリックIPアドレス(Gateway IPv4 Address)と設定したポート番号(例:2222)を指定してSSHコマンドを実行します。
ssh root@your_nat_gateway_public_ip -p 2222
VPSにアクセスできたら成功です。

ファイアウォールの設定
NAT Gatewayのファイアウォール機能を使うと、NATのポートフォワーディングルールをさらに細かく設定できます。
例えば、ポートフォワーディングで設定したSSHはそのままでは全世界からアクセス可能ですが、自身のオフィスの固定IPアドレスのみに制限することが可能です。
VPC詳細画面の「NAT Firewall」から「Add Firewall Rule」をクリックします。

固定IPのみにSSHを許可するには、以下のように設定します。
- Protocol: TCP
- Subnet: 固定IPアドレス
- Subnet Size: 32(1つの固定IPのみ許可)
- Port / Range: 2222 (ポートフォワーディングの外部ポートを指定)


これで、指定IP以外からのSSHはブロックされるようになります。
まとめ:Vultr VPCとNAT Gatewayで仮想プライベートネットワークを構築しよう
Vultrは用途に応じた2種類の仮想プライベートネットワークを提供しています。
- 無料で簡単にVPS間のプライベートネットワークを構築したい -> 通常のVPCネットワーク
- 有料でも自分でポートフォワーディングやファイアウォールのルールを設定してセキュリティを高めたい -> NAT Gateway付きVPC
ぜひ本記事の内容を参考にVPCを構築してみてください。
