十年前我開始用 Google 雲端, 那時 Google App Engine (GAS) 讓我非常驚豔, 原來架設網站根本不需要 Bottom-Up, 開發者只要專注在服務層面的商業邏輯, 底層的那些軟硬體細節就全部交給雲端搞定, 開發者只要了解如何在 Dashboard 網頁佈署自己的應用即可.
後來因為 GAS 的限制較多 (Crontab), Appfog 又改為收取昂貴費用, 我又轉回傳統的 LAMP 虛擬主機. 這次重新對雲端產生興趣, 是因為覺得這部分在台灣發展空間很大, 特別是 AWS 有提供 Python 開發套件, 對於在 AWS 上開發 ML 應用很方便, 參考 :
# 適用於 Python 的 AWS 開發套件 (Boto3)
亞馬遜於 2006 年將其內部營運使用的運算環境商用, 現在已是雲端計算市場的佼佼者. 這兩天找了一些資料來學習, 以下是初步的筆記, 但只是草稿而已, 主要是在了解其服務架構時遇到的一些術語註解. 大略來說, 雲端主要由下列五項構成 :
- Network
- Server
- Applications
- Database
- Storage
# https://infrastructure.aws/
Edge Location
|__ Region (以城市命名)
|__ Availability Zones (AZ, 網路/電力等獨立)
|__ Data Centers
AWS 提供三種管理工具來佈署雲端應用服務 :
- Console (Web GUI, 也有 App 版)
- SDK ( Java/Python/Node.js 等多語言支援)
- CLI (Bash 或 PowerShell)
- Networking
- Computing
- Storage
在相同或不同 AZ 內定義之邏輯上獨立的網路環境 (A logically isolated section of AWS region), 可指定 IP 範圍與多個 private subnet (內網) 或 public subnet (需指派一個 IGW 以連上 Internet).
Subnet (類似 VLAN 概念) :
|__ public subnet (可連 Internet, 開啟 80/443 port for 0.0.0.0/0)
|__ private subnet (僅開啟特定 IP 來源或 SG-ID以 port 22 存取 )
Security group (SG) :
VPC 內部以 instance (即 VM) 為基礎的單向 stateful virtual firewall (會自動建立 return session), 可控制 inbound 與 outbound 訊務.
EC2 : Elastic Compute Cloud (虛擬主機)
提供安全可調整之運算能力, 可根據使用場景 (use case, 即計算需求) 來挑選擇適當的實體類型 (instance types, 即 CPU + Memory 等硬體資源組合).
AMI : Amazon Machine Image
已經調校打包好的作業系統與運算環境映像檔, 可挑選後佈署到 EC2 的 instance 上, 也可從市場 (Marketplace) 與社群 (Community) 取得分享之映像檔, 或從已有環境自行建立 (MyAMI), 但要注意資安問題.
AWS 提供多種資料儲存選項, 主要有三 :
- Block storage : EBS
- Object storage : S3
- Archive storage : Gracier
EBS :
可以掛載到 EC2 instance 上可調整的大量儲存空間 (Block Storage), 其實就是網路硬碟.
S3 :
區域性分散的物件儲存空間 (透過 Web API 呼叫), 資料是以物件形式儲存 (單一物件最大 5TB), 可以將 Javascript, HTML, 影像等丟進 S3 的 Bucket (即物件容器), 每一個物件都有對應的 URL 連結, 因此可經由 Internet 存取, 也可以用 static content 方式達成 serverless access (不需要 EC2), 還可設定 Requester pays (請求者付費).
Gracier :
低成本的 Archive 檔案封存系統, 適合用來儲存較不常用需長期保存的資料, 例如健檢資料或多媒體數位典藏影像等, 資料來源為 S3 (可透過生命週期管理丟過去), 資料取得時間較久 (約 3~5 小時), 若要加速取回需另付 retrieval fee (加速取得費).
參考 :
# AWS 10 分鐘教學 (AWS 產品實作訓練)
# 使用 EC2 啟動 Linux 虛擬機器
# 雲端平台怎麼選?比較三大雲端供應商 GCP 與 AWS 與 Azure
# 適用於 PHP 的 AWS 開發套件
# 在 AWS Elastic Beanstalk 上佈署 PHP 應用
# 使用 AWS CodeStar 部署 PHP 專案
簡單入門,發展適度
沒有留言:
張貼留言