env cloud aws gcp azure

[Cloud] 雲端運算

雲端是什麼

雲端運算(Cloud Computing)一句話講完:運算資源(伺服器、儲存、資料庫、網路等)不再自己買自己管,改成向雲端服務商租。

對比一下流程就懂了:

  • 傳統:買伺服器 → 找機房託管 → 申請固定 IP → 自己裝 OS 和軟體 → 硬體壞了自己修
  • 上雲:開個帳號 → 點幾下或下幾行指令,虛擬伺服器就到手,用多少付多少

三大雲端平台

AWSGoogle Cloud (GCP)Microsoft Azure
市佔最大,約 30%第三第二
強項服務最完整、社群最大AI/ML 工具、資料分析與 Microsoft 生態整合(Office 365、AD)
適合幾乎所有場景AI 應用、大數據企業已使用 Microsoft 技術棧的情況

好消息是,三家提供的服務大多互相對應。學會其中一家的概念,換到另一家的學習成本不高。

服務模型:IaaS、PaaS、SaaS

雲端服務照「你自己管多少」分成三個層次:

開發者最常接觸 IaaS(自己管伺服器)和 PaaS(只部署程式碼)。Serverless 模式更進一步——只寫函式,連伺服器都不用管。

常見的雲端服務類型

運算

  • 虛擬機(VM):一台可以 SSH 登入的雲端電腦。AWS EC2 / GCP Compute Engine / Azure Virtual Machine
  • 容器服務:直接跑 Docker Container,底層 OS 不用你管。AWS ECS/EKS / GCP Cloud Run/GKE / Azure Container Apps/AKS
  • Serverless:函式按需執行,沒有請求就不計費。AWS Lambda / Google Cloud Functions / Azure Functions

AWS Lambda 的 Node.js handler 長這樣——上傳這個檔案就能跑,不用管伺服器:

// index.mjs
export const handler = async (event) => {
  const name = event.queryStringParameters?.name ?? 'world'
  return {
    statusCode: 200,
    body: JSON.stringify({ message: `Hello, ${name}!` }),
  }
}

搭配 API Gateway 或 Function URL 觸發,實際被請求一次才計費一次。

儲存

  • 物件儲存(Object Storage):存圖片、影片、備份檔這類非結構化資料。AWS S3 是這類服務的代名詞,GCP 叫 Cloud Storage,Azure 叫 Blob Storage。存進去就能用 URL 存取,容量幾乎無限,而且便宜。
  • 區塊儲存:掛載到 VM 上的虛擬硬碟(SSD/HDD),用起來就像一般硬碟。AWS EBS、GCP Persistent Disk。
  • 檔案儲存:可以被多台機器同時掛載的共享目錄。AWS EFS、Azure Files。

資料庫

雲端平台提供託管的資料庫——安裝、備份、版本管理全部不用自己來:

  • 關聯式資料庫:AWS RDS(支援 PostgreSQL、MySQL 等)、Google Cloud SQL、Azure Database
  • NoSQL:AWS DynamoDB、Google Firestore、Azure Cosmos DB
  • 快取:AWS ElastiCache(Redis/Memcached)、GCP Memorystore

網路

  • CDN(內容傳遞網路):把靜態資源(圖片、JS、CSS)分散存放在全球各地的節點,讓使用者從最近的節點取得,加快速度。AWS CloudFront、Cloudflare、GCP Cloud CDN。
  • 負載平衡器(Load Balancer):把流量分散到多台伺服器,避免單點過載。
  • DNS:AWS Route 53、GCP Cloud DNS。

為什麼要上雲

彈性與擴縮容

流量突然暴增時,雲端可以快速開更多台機器分擔(水平擴展),流量退去再縮回去。自己買伺服器的話,只能照尖峰流量備機器,平時大半閒置,很浪費。

按用量付費

不用預先砸錢買硬體。小專案從最小規格開始,長大了再升級;臨時性的任務跑完就刪掉,不留成本。

全球化

雲端平台在全球各地都有資料中心(Region)。想讓台灣、美國、歐洲的使用者都有低延遲,選對 Region 就好,不用自己在各地建機房。

可靠性

大型雲端平台有 SLA(服務等級協議)保障可用性,通常在 99.9% 以上。自己維護的伺服器壞了就是壞了;雲端平台有備援機制撐著。

上雲不等於萬能

雲端也有幾個要小心的地方:

  • 成本不可預期:沒設好預算警報的話,流量暴增或設定錯誤,帳單可能嚇到人
  • 廠商鎖定(Vendor Lock-in):越深度使用某家平台的特有服務(例如 AWS Lambda + DynamoDB 的組合),之後要搬家成本越高
  • 學習曲線:三大平台各自有幾百個服務,光是把概念搞清楚就要花不少時間

Region 與 Availability Zone

雲端平台的地理概念很重要:

  • Region(區域):地理上的一個位置,例如 ap-northeast-1(AWS 東京)、asia-east1(GCP 台灣)
  • Availability Zone(可用區,AZ):同一個 Region 內的多個獨立資料中心,彼此有物理隔離。一個 Region 通常有 3 個以上的 AZ,服務分散部署在不同 AZ,就算其中一個斷電也不影響服務

選 Region 主要考量兩件事:使用者在哪(越近延遲越低)和法規要求(某些行業要求資料必須存放在特定國家)。

和 Docker 的關係

Docker 把應用程式打包成 Container Image,雲端則提供讓這些 Container 跑起來的基礎設施。

兩者的常見組合:

  1. 在本機用 Docker 開發與測試
  2. 把 Image 推到雲端的 Container Registry(AWS ECR、GCP Artifact Registry)
  3. 用雲端的容器服務(ECS、Cloud Run)把它跑起來
  4. 搭配雲端的資料庫、儲存、CDN 等服務

這樣從開發到部署,環境完全一致,也不用自己管伺服器的 OS 和安全性更新。

Latest Updates

  • 2026.06.11 Content updated