GCPのVPCネットワークで、仮想マシンやデータベースなどのリソースを配置できるようになりましたね。これらのリソースがお互いに通信したり、インターネットと通信したりするためには、「どこにいるか」を示す情報が必要です。それがIPアドレスです。
IPアドレスは、例えるなら**GCPリソースの「住所」や「電話番号」**のようなものです。この章では、GCPで利用するIPアドレスの主な種類について、わかりやすく説明します。
IPアドレスとは?
IPアドレスは、ネットワークに接続された機器(コンピュータ、サーバー、スマートフォンなど)それぞれに割り当てられる、インターネット上の「住所」です。これにより、データが正しい相手に届くようになります。GCPのリソースも、それぞれにIPアドレスを持っています。
GCPでは主に以下の3つのタイプのIPアドレスを意識することになります。
- 内部IPアドレス (Internal IP Address):GCPのVPCネットワーク内でだけ使える「内部の住所」
- 外部IPアドレス (External IP Address):インターネットからアクセスできる「外部の住所」
- 静的IPアドレス (Static IP Address):固定された「変わらない住所」
1. 内部IPアドレス (Internal IP Address):VPCネットワーク内の「内線番号」
内部IPアドレスは、あなたのGCPプロジェクト内のVPCネットワークという「敷地」の中でだけ有効なIPアドレスです。インターネットからは直接アクセスできません。
イメージしてみてください:
あなたは会社にいます。社内には、部署ごとに内線電話が割り当てられていますね。この内線電話番号が「内部IPアドレス」です。同じ会社(VPCネットワーク)の人とは内線で通話(内部IPで通信)できますが、外部の人がこの番号に電話をかけても繋がりません。
- 特徴:
- プライベート性: インターネットに公開されず、セキュリティが高いです。
- 無料: 内部IPアドレスの利用自体には料金はかかりません。
- 高速な通信: 同じVPCネットワーク内のリソース同士は、高速かつ安全に通信できます。
- 自動割り当て: 通常、仮想マシンなどを起動すると、自動的にサブネットのIPアドレス範囲から内部IPアドレスが割り当てられます。
- 用途:
- ウェブサーバーとデータベースサーバー間の通信
- バックエンドサービス間の通信
- GCPサービス(Cloud SQLなど)へのプライベートアクセス
2. 外部IPアドレス (External IP Address):インターネットからアクセスするための「電話番号」
外部IPアドレスは、インターネットからアクセス可能なIPアドレスです。あなたのGCPリソースをインターネットに公開したい場合に必要になります。
イメージしてみてください:
あなたは会社にいて、会社の外にいる顧客や取引先と連絡を取りたいとします。そのためには、外線電話番号が必要ですね。この「外線電話番号」が「外部IPアドレス」です。この番号があれば、インターネット上の誰でも(もちろんアクセス制御は必要ですが)あなたのGCPリソースに到達できます。
- 特徴:
- インターネットからアクセス可能: グローバルにルーティング可能なアドレスです。
- 有料: 外部IPアドレスは、利用している間、料金が発生します。特に、仮想マシンに割り当てていても使っていない(トラフィックがない)外部IPアドレスは、少し高めの料金がかかることがあるので注意が必要です。
- エフェメラルIP (Ephemeral IP):
- これが外部IPアドレスのデフォルトの形です。仮想マシンを停止したり、再起動したりすると、IPアドレスが変わってしまう可能性があります。
- 例えるなら、使うたびに電話番号が変わる公衆電話のようなものです。
- 用途:
- ウェブサイトの公開
- SSHやRDPでのリモート接続(ただし、アクセス元を制限することが重要)
- インターネット上の外部サービスとの通信
3. 静的IPアドレス (Static IP Address):固定された「変わらない電話番号」
静的IPアドレスは、その名の通り**「固定された、変わらないIPアドレス」**です。外部IPアドレスの一種ですが、エフェメラルIPのように、リソースの停止や再起動でIPアドレスが変わることはありません。
イメージしてみてください:
あなたの会社の代表電話番号や、あなたのスマートフォンの電話番号は、一度決めたら簡単には変わりませんよね?それが「静的IPアドレス」です。この番号を覚えておけば、いつでもあなたに連絡を取ることができます。
- 特徴:
- 永続性: 特定のリソースに割り当てても、そのリソースを停止したり再起動したりしてもIPアドレスは変わりません。
- 予約が必要: GCPコンソールや
gcloud
コマンドで、事前にIPアドレスを「予約」する必要があります。 - 有料: 予約した静的IPアドレスは、リソースに割り当てて利用しているかどうかにかかわらず、料金が発生します。ただし、仮想マシンに割り当てて「使用中」の場合は、ほとんどのケースで料金が発生しません(リージョン内部IPアドレスなど一部を除く)。重要なのは、予約したのにどこにも割り当てられていない(使われていない)静的IPアドレスには料金がかかる、ということです。
- 用途:
- Webサイトの公開(ドメイン名と紐付けるため)
- 特定の外部システムからのアクセス元としてIPアドレスを登録する必要がある場合
- VPN接続の終端点など、IPアドレスが変わると困るケース
まとめ:IPアドレスの選び方
GCPのリソースにどのようなIPアドレスを割り当てるかは、そのリソースの役割によって変わります。
- 内部サービス(データベースなど): 基本的に内部IPアドレスのみを使い、インターネットに公開しない。
- インターネットに公開するサービス(Webサーバーなど):
- アクセス数が少なく、IPアドレスが変わっても問題ないなら、エフェメラル外部IPアドレスを使う。(ただし、ドメイン名を設定するなら静的IPが望ましい)
- 常に同じIPアドレスでアクセスさせたい、ドメイン名と紐付けたいなら、静的外部IPアドレスを予約して割り当てる。
- コストに注意:
- 使っていない静的外部IPアドレスは料金が発生するので、不要になったら必ず解放しましょう。
- 外部IPアドレスからのデータ送信(Egress)には料金がかかりますが、内部IPアドレス間の通信は無料です。
これらのIPアドレスの概念を理解することは、GCPのネットワークを設計し、セキュアで効率的なシステムを構築するための重要なステップです。実際に仮想マシンを作成する際に、どのIPアドレスを割り当てるか、また、割り当てたIPアドレスがGCPコンソールでどのように表示されるかを確認してください。