---
# System prepended metadata

title: GDG Cloud Meetup
tags: [' GAE', GCP]

---

---
title: GDG Cloud Meetup #5 - 架網站不用架機器，Google App Engine 簡介
tags: GCP, GAE
---

# GDG Cloud Meetup #5 - 架網站不用架機器，Google App Engine 簡介

<!-- Put the link to this slide here so people can follow -->
slide: https://gae.cqd.tw
Speaker: CQD / 天真可愛 / Q 姊
WIFI:
- SSID: GCPUG-KH
- Passwd: gcpug-kh-2019

<!--
    有興趣也可以追蹤粉絲專頁：https://www.facebook.com/cqdforever/
    放在這邊他本人應該就不會知道了
-->

---

<!-- Start writing your note here -->

## GAE 特色

### 不用架機器

### 專心寫程式

- 支援多種程式語言

### 以用量計費

- 計費方式
    - 開了幾台機器，開了多久時間
    - 網路流量
    - 資料儲存費用
    - 其他 Google 服務的使用費
- 可設定每日上限
- 有免費額度，小型服務堪用

## GAE 環境種類

### 標準環境(今日重點)

把「程式」丟到 GAE 裡面執行

- 第一代 (Google 土炮自幹環境)
    - 始於 2008
    - 支援的程式語言較舊
    - 支援 GAE 專有 API
- 第二代 (將官方環境包成 Container)
    - 始於 2018
    - 支援的程式語言較新
    - 僅支援公開 API

### 彈性環境

與標準環境架構不同，把 Docker Image 丟到 GAE 裡面執行

## 執行容器的選擇

- 控制權(由小排到大)
    - App Engine
        - 沒有辦法接觸底層的設定
    - K8S
    - Compute Engine
        - 可接觸到底層的設定

## App Engine 與 GCP 架構

### GCP 機房地理位置與網路連線

- 台灣的機房（彰濱）不支援 GAE
- 離台灣最近的區域(Region)
    - 香港
    - 大阪
    - 東京
- 效率：區域內通訊 > 跨區域通訊
    - 盡量與用戶同一個區域


### GAE 服務概略架構

![](https://i.imgur.com/iS2h8UA.png)

- 紅框表示服務提供者使用上需要考慮的部分
- 藍框表示跟用戶比較有關聯的部分

### 小結

- 注意機房地理位置
    - 離用戶越近越好
    - 台灣的機房（彰濱）不支援 GAE
- GAE 定位是前端服務
    - 作為使用者與後端服務的橋樑
- 善用 Frontend Server 快取機制

## 該不該用 GAE

### 推薦的理由

- 用量不多不用錢
    - 不超過免費額度，等於能跑程式的免費空間
    - 1 秒不到一個 request 都不算多
- 用量瞬間起伏成本不高
    - 機器會 auto-scale
    - 流量瞬間提升，只需要多付這段時間起伏的費用
- 系統管理外包
    - 不需要自己管機器
- 免費 HTTPS + HTTP/2
    - Let’s Encrypt

### 該注意的地方

- 資料儲存
    - Cloud SQL (無免費額度)
    - Cloud Datastore (有免費額度)
    - 自己開 GCE 機器架 DB
- 系統最佳化程度影響價格
    - 「以用量計費」是雙刃劍
        - 程式架構與寫法會影響到費用
- 不能修改機器設定
    - 不能修改安裝的套件
    - 不能在機器上安裝需要的程式
    - 不一定能安裝語言的擴充套件
    - 寫個 /tmp 都可能囉囉唆唆的
- 細枝末節
    - 網路相關問題
    - 環境總類的定價與限制不同
    - GCP 服務可能升級或停止

