2019年11月8日 星期五

AWS 學習筆記 (一)

最近因為公司有在介紹 Amazon 雲端服務 AWS, 所以昨晚去明儀找看看有沒有中文書, 結果竟然只找到一本, 而且是我沒興趣的網路滲透測試課題. 奇怪, AWS 的原文書在網路書店一大堆, 為何連一本翻譯書都沒有? 我想應該是台灣企業入雲需要低, 原因也是因為產業根本還沒轉型, 當然書商也不可能出版翻譯書吧!

十年前我開始用 Google 雲端, 那時 Google App Engine (GAS) 讓我非常驚豔, 原來架設網站根本不需要 Bottom-Up, 開發者只要專注在服務層面的商業邏輯, 底層的那些軟硬體細節就全部交給雲端搞定, 開發者只要了解如何在 Dashboard 網頁佈署自己的應用即可.

後來因為 GAS 的限制較多 (Crontab), Appfog 又改為收取昂貴費用, 我又轉回傳統的 LAMP 虛擬主機. 這次重新對雲端產生興趣, 是因為覺得這部分在台灣發展空間很大, 特別是 AWS 有提供 Python 開發套件, 對於在 AWS 上開發 ML 應用很方便, 參考 :

適用於 Python 的 AWS 開發套件 (Boto3)

亞馬遜於 2006 年將其內部營運使用的運算環境商用, 現在已是雲端計算市場的佼佼者. 這兩天找了一些資料來學習, 以下是初步的筆記, 但只是草稿而已, 主要是在了解其服務架構時遇到的一些術語註解. 大略來說, 雲端主要由下列五項構成 :
  1. Network
  2. Server
  3. Applications
  4. Database
  5. Storage
AWS 網路基礎架構參考 :

https://infrastructure.aws/

Edge Location
    |__ Region (以城市命名)
              |__ Availability Zones (AZ, 網路/電力等獨立)
                         |__ Data Centers




AWS 提供三種管理工具來佈署雲端應用服務 :
  1. Console (Web GUI, 也有 App 版)
  2. SDK ( Java/Python/Node.js 等多語言支援)
  3. CLI (Bash 或 PowerShell)
AWS Core Service :
  1. Networking
  2. Computing
  3. Storage
VPC (Virtual Private Cloud) :
在相同或不同 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 提供多種資料儲存選項, 主要有三 :
  1. Block storage : EBS
  2. Object storage : S3
  3. 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 專案
簡單入門,發展適度

沒有留言 :