今回のブログは、Professional Cloud Network Engineer認定取得講座21回目です!今回は、「Cloud RouterとCloud NATを使用してプライベートIPの VM がインターネットに接続する実装方法について説明します!」です!
今回のブログでは、プライベート IP アドレスのみを持つ VM がインターネットに接続する方法について説明します。この方法では、Cloud Router と Cloud NAT を使用します。
実際の Google Cloud コンソールの画面を使いながら、実装方法について説明します。
是非、最後までご覧いただけると嬉しいです。
Cloud Router の概要
Cloud Router の概要は、下記ブログで説明しています。
Cloud NAT の概要
Cloud NAT の概要は、下記ブログで説明しています。
Cloud Router と Cloud NATを使用する目的
Cloud Router と Cloud NATを使用する目的には、以下のようなものがあります。
- プライベート VM のインターネット接続
- セキュリティ強化
- コスト削減
1つずつ詳しく説明します。
1. プライベート VM のインターネット接続
プライベート IP アドレスのみを持つ VM をインターネットに接続するには、Cloud Router と Cloud NAT を使用します。Cloud Router は仮想ルーターとして、VM とインターネット間のネットワーク接続を管理します。Cloud NAT はネットワークアドレス変換(NAT)サービスとして、プライベート IP アドレスをパブリック IP アドレスに変換することで、VM がインターネット上のサービスにアクセスできるようにします。
2. セキュリティ強化
Cloud NAT を使用することで、VM に直接パブリック IP アドレスを割り当てる必要がなくなり、セキュリティを強化することができます。VM はインターネットから直接アクセスできなくなり、攻撃対象領域を減らすことができます。
3. コスト削減
Cloud NAT を使用することで、VM に個別にパブリック IP アドレスを割り当てる必要がなくなり、IP アドレスの使用量を減らすことができます。これにより、コストを削減することができます。
私の実体験
今回、この記事を書いた理由は、現在参画しているプロジェクトで、プライベート IP アドレスのみを持つ VM に対して、Cloud Router と Cloud NAT を使用してセキュリティ強化を行ったからです。
従来、VM を外部のインターネットに接続するには、パブリック IP アドレスを割り当てる必要がありました。しかし、パブリック IP アドレスを公開することは、セキュリティ侵害のリスクを高めます。
そこで、VM にはプライベート IP アドレスのみを割り当て、Cloud Router と Cloud NAT を経由してインターネットに接続することで、セキュリティを強化しました。
具体的には、以下の構成を構築しました。
- Compute EngineのVM:プライベート IP アドレスのみを割り当て、インターネットに直接接続できないように設定します。
- Cloud Router:VM とインターネット間のルーティングを管理します。
- Cloud NAT:プライベート IP アドレスをパブリック IP アドレスに変換することで、VM がインターネット上のサービスにアクセスできるようにします。
この構成により、VM は外部から直接アクセスできないため、セキュリティを強化することができます。
構成図
今回実装する構成図は、下記になります。上記、私が行った実装方法になります。
実装方法
それでは、実装方法について説明します。この構成では、料金が発生する可能性があります。Cloud NATの料金設定は、以下を参照してください。実装後、すぐCloud NATを削除すれば、1ドルもかかりません。
1.VPCの作成
まずは、VPCを作成します。Google Cloud コンソールを開きます。
コンソール上部の検索窓から、「VPC ネットワーク」で検索し、VPC ネットワークを開きます。または、サイドバーから開きます。
コンソール上部の「VPNネットワークを作成」を選択します。
名前を任意で設定します。ここでは、「vpc-us-central」にしています。それ以外は、初期設定のまま進めます。
次にサブネットを作成します。ここでは、下記の通り設定しています。なお、今回は、検証用で作成しているので、料金を抑えるため、リージョンは、us-centralにしています。
みなさんは、実際の用途に合わせて設定してください。
- 名前:subnet-us-central
- リージョン:us-central1
- IPv4 範囲:192.168.10.0/28
上記以外は、初期設定のまま進めます。
上記設定後、「完了」を選択します。
それ以外の設定も初期設定のまま進めます。最後に、「作成」を選択します。
以上で、VPC ネットワークの作成は終わりになります。
2.ファイアウォール ルールを作成
次は、IAP TCP 転送用のファイアウォール ルールを作成します。
以前のブログでも説明しましたが、外部IPアドレスを所有していないVMにSSHで接続する場合、IAP TCP転送を使用して接続します。その為のファイアウォールルールを作成します。
サイドバーから「ファイアウォール」を選択します。
コンソール上部の「ファイアウォール ルールを作成」を選択します。
名前を設定します。ここでは、「fw-us-central」にしています。また、ネットワークは、さきほど作成した「vpc-us-central」を選択します。それ以外の設定は、初期設定のまま進めます。
下記項目を設定します。ターゲットタグは、今回設定するタグを他でも使用します。タグ名は任意で設定できます。ここでは、「cloud-router-nat」にしています。
- ターゲットタグ:cloud-router-nat
- 送信元:35.235.240.0./20
- 指定してプロトコルとポート:TCP/22
上記設定後、作成を選択します。
作成後、ファイアウォール ルールのリストに表示されます。
以上で、ファイアウォール ルールの作成は終わりになります。
3.VM インスタンスの作成
次は、Compute EngineでVM インスタンスを作成します。
コンソール上部の検索窓に「compute engine」と入力し、「Compute Engine」を選択します。
コンソール上部の「インスタンスを作成」を選択します。
VM の名前を任意で設定します。ここでは、「cloud-nat-router-vm」にしています。次に、リージョンは、「us-central1(アイオワ)」を選択します。それ以外は、初期設定のまま進めます。
プリセットは、「e2-micro(2 vCPU、1 コア、1 GB メモリ)」を選択します。理由は、無料枠で使用できるからです。
ブートディスクのタイプを変更します。初期設定は、「バランス永続ディスク」が選択されており、これは、無料枠に含まれないので、「標準永続ディスク」に変更するため、「変更」を選択します。
ブートディスクの種類を「標準永続ディスク」に変更します。
設定後、「選択」を選択します。
「詳細オプション」を開きます。
ネットワークタグは、「ファイアウォール ルール」を作成した際に設定したタグを入力します。ここでは、「cloud-router-nat」にしています。
ネットワークインターフェースの設定は、下記の通りとします。
- ネットワーク:us-central
- サブネットワーク:subnet-us-central IPv4(192.168.10.0/28)
- 外部 IPv4 アドレス:なし
上記設定後、「完了」を選択します。
最後に「作成」を選択します。
以上で、VM インスタンスの作成は終わりになります。
4.インターネット接続テスト①
それでは、一旦、デプロイしたVMでインターネットに接続できるかを確認します。
デプロイしたVM インスタンスの「cloud-nat-router-vm」の「SSH」を選択します。
SSHの画面が開いたら、下記コマンドを実行します。
curl https://www.yahoo.co.jp/
curl コマンドは、URLを指定して、その内容を取得したり、ファイルをダウンロードしたりできる便利なツールです。例えば、Webサイトの情報を表示したり、画像や動画を保存したりするのに役立ちます。使い方も簡単で、URLを指定するだけで実行できます。
現状は、外部IPアドレスもないですし、Cloud NATもないので、接続できません。
5.Cloud Routerの作成
そでは、外部IPアドレスを保有していないVM インスタンスがインターネットに接続するために、Cloud Routerを作成します。
コンソール上部の検索窓から、「cloud router」で検索し、「Cloud Router」を選択します。
「ルーターを作成」を選択します。
下記項目を入力します。ネットワークは、先程作成したVPC ネットワークを選択し、リージョンは、「cs-central1」を選択します。
- 名前:cloud-router-test
- ネットワーク:vpc-us-cenral
- リージョン:us-central1
上記設定後、「作成」を選択します。
以上で、Cloud Routerの作成は終わりになります。
6.Cloud NAT の作成
次は、Cloud NATの作成を行います。
コンソール上部の検索窓に「cloud nat」と入力し、「Cloud NAT」を選択します。
「開始」を選択します。
下記項目を設定します。
- ゲートウェイの名前(任意):cloud-nat-test
- ネットワーク:vpc-us-central
- リージョン:us-central1(アイオワ)
- Cloud Router:cloud-router-test
それ以外の設定は、初期設定のまま進めます。
最後に、「作成」を選択します。
以上で、Cloud NAT の作成は終わりになります。
7.インターネット接続テスト②
最後に、再度、インターネット接続テストを行います。
Computer Engine のVM インスタンスから、「SSH」を選択します。
下記コマンドを実行します。
curl https://www.yahoo.co.jp/
結果は、以下の通りです。正常にヤフーのページに接続できいるので、インデックス情報が表示されます。
以上で、Cloud RouterとCloud NATを使用してプライベートIPがインターネットに接続する実装は終わりになります。
まとめ
本日は下記5点について説明しました。
- Cloud Router の概要
- Cloud NAT の概要
- Cloud Router と Cloud NATを使用する目的
- 構成図
- 実装方法
Cloud Router と Cloud NAT を使用することで、プライベート IP アドレスしか所有していない VM をインターネットに接続することができます。VPC 内に複数の VM を構築する際は、セキュリティ強化やコスト削減の観点から、この方法を使用することが有効です。
ぜひ、実装方法を覚えておいてください。
これからも、Macのシステムエンジニアとして、日々、習得した知識や経験を発信していきますので、是非、ブックマーク登録してくれると嬉しいです!
それでは、次回のブログで!