【入門編】 GCP Cloud NATの基本アーキテクチャとポートアロケーション方式 – クラウドインフラと仮想化ネットワーク実践ガイド

ネットの「住所を持たない」VMを外の世界へ。GCP Cloud NATの仕組みを優しく紐解く

こんにちは!クラウドインフラの現場を渡り歩いているSREです。

皆さんは、クラウド上にサーバーを立ち上げたとき、「このサーバー、プライベートな場所に置いているから、外のインターネットと直接おしゃべりできないな……」と悩んだことはありませんか?

外部との通信が必要だけど、セキュリティのためにパブリックIPアドレスは持たせたくない。そんな時に救世主となるのが「Cloud NAT」です。今日は、このCloud NATが裏側で一体どんな魔法を使っているのか、郵便配達の仕組みに例えながら紐解いていきましょう!

—

1. Cloud NATって、そもそも何者?

想像してみてください。あなたは「セキュリティが厳重なマンション(プライベートネットワーク)」の一室に住んでいます。あなたの部屋には外から直接届く「住所(パブリックIP)」がありません。でも、たまには外から荷物を取り寄せたり、手紙を出したりしたいですよね。

そんな時、マンションの受付にいる「敏腕マネージャー」がCloud NATです。

あなたが外に荷物を送る時、マネージャーはあなたの荷物を一度預かり、マンション全体の代表住所を書き込んでから外の世界へ送り出してくれます。そして、返事が届いた時には、誰宛の荷物かを記憶(マッピング)しておいて、正しくあなたの部屋まで届けてくれるんです。

2. 「ポート」という名の荷札を賢く使う

さて、ここで重要になるのが「ポート番号」という概念です。
マネージャー(Cloud NAT)には、マンションの代表住所が一つしかありません。でも、住人(VM)はたくさんいます。

「Aさんが送った手紙への返事」と「Bさんが送った手紙への返事」を、どうやって見分ければいいのでしょうか?

そこでマネージャーは、荷物に「10001番」「10002番」といった「荷札(ポート番号)」をペタペタと貼って管理します。これがポートアロケーション(割り当て)です。

「エンドポイント独立型」という賢いルール

GCPのCloud NATは、「エンドポイント独立型(Endpoint-Independent Mapping)」という方式を採用しています。

これは、簡単に言うと「一度決めた荷札は、しばらくの間、同じ宛先なら使い回す」というルールです。

  • メリット: 同じ宛先に対して何度も荷物を送る場合、毎回新しい荷札を作る手間が省けます。相手先にとっても、「あ、またこの荷札の人だね」とスムーズに認識してもらえるため、通信のトラブルが極端に減るのです。

3. 実践!Cloud NATを構築してみよう

では、実際にGoogle Cloudでこの仕組みを動かしてみましょう。といっても、難しいコマンドを覚える必要はありません。CLIツールである gcloud コマンドで設定していきます。

まずは「NATゲートウェイ」という受付窓口を作り、そこに「クラウドルーター」という司令塔を紐付けます。

# 1. まずは司令塔となるクラウドルーターを作成
gcloud compute routers create my-router \
    --network my-vpc-network \
    --region asia-northeast1

# 2. Cloud NATを作成し、ルーターに紐付けます
gcloud compute routers nats create my-nat \
    --router my-router \
    --region asia-northeast1 \
    --auto-allocate-nat-external-ips \
    --nat-all-subnet-ip-ranges
  • --auto-allocate-nat-external-ips: マネージャーが使う代表の住所を自動で割り当ててくれます。
  • --nat-all-subnet-ip-ranges: どの部屋の住人からの荷物でも受付対象にする、という設定です。

これだけで、プライベートなVMたちが元気に外の世界と通信できるようになります。

4. トラブルシューティングのヒント

現場でよくあるのが、「NATを使っているのに、特定のサイトに繋がらない!」というケースです。

Cloud NATは非常に優秀ですが、「ポートの枯渇(荷札不足)」という問題が起きることがあります。たくさんのVMが同時に膨大な通信を行うと、マネージャーが用意した荷札が底をついてしまうのです。

そんな時は、Cloud NATの設定で「最小ポート数」を調整したり、モニタリングツール(Cloud Monitoring)でポートの使用率をチェックするのが鉄則です。

# ポートの枯渇を防ぐための設定例(最小ポート数を増やす)
gcloud compute routers nats update my-nat \
    --router my-router \
    --region asia-northeast1 \
    --min-ports-per-vm 1024 # デフォルトより余裕を持たせる

最後に:一歩ずつ理解しよう

いかがでしたか?「NAT」と聞くと難しく感じますが、要は「限られた住所をみんなで仲良く、荷札を使って使い回す仕組み」だと捉えれば、とてもシンプルですよね。

インフラの世界は、こうした「現実世界のアナロジー」で動いていることが非常に多いです。まずは「パケットがどこで、どんな荷札を貼られているのか」を想像する癖をつけてみてください。

これからも、皆さんのクラウドライフが快適で安全なものになるよう、現場の知恵を共有していきますね。それでは、また次回の記事でお会いしましょう!

コメント

タイトルとURLをコピーしました