今回のブログは、Professional Cloud Network Engineer認定取得講座20回目です!今回は、「ファイアウォール ルールとVPC ネットワーク ピアリングの実装方法について説明します!」です!
今回から、Professional Cloud Network Engineer認定試験に不合格したことを受け、実際のGoogle Cloudのネットワークに関する設定方法を説明していきます。前回のブログでも書いたように、認定試験に合格できなかった原因の一つは、机上の知識だけで、実装方法について、あまり重要視していなかったことだと考えています。
そこで、今後は、Google Cloudのネットワークに関する実装方法について、実際のコンソール画面を使用して説明していきます。実装方法を学ぶことで、知識を深め、認定試験に合格するための準備を進めていきたいと思います。
是非、最後までご覧いただけると嬉しいです。
VPC ネットワーク ピアリングの概要
VPC ネットワーク ピアリングの概要は、下記のブログで説明しています。そちらをご覧ください。
構築内容
今回は、2つのVPCを作成します。その後、各VPCをピアリングして、両方のVPC間で通信できるようにします。次に、各VPCにVMをデプロイして、ファイアウォール ルールを作成します。片方のVMから、もう片方のVMにpingをして、疎通できるかを確認します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/ping-1024x576.png)
VPC ネットワーク ピアリング実装方法
VPC ネットワーク ピアリング実装方法は、全部で5ステップで説明します。
- VPCとサブネットを作成
- VPC ネットワークピアリングを作成
- VM インスタンスをデプロイ
- ファイアウォール ルールを作成
- pingで疎通確認
1つずつ詳しく説明します。
1. VPCとサブネットを作成
vpc-aの作成
まずは、VPC を作成します。
Google Cloudのコンソールで、「VPC ネットワーク」を開き、画面上部の「VPC ネットワークを作成」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vpc-01-1024x343.png)
下記の通り設定します。
- 名前:vpc-a(任意)
その他の設定は、初期設定のまま進めます。各項目の説明は、?マークで確認することができます。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vpc-02.png)
サブネットは、下記の通り設定します。
- 名前:subnet-a(任意)
- リージョン:us-central1
- IPv4 範囲:10.128.1.0/24
![](https://hajimenoit.com/wp-content/uploads/2024/01/vpc-03.png)
今回は、Compute EngineでVMをデプロイするにあたり、リージョンをus-central1に選択しました。us-central1、us-west1、us-east1は、無料枠で使用できるためです。
![](https://cloud.google.com/_static/cloud/images/social-icon-google-cloud-1200-630.png?hl=ja)
IPv4 範囲については、us-central1のサブネット範囲が「10.128.0.0/20」のため、「10.128.1.0/24」を選択しています。
![](https://cloud.google.com/_static/cloud/images/social-icon-google-cloud-1200-630.png?hl=ja)
使用できるIPv4の範囲は、下記サイト等を使用して選択してください。
設定後、「完了」を選択します。
その他の設定については、初期設定のまま進めます。最後に、「作成」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vpc-04-1024x762.png)
vpc-bの作成
vpc-aと同じようにvpc-bを作成します。「VPC ネットワークを作成」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vpc-05-1024x315.png)
下記の通り設定します。
- 名前:vpc-b(任意)
その他の設定は、初期設定のまま進めます。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vpc-06.png)
サブネットは、下記の通り設定します。
- 名前:subnet-b
- リージョン:us-east1
- IPv4 範囲:10.142.1.0/24
![](https://hajimenoit.com/wp-content/uploads/2024/01/voc-07.png)
設定後、「完了」を選択します。
その他の設定については、初期設定のまま進めます。最後に、「作成」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vpc-08-1024x641.png)
作成した VPC ネットワークは以下のとおりです。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vpc-09-1024x304.png)
以上で、VPCとサブネットの作成は終わりになります。VPC は、使用するリージョンに合わせて、サブネットを設定する必要があります。サブネットの範囲は、デプロイするリソースの数に合わせて選択してください。また、将来の拡張を考慮して、少し広めに選択することをおすすめします。
2. VPC ネットワークピアリングを作成
vpc-abの作成
次は、VPC ネットワークピアリングを作成します。
サイドバーから、「VPC ネットワークピアリング」を選択します。その後、画面中央の「接続を作成」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vpc-10-1024x290.png)
「続行」を選択します。今回は、同一プロジェクト内のVPCをピアリングします。また、他のプロジェクトのVPCとピアリングすることも可能です。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vpc-11.png)
下記の通り設定します。
- 名前:vpc-ab(任意)
- VPC ネットワーク:vpc-a
- VPC ネットワークの名前:vpc-b
その他の設定は、初期設定のまま進めます。最後に、「作成」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vpc-12.png)
vpc-baの作成
vpc-abと同じようにvpc-baを作成します。画面上部の「ピアリング接続の作成」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vpc-13-1024x108.png)
「続行」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vpc-14.png)
下記の通り設定します。
- 名前:vpc-ba(任意)
- VPC ネットワーク:vpc-b
- VPC ネットワークの名前:vpc-a
その他の設定は、初期設定のまま進めます。最後に、「作成」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vpc-15.png)
作成直後はステータスが「無効」ですが、しばらく待ってからリロードすると、「有効」になります。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vpc-16-1024x128.png)
![](https://hajimenoit.com/wp-content/uploads/2024/01/vpc-17-1024x126.png)
以上で、VPC ネットワーク ピアリングの作成は終わりになります。VPC ネットワーク ピアリングは、接続元と接続先の VPC ネットワークを設定することで作成できます。
3. VM インスタンスをデプロイ
vm-aを作成
次は、各VPCにCompute EngineでVM インスタンスをデプロイ(配置)します。
検索窓又はサイドバーから、Compute Engineを検索してVM インスタンスを開きます。画面上部又は中央の「インスタンスを作成」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vm-01-1024x478.png)
下記の通り設定します。
- 名前:vm-a(任意)
- リージョン:us-central 1(アイオワ)
- マシンの構成:E2
- プリセット:e2-micro
※マシンの構成は、「E2」を選択します。理由は、無料枠で使用できるプリセットが「e2-micro」だからです。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vm-02-1024x529.png)
その他の設定は、初期設定のまま下に移動します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vm-03-1024x563.png)
「詳細オプション」を展開します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vm-04-1024x557.png)
ネットワーキングを展開し、ネットワーク インターフェースの「default」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vm-05-1024x544.png)
下記の通り設定します。
- ネットワーク:vpc-a
- サブネットワーク:subnet-a IPv4 (10.128.1.0/24)
- 外部 IPv4 アドレス:なし
最後に、「完了」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vm-06.png)
最後に、「作成」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vm-07-1024x830.png)
vm-bを作成
vm-aと同じようにvm-bを作成します。画面上部の「インスタンスを作成」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vm-08-1024x176.png)
下記の通り設定します。
- 名前:vm-b(任意)
- リージョン:us-east 1(サウスカロライナ)
- マシンの構成:E2
- プリセット:e2-micro
![](https://hajimenoit.com/wp-content/uploads/2024/01/vm-09-1024x549.png)
その他の設定は、初期設定のまま、「詳細オプション」を展開します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vm-10-1024x518.png)
ネットワーキングを展開し、ネットワークインターフェースの「default」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vm-11-1024x539.png)
下記の通り設定します。
- ネットワーク:vpc-b
- サブネットワーク:subnet-a IPv4 (10.142.1.0/24)
- 外部 IPv4 アドレス:なし
最後に、「完了」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vm-12.png)
最後に、「作成」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vm-13.png)
正常に作成されると、ステータスが緑色に変わります。
![](https://hajimenoit.com/wp-content/uploads/2024/01/vm-14-1024x236.png)
以上で、VM インスタンスの作成は終わりになります。
4. ファイアウォール ルールを作成
次にファイアウォール ルールを作成します。ファイアウォール ルールは、VPCに作成します。
VPC ネットワークを開きます。今回は、vm-bからvm-aに対して疎通確認をするので、vpc-aにファイアウォール ルールを設定します。そのため、「vpc-a」を開きます。
![](https://hajimenoit.com/wp-content/uploads/2024/01/fw-01-1024x324.png)
「ファイアウォール」タブを選択し、「ファイアウォール ルールを追加」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/fw-02-1024x229.png)
下記の通り設定します。
- 名前:fw-a(任意)
- ネットワーク:vpc-a
今回のファイアウォール ルールは、vpc-a 内部のトラフィックに対するものなので、トラフィックの方向は「上り」になります。また、一致したときのアクションは、「許可」になります。
![](https://hajimenoit.com/wp-content/uploads/2024/01/fw-03.png)
下記の通り設定します。
- ターゲット:ネットワーク上のすべてのインスタンス
- ソースフィルタ:IPv4範囲
- 送信元IPv4 範囲:10.142.1.0/24
- プロトコルとポート:すべて許可
セキュリティ向上のため、本番環境では、プロトコルとポートは、指定のポートにのみ制限してください。具体的には、TCPの80番ポート(HTTP)や443番ポート(HTTPS)などが挙げられます。
設定を行ったら最後に「作成」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/fw-04.png)
これで、ファイアウォール ルールの作成は、終わりになります。ファイアウォール ルールを作成する際は、トラフィックの方向に注意が必要です。上りは外部から内部へのトラフィック、下りは内部から外部へのトラフィックになります。
5. pingで疎通確認
最後に、vm-bからvm-aにpingを打って、疎通できるかを確認します。
再度、Compute Engineを開き、VM インスタンスを開きます。次に、vm-bの「SSH」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/pg-01-01-1024x275.png)
承認を促す画面が表示されるので、「Authorize」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/pg-02.png)
すると、SSHに接続するには、「35.235.240.0/20」からのTCP上り(内向き)のトラフィックポートでSSHが使用する22番ポートを開けるように促されます。
![](https://hajimenoit.com/wp-content/uploads/2024/01/pg-03.png)
理由は、IAP(Identity-Aware Proxy)がTCP転送を使用してVMに接続するためです。
IAPは、Google Cloudのセキュリティ機能の1つで、IAMと連携して、インターネットからVMにアクセスする際にユーザーの認証と承認を行います。IAPを使用すると、VMに外部IPアドレスを設定する必要がなく、安全にインターネットからアクセスできます。
IAPのTCP転送では、インターネット上のIAP サーバが、VMの内部IPアドレスに接続します。この接続は、IAP サーバのIPアドレスである「35.235.240.0/20」からの上り(内向き)トラフィックとして処理されます。
したがって、VMに外部IPアドレスを設定していない場合、IAPのTCP転送による接続を許可するために、ファイアウォール ルールで「35.235.240.0/20 からの上り(内向き)トラフィックを許可」する必要があります。
![](https://cloud.google.com/_static/cloud/images/social-icon-google-cloud-1200-630.png?hl=ja)
ファイアウォール ルールを作成するため、再度VPC ネットワークを開きます。今回は、「vpc-b」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/pg-04-1024x308.png)
「ファイアウォール」 タブを選択し、「ファイアウォール ルールを追加」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/pg-05-1024x203.png)
下記の通り設定します。
- 名前:vpc-b-ssh(任意)
- ネットワーク:vpc-b
今回のファイアウォール ルールは、vpc-b 内部のトラフィックに対して作成します。したがって、トラフィックの方向は「上り」になります。また、一致したときのアクションは、「許可」になります。
![](https://hajimenoit.com/wp-content/uploads/2024/01/pg-06.png)
下記の通り設定します。
- ターゲット:ネットワーク上のすべてのインスタンス
- ソースフィルタ:IPv4 範囲
- 送信元 IPv4 範囲:35.235.240.0/20
- プロトコルとポート:指定したプロトコルとポート
- プロトコル:TCP
- ポート:22
設定を行ったら最後に作成を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/pg-07.png)
これで、vm-bにSSH接続するためのファイアウォール ルール作成は終わりです。
vm-bにSSH接続できるかを試します。Compute Engineを開き、vm-bのSSHを選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/pg-09-02-1024x201.png)
承認を促す画面が表示されるので、「Authorize」を選択します。
![](https://hajimenoit.com/wp-content/uploads/2024/01/pg-02.png)
ファイアウォール ルールの設定が正常であれば、ターミナルの画面が開きます。
![](https://hajimenoit.com/wp-content/uploads/2024/01/pg-11.png)
最後に、vm-bからvm-aに対してpingを打って、疎通ができるかを確認します。コマンドは、以下になります
ping 10.128.1.2
![](https://hajimenoit.com/wp-content/uploads/2024/01/pg-12-1024x181.png)
vm-bからvm-aにpingを送信すると、帰ってきたパケットの情報が表示されます。上記コマンドの場合、永遠に続くので、control + Cで中断してください。
![](https://hajimenoit.com/wp-content/uploads/2024/01/last.png)
VPC ネットワークピアリングとファイアウォール ルールを設定することで、別々のサブネットにあるリソースを相互に接続することができます。複数の VPC を使用してサービスを構築する場合、これらの設定は必須です。今回のブログの内容を確認して、実際に試してみてください。
こちらの実装の場合、基本的に料金は発生しません。ただし、Compute Engine の VM は、起動中は料金が発生するため、検証後は必ず停止してください。また、VM の構成を無料枠の範囲から変更すると、料金が発生します。
まとめ
本日は下記3点について説明しました。
- VPC ネットワーク ピアリングの概要
- 構築内容
- VPC ネットワークピアリング実装方法
ファイアウォール ルールと VPC ネットワーク ピアリングの作成は、Google Cloud でシステム構築する際に欠かせない基本的な作業です。今回の方法を確認して、ぜひ実践してみてください。
これからも、Macのシステムエンジニアとして、日々、習得した知識や経験を発信していきますので、是非、ブックマーク登録してくれると嬉しいです!
それでは、次回のブログで!