プログラマーの雑レポート

脳死で読めるコードを書きたい

(GCP入門)VPC・ネットワークについて

VPC概要

Virtual Private Cloud(VPC)とは、GoogleCloud上のリソース・サービス間でやりとりを行うための仮想ネットワークサービスで、その仮想ネットワークのことをVPCネットワークという。

また、一つのVPCネットワーク上で複数のリージョンを管理することができる。

VPCネットワーク設定は、「default」設定があり、簡易的にすぐ試すことができるが、細かい設定は行えない。

VPCネットワーク

サブネット

VPCネットワークの中で小分けされた小さなネットワークのこと。(だからサブね)

存在意義は、ネットワークのセキュリティやパフォーマンスを向上させるためみたい(GPT先生によると)

サブネットは、リージョンリソース(必ずどこかのリージョン属する必要があるもの)であるため、リージョンに必ず1つは存在する。

割り当てたIPアドレスの末尾にある 例 /11 は、 CIDR記法と呼ばれるもので、この数値によってIPアドレスの範囲を表現している。

IPアドレスの範囲は任意で設定することができる。

ファイルウォール

セキュリティの一環で、特定アクセスを制御できる。

特定IPアドレスや範囲等、上り(ユーザからのアクセス)・下り(サービスからのアクセス)個別で設定することができる

ルーティングとNAT

ルーティング

VPCネットワークとサブネットを構成すると、デフォルトルートサブネットルートという2つの経路情報(ルーティング)が自動で設定される。

ルーティングとは、ネットワーク上でデータを相手に届けるための宛先情報みたいなものでネットワークを構築する際に必要不可欠なもの。

デフォルトネットワークとは、VPCネットワークからインターネットに接続するインターネットゲートウェイ(中継役)のルーティング。

サブネットルートは、サブネット同士で通信するためのルーティング。

上記は自動設定だが、手動で設定する方法もある。(動的・静的ルーティング)

Cloud NAT(Cloud Network Adress Translation)

インターネットからのアクセスを禁止しつつ、サービス側からアクセスしたい時に使えるサービス。

インターネットと通信を行う場合、外部IPが必須だが、外部IPをGCE等で持ってしまうとインターネットからのアクセスも許可されてしまう。(許可したくないケースがある)

NATは、プライベートIPをパブリックIPに変換する技術で、外部IPを持たせなくてもGCE等の情報をインターネット上に送信することができる。

ネットワークの拡張

通常異なるVPCネットワーク間では、アクセスすることはできないが、VPCネットワークペアリング・CloudVPC等のサービスを利用することで相互アクセスが可能となる

Cloud Load Balancing

複数のGCE等のサービスへの負荷を分散するサービス。

ユーザやトラフィック量に応じて自動でスケールする。

大きく分けて2種類あり、インターネットからのトラフィックを負荷分散する 外部負荷分散と、VPCネットワーク内部でのトラフィックを負荷分散する 内部負荷分散 がある。

さらにその中でも、外部HTTP負荷分散・内部TCP/UDP負荷分散等に種類がある。

例: 外部HTTP(S)負荷分散イメージ図

Cloud CDN(Cloud Content Delivery Network)

画像やHTMLをキャッシュサーバに保存しておいて、通信を高速化する仕組み。

キャッシュの設定は3つある。(全ての設定は、指定したコンテンツを自動でキャッシュする?)

  1. 全てのコンテンツをキャッシュする(キャッシュモード)
  2. 静的コンテンツのみキャッシュする
  3. オリジンサーバの Cache-Controlヘッダー参照する

コンテンツはキャッシュキーを使用して、管理されていて、そのキーが存在しなければ、キャッシュ元オリジンサーバーに直接通信される。

 

懸念点として、更新頻度の高いコンテンツはあまり効果がないため、コンテンツの質によって適切に設定する必要がある。

CloudCDNイメージ図

Cloud DNS

Google Cloudが提供している DNSサービス。

DNSとは、IPアドレスドメインを紐づける仕組み。

 

参考

cloud.google.com

終わり

ネットワークまわりはかなり勉強になった。

次回はCloud Storage!