Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Part-58: Google Cloud VPC – Internal and External Static IP Addresses - Demo

2025年09月15日に「Dev.to」が公開したITニュース「Part-58: Google Cloud VPC – Internal and External Static IP Addresses - Demo」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Google Cloudでは、VMに外部(インターネット向け)と内部(プライベートネットワーク向け)の固定IPアドレスを割り当てられる。これはVM再起動後も変わらず、安定したアクセスが可能だ。具体的な設定手順を通して、Webアプリケーションを固定IPで公開する流れを学ぶ。

ITニュース解説

Google Cloudにおいて、仮想マシン(VM)インスタンスを運用する際、そのネットワーク接続は非常に重要な要素となる。IPアドレスは、インターネット上やクラウド環境内でコンピュータが互いに通信するための住所のようなものであり、このIPアドレスには主に「エフェメラルIP」と「静的IP」の2種類が存在する。エフェメラルIPは、VMインスタンスが停止または再起動されるたびに変わる可能性のある一時的なIPアドレスである。一方、静的IPアドレスは、一度割り当てられるとユーザーが明示的に解放するまで変わらない固定されたIPアドレスを指す。この安定性は、特定のIPアドレスに依存するサービスや、DNS(ドメインネームシステム)と連携してWebサイトを公開する際などに不可欠となる。

静的IPアドレスには、さらに「外部(パブリック)静的IPアドレス」と「内部(プライベート)静的IPアドレス」の二種類がある。外部静的IPアドレスはインターネットから直接アクセス可能なアドレスであり、WebサーバーやAPIサーバーなど、外部に公開するサービスに利用される。一方、内部静的IPアドレスは、Google CloudのVPC(Virtual Private Cloud)ネットワーク内部でのみ利用されるプライベートなアドレスで、データベースサーバーやアプリケーションサーバー間の通信など、VPC内部の安全な通信に用いられる。

これらの静的IPアドレスを利用する具体的な手順を見ていこう。まず、Google Cloudのコンソールまたはgcloudコマンドラインツールを使って、外部と内部の静的IPアドレスをそれぞれ予約する。外部静的IPは、特定のVPCやサブネットワークに紐付ける必要はなく、グローバルに予約される。一方、内部静的IPは、特定のVPCネットワークとそのサブネットワークを指定して予約する必要がある。これにより、VMインスタンスがVPC内部で予測可能なアドレスを持つことが保証される。例えば、vpc2-customというネットワークのmysubnet1というサブネットワークに対して、内部静的IPを予約する。このとき、IPアドレス自体を自動割り当てにすることも可能だ。

次に、予約したこれらの静的IPアドレスをVMインスタンスに割り当てて作成する。VMインスタンスを作成するコマンドgcloud compute instances createを使用し、--network-interfaceオプションで、どのサブネットワークに接続し、どの外部IPアドレスを割り当て、どの内部IPアドレス(private-network-ip)を持つかを明示的に指定する。これにより、新しく作成されるVMインスタンスは、予約された固定の外部IPアドレスと内部IPアドレスの両方を持つことになる。また、このVMインスタンス作成時に、--metadata-from-file=startup-script=nginx-webserver.shのように起動スクリプトを指定することで、VMが起動と同時にNginxというWebサーバーを自動的にインストールし、設定することも可能だ。これは、Webサーバーのデプロイを自動化する一般的な方法である。

VMインスタンスが作成され、静的IPアドレスが割り当てられたら、次に外部からのアクセスを許可するためのファイアウォールルールを設定する。デフォルトでは、セキュリティのためにVMインスタンスへの外部からのほとんどのアクセスはブロックされている。Webサーバーを外部に公開するには、HTTP通信に用いられるポート80へのアクセスを許可するルールを作成する必要がある。gcloud compute firewall-rules createコマンドを使い、このルールを作成する。--direction=INGRESSは「受信」、--action=ALLOWは「許可」、--rules=tcp:80は「TCPプロトコルのポート80」、--source-ranges=0.0.0.0/0は「すべてのIPアドレスから」を意味する。これにより、インターネット上のどのコンピュータからでも、このVMインスタンスのポート80へのアクセスが許可される。--network=vpc2-customで、このルールが適用されるVPCネットワークを指定する。

これらの設定が完了すると、Webブラウザを開き、VMインスタンスに割り当てた外部静的IPアドレスを入力することで、Nginxのウェルカムページにアクセスできるはずだ。これは、VMインスタンスが正しく起動し、Webサーバーが動作しており、静的IPアドレスが正しく割り当てられ、さらにファイアウォールルールが適切に機能していることを確認する手順である。

最後に、利用が終了したリソースは適切にクリーンアップする必要がある。VMインスタンス、ファイアウォールルール、そして予約した静的IPアドレスは、利用を続けるとコストが発生する場合があるため、不要になったら速やかに削除することが推奨される。gcloud compute instances deleteコマンドでVMを削除し、--delete-disks=allオプションで関連するディスクも同時に削除する。ファイアウォールルールも同様にgcloud compute firewall-rules deleteコマンドで削除できる。静的IPアドレスは、Google Cloudコンソールから手動で解放するか、gcloud compute addresses deleteコマンドで削除できる。

このように、Google Cloudにおける静的IPアドレスの利用は、アプリケーションやサービスに安定したネットワーク接続を提供し、DNSとの連携や、VPC内部での予測可能な通信を可能にするための重要な基盤となる。外部と内部の静的IPアドレスを適切に管理し、ファイアウォールルールと組み合わせることで、堅牢で信頼性の高いクラウドインフラストラクチャを構築できる。

関連コンテンツ