[GCP] GCPサービスを勝手にまとめてみた(ネットワーキング編)

# GCPって
https://qiita.com/risa0320/items/5f34bc9102e575705274

# サービスの分類
おおまかにはこんな感じ。（一部省略してます）
※2019年8月末時点のもの。
※α版、β版を含む。
https://cloud.google.com/products/?hl=ja よりいろいろ引用してます。

| 分類       |  サービス例    |
|:-----------------|:------------------|
| AIと機械学習   | AutoML,Vision AI,Cloud TPU... |
| API管理 | Apigee Sense,Cloud Healthcare API... |
| コンピューティング | Compute Engine,App Engine,Cloud Functions... |
| データ分析 | BigQuery,Cloud Composer,Cloud Dataflow... |
| データベース | Cloud SQL,Cloud Bigtable,Cloud Spanner... |
| デベロッパーツール | Container Registry,Cloud Build... |
| ハイブリットとマルチクラウド | Anthos,GKE On-Prem... |
| IoT | Cloud IoT Core,Edge TPU |
| 管理ツール | Stackdriver,Monitoring,Private Catalog... |
| メデイアとゲーム | Zync Render,Anvato... |
| 移行 | Cloud Data Transfer,Transfer Application... |
| ネットワーキング | Virtual Private Cloud,Cloud DNS,Cloud NAT... |
| セキュリティ | Cloud Security Scanner,Cloud IAM,Cloud HSM... |
| ストレージ | Cloud Storage,Cloud Firestore... |

# サービスをもう少し深く見てみる
## ネットワーキング
### Virtual Private Cloud
Cloud Platform リソースのためのマネージド ネットワーク機能
> Virtual Private Cloud（VPC）を使うと、ワークロードがリージョン別またはグローバルでどのように接続されるかを柔軟に調整、制御できます。オンプレミスやリモートのリソースを GCP に接続すると、リージョンごとに接続や管理ポリシーを複製しなくても VPC にグローバルにアクセスできます。

<機能>

* VPC ネットワーク
* Cloud Router
* 共有 VPC
* ルート
* VPN
* VPC フローログ
* ファイアウォール
* VPC ピアリング

<特徴>

* グローバル
  * 公共のインターネットを経由することなく複数のリージョンにまたがった通信を実現 
* 共有しやすさ
* 拡張可能
  * ワークロードのシャットダウンやダウンタイムなしでサブネットの IP 空間を増やすことができる
* プライベート アクセス
  * ストレージ、ビッグデータ、分析、機械学習などの Google サービスへのプライベート アクセスが可能
* 透過性
  * VPC フローログを使ってほぼリアルタイム（5 秒間隔）でロギングすることで、パフォーマンス分析とネットワーク フォレンジックの両方についてデプロイメントのモニタリングが可能

<用途>

* サブネットを備えた VPC を作成することにより、グローバルに分散された多層アプリケーションをホスト。
* サブネットと VPN アクセスを備えた VPC を作成することにより、GCP または外部でホストされたデータベースを Google 独自の機械学習サービスに接続。
* アプリケーションのレプリケーションによる障害復旧。予備の GCP コンピューティング容量を調達し、インシデント終了後に元の状態に戻す。

### Cloud Load Balancing
Google Cloud Platform でパフォーマンスとスケーラビリティに優れた負荷分散を実現
> Cloud Load Balancing を利用すれば、Compute Engine 上のアプリケーションをアイドル状態からフル稼働の状態まで一気にスケールできます。プレウォーミングは必要ありません。コンピューティング リソースを地理的にユーザーに近いリージョンに分散して配置し、求められる高可用性要件を満たすことができます。また、1 つのエニーキャスト IP アドレスの背後にリソースをデプロイし、インテリジェントな自動スケーリング機能を使ってリソースをスケールできます。Cloud Load Balancing には各種のロードバランサがあり、Cloud CDN と統合されてアプリケーションとコンテンツの配信を最適化します。

毎秒100万リクエストに対応しているというのがすごい。
しかもトラフィックはまず、Google自体の負荷分散システムを通ってから、このCloud Load Balancingに入ってくるので、Googleの高速なプライベートネットワークを使ったデータ転送が行われる。

<特徴>

* HTTP(S) 負荷分散
* Stackdriver Logging
* TCP / SSL 負荷分散
* シームレスな自動スケーリング
* SSL オフロード
* 高精度なヘルスチェック
* 高度な機能のサポート
* アフィニティ
* Cloud CDN との統合
* UDP 負荷分散

### Cloud DNS
信頼性と復元性に優れたレイテンシの低い DNS サービスを、Google の世界的ネットワークから提供
> Google Cloud DNS はスケーラブルかつ信頼性の高いマネージド権威ドメイン ネーム システム（DNS）サービスで、Google と同じインフラストラクチャで動作します。低レイテンシで可用性が高く、アプリケーションやサービスをユーザーに効率よく提供できます。Cloud DNS は、ドメイン名（例: www.google.com）のリクエストを IP アドレス（例: 74.125.29.101）に変換します。また Cloud DNS は、プログラムによる操作が可能です。Google のシンプルなユーザー インターフェース、コマンドライン インターフェース、API を使用して、数百万もの DNS ゾーンやレコードを公開し、管理できます。

Google の SLA は、Google の権威ネームサーバーについて 100% の可用性を保証していて、
また、Googleのネームサーバーは自動的にスケールして大量のリクエストを処理するのでユーザーの介入が不要。

<特徴>

* 権威 DNS ルックアップ
* 限定公開ゾーン
* 高速なエニーキャスト ネームサーバー
* DNS 転送
* スケーラビリティと可用性
* ゾーンとプロジェクトの管理
* Stackdriver Logging
* API とウェブ UI での管理
* DNS ピアリング

### Cloud CDN
Google のグローバル ネットワークを使って、低レイテンシ、低コストでコンテンツを配信
> Google Cloud CDN は Google が世界中に持つエッジ拠点を活用し、Google Compute Engine や Google Cloud Storage によって提供されるウェブサイトやアプリケーションのコンテンツを高速で配信します。Cloud CDN を採用することでネットワーク レイテンシの低減に加え、配信元の負荷軽減や配信費用の削減をも実現できます。HTTP(S) 負荷分散を設定したら、Cloud CDN のチェックボックスをオンにするだけでこの機能を簡単に使うことができます。

最大５TBのラージオブジェクトをサポートしているそう。

<特徴>

* エニーキャスト
* 無効化
* HTTP/2
* HTTPS
* ロギング
* 送信元

### Cloud Armor
サービス拒否攻撃やウェブ攻撃からサービスを保護します。
> Cloud Armor は、インフラストラクチャとアプリケーションに対する分散型サービス拒否（DDoS）攻撃を、Google のグローバルなインフラストラクチャとセキュリティ システムを使用して広範囲に防御するサービスです。

<機能>

* Cloud Armor とグローバル HTTP(S) ロードバランサ
  * HTTP(S) ロードバランサと連動することで、インフラストラクチャへの DDoS 攻撃を防御する組み込み機能として動作
* Stackdriver Logging
* プレビュー モード
* 充実したルール言語(α版)
* IP ベースのアクセス制御
* ルールを使用したポリシー フレームワーク
* 位置情報に基づくアクセス制御(α版)

プレビューモードありがたい！
実際のアクセスパターンを把握できたり、ポリシーが有効かを事前に確認できるのは安心。

### Cloud NAT
GCP管理の高性能ネットワークアドレス変換。
> アプリケーションがクラウドで実行されているからといって、外の世界からアクセスできるようにしたいわけではありません。Google Cloudのマネージドネットワークアドレス変換サービスであるCloud NATを使用すると、パブリックIPアドレスなしでアプリケーションインスタンスをプロビジョニングできると同時に、更新、パッチ適用、構成管理などのためにインターネットにアクセスできます。外部リソースは、クラウドNATゲートウェイの背後にあるプライベートインスタンスに直接アクセスできないため、Google Cloud VPCを分離して安全に保つことができます。

<特徴>

* マネージドNATサービス
* フレキシブル
* ゲートウェイごとに複数のNAT IP
* タイムアウトタイマー
* すべてのNAT
* 高可用性

### Network Service Tiers
ネットワークのパフォーマンスやコストを最適化
> Google Cloud Platform（GCP）Network Service Tiers を使用すると、インターネット上のシステムと、Google Kubernetes Engine のノードと GCP のロードバランサを含む GCP VM インスタンス用の外部 IP アドレス間の接続性を改善できます。

2つの階層があり、プレミアム階層を使用すればパフォーマンスを、スタンダード階層を使用すればコストを改善。

* プレミアム階層
  * 最高のパフォーマンス: インターネットと VPC ネットワーク内の VM インスタンス間のトラフィックは、可能な限り Google のネットワーク内でルーティングされます。
  * グローバルな可用性を必要とするサービス向け
  * Google Cloud に固有
  * 構成を変更しない限り、プレミアム階層がデフォルトです。
* スタンダード階層
  * コスト最適化: インターネットと VPC ネットワーク内の VM インスタンス間のトラフィックは、通常はインターネット経由でルーティングされます。
  * 単一のリージョン内で完全にホストされているサービス向け
  * パフォーマンスは、他のクラウド プロバイダと同等です。

### Network Telemetry
サービスの安全性を維持する詳細なネットワーク テレメトリー。
> セキュリティや運用上のリスクになるおそれのあるトラフィック パターンとアクセス パターンをほぼリアルタイムに特定できます。ネットワーク テレメトリーは、Google Cloud Platform ネットワーク サービス向けの応答性の高い詳細な VPC フローログをネットワーク運用とセキュリティ運用の両方に提供します。

<機能>

* トラフィックのカバー範囲
* パフォーマンスへの影響がない
* アノテーション
* プロトコル
* 指標
* フロー定義パラメータ
* フィルタ
* パートナー