---
# System prepended metadata

title: Google Network Service
tags: [GCP]

---

---

title: Google Network Service # 簡報的名稱
tags: GCP   # 簡報的標籤

---

## Google Network Service

----

## Agenda

- Cloud Load Balancing
- Cloud DNS
- Cloud CDN
- Cloud NAT

---

## Cloud Load Balancing
![](https://i.imgur.com/FV1To24.png)


----

### 選擇Load Balancing
![](https://i.imgur.com/7tO7uGe.png)


----

### 前置作業

- BackEnd (Instance Groups & Storage) 系統服務
- Health Cheak 偵測服務狀態
- FrontEnd (Http/Https)訪問入口
- Firewall 防火牆
- Certificate - (SSL 憑證)

----

### 了解服務資料的傳送方式

- RESTful API(Get/Post/Put/Delete)
- websocket 


----

### [了解HTTP狀態碼](https://developer.mozilla.org/zh-TW/docs/Web/HTTP/Status)

1. 資訊回應 (Informational responses, 100–199)
2. 成功回應 (Successful responses, 200–299)
3. 重定向 (Redirects, 300–399)
4. 用戶端錯誤 (Client errors, 400–499)
5. 伺服器端錯誤 (Server errors, 500–599)

----

### Firewall 設定
Health Cheak 
- 35.191.0.0/16
- 209.85.152.0/22
- 209.85.204.0/22

SSH 本機網路外網IP 或 0.0.0.0/0(不限IP)

----

### (HTTP/HTTPS)Load Balancing Layer 7

----

### 建立 Instance Groups
建立Health Check (HTTP/HTTPS/TCP)
* HTTP/HTTPS 一定要可訪問External IP
* TCP 不用開

確保 Instance Groups 可運行機器

----

### 建立 Load Balancing BackEnd

主要設定這兩個項目
- 選擇 Instance Groups 或 Storage
- 選擇 Health Check

----

### 建立 Host and path rules

建立路由轉導規則

----

### 建立 Load Balancing FrontEnd

- HTTP 預設
- HTTPS 需建立一組IP和憑證

----

### TCP Load Balancing Layer 4

----

### 建立 Load Balancing BackEnd

主要設定
- 選擇 Instance Groups

----

### 建立 Load Balancing FrontEnd

主要設定
- 需建立一組IP和憑證

---

## Cloud DNS

----

Tools -
* [G Suite Tools - dig](https://toolbox.googleapps.com/apps/dig/)
* [whatsmydns](https://www.whatsmydns.net/) - 驗證紀錄檔生效
* [dnsviz](https://dnsviz.net/) - 驗證 dnssec 驗證網域所設定的紀錄檔是否全球生效

----

#### 網址狀態測試

- `dig`
- `trace`
- `ping`

----

#### 區域類型 Zone Type
有分 私人(Private) / 公開(Pubilc)
* Private 私人 - 指定方式由DNS內網溝通用。
* Pubilc  公開 - 讓任何人可以存取。

---

## Cloud CDN
![](https://i.imgur.com/FKvrBp1.png)
網站內縙發送至離使用者最近的Google Front End，供使用者讀取

----

#### Header 設置

[一文带你看清 HTTP 所有概念](https://xie.infoq.cn/article/a87a720fcadacd8a9cd47347e)
[循序漸進理解 HTTP Cache 機制](https://blog.techbridge.cc/2017/06/17/cache-introduction/)
- `Cache-Control: max-age=3600; public`
- `ETag`
- `If-Match`

----

#### [過期時間](https://cloud.google.com/cdn/docs/caching)

`Cache-Control: s-maxage`>`Cache-Control: max-age`>`Expires`


---

#### ETag / If-Match

ETag，檔案依舊，這資料會cache住，If-Match換判斷是否與Etag相同且回傳304給客端口。
ETag，檔案更新資料過後，這資料會更新，Etag會改寫加密且回傳200給客端口。

---

## Cloud NAT
統一區域性出口IP，使用這個功能最重要的就是機器不能有**外網IP**。