--- tags: 大話AWS雲端架構 --- # Chapter 4 - EC2 ## 4.1 添購伺服器的流程 添購實體 Server 的流程 ``` | 軟體市場 | 作業系統 | 硬體規格 | 系統調校+軟體安裝 | 硬碟擴充 | 標記資產 | 防火牆建立 | 連線金曜確認 ∇ ``` ## 4.2 AWS 的 EC2 虛擬主機服務 在 AWS 的雲端服務中有一款 EC2 服務,能夠動態租用虛擬主機(Instance),流程上也跟購買實體主機的概念大致相同 ``` | 軟體市場 ◄---------------► AMI Marketplace (Amazon 系統映像市集) | 作業系統 ◄---------------► AMI (Amazon 系統映像) | 硬體規格 ◄---------------► Instance (虛擬主機) | 系統調校+軟體安裝 ◄-------► Userdata (使用者資料) | 硬碟擴充 ◄---------------► EBS () | 標記資產 ◄---------------► Tag (標籤) | 防火牆建立 ◄--------------► Security Group (安全群組) | 連線金曜確認 ◄------------► Key Pair (金鑰對) ∇ ``` ## 4.3 在專案使用 EC2 時的應用考量 ### 4.3.1 購買方案 - Purchase Option - 機器的數量有限額([20 個 instance](https://aws.amazon.com/tw/ec2/faqs/)) - 付費方案分為幾種 - On Demand (隨需) - Reserved (保留) - Schedule Reserved (時程保留) - Spot (競標) - Delicate (專用主機) | 付費方案 | 應用場境 | | -------------------------- | -------- | | On Demand (隨需) | 適用於臨時需求且機器需要穩定表現,用多少、付多少、效能穩定 | | Reserved (保留) | 適用於需求明確,且確定是長期需求,可低價購買長期保留機器 | | Schedule Reserved (時程保留) | 適用於需求明確,但僅有特定時間使用 | | Spot (競標) | 適用於運算力高的需求,且運算任務可被中斷,但之後可接續進行(會依照競標高價者,取得使用權)| | Delicate (專用主機) | 適用於特殊軟體使用場景,會依照主機規格,進行授權使用| ### 4.3.2 虛擬映像檔 Amazon Machine Image 挑選完付費方案之後,接下來我們要挑選作業系統,也就是挑選 AMI - AMI 屬於 Regin 級別的服務,不能跨區使用 - 如果想要跨區使用,可以製作快照(snapshot),再透過 snapshot 複製出一個新的 AMI ### 4.3.3 機器 Instance 接下來要選擇硬體規格, EC2 的 instance 有許多不同的規格,例如下表 | 機器規格 | 虛擬處理器 | 記憶體 | 網路效能 | | --------- | -------- | ----- | ------ | | t2.micro | 1 | 1 | 低 | | t2.small | 1 | 2 | 中低 | | t2.medium | 2 | 4 | 中低 | 底下解析一下規格的英文數字組合所代表的意義 ``` t2.micro || | || ∇ || micro:規格大小 || |∇ |2:虛擬化技術版本 | ∇ t:應用場景 ``` 應用場景的部分還有其他許多代號,每個代號代表不同的意義,如下表 | 常見代號 | 應用場景 | | ------- | ---------- | | A | 一般用途 | | T | 一般用途 | | M | 一般用途 | | C | CPU 運算優化 | | R | 記憶體優化 | | X | 記憶體優化 | | Z | 記憶體優化 | | U | 記憶體優化 | | P | GPU 運算使用 | | Inf | GPU 運算使用 | | G | GPU 運算使用 | | F | GPU 運算使用 | | I | 儲存優化 | | D | 儲存優化 | | H | 儲存優化 | ### 4.3.4 網路與內部環境配置 有了有了主機與作業系統之後,難免會需要對作業系統做一些軟體安裝及設定,而這些動作可以透過 Userdata 來完成, Userdata 可以讓你使用你編寫的腳本,在 Instance 建立的時候 AWS 會主動幫你執行並完成你想要的環境建置 ### 4.3.5 硬碟 - Elastic Block Store and Instance Store EC2 為我們提供了兩種硬碟方案 1. EBS Volume - 與 Instance 位於不同的伺服器上 - 速度較慢 - 不愧因為 Instance 關機刪除資料 3. Instance store - 與 Instance 位於相同同的伺服器上 - 速度較快 - 關機後資料會刪除 ### 4.3.6 EBS 的種類 如書本 p.62 的圖或者[官網表格](https://aws.amazon.com/tw/ebs/features/) ### 4.3.7 Snapshot 快照 EBS Volume 提供了備份相關的功能,叫做 Snapshot ,另外還推出了一個 Lifecycle Manager ,協助我們定期做資料備份 我們可以用 Snapshot 建立一個 AMI 出來,其場景大致上有兩大類 1. 把現有的 Instance 的內容與軟體做一個封裝,未來可用此封裝的 AMI 新建 Instance 2. 如果我們想對機器做轉移,就可以透過 Snapshot 的方式,以創造建立的方式來進行 ### 4.3.8 防火牆 - Security Group (安全群組) EC2 採用了外掛式的防火牆,又稱 Security Group (安全群組) ,我們可以自己設定 Inbound rule 及 Outbound rule ,在沒有調整的狀況下, Inbound rule 只會預設開啟提供給 SSH 用的 22 Port 如果我們想要在 EC2 Instance 之間連線做存取,我們也可以在填寫 Security Group Id 來允許指定的 Security Group 存取 ### 4.3.9 網路卡 Elastic Network Interface (ENI) EC2 的 Instance 也會幫主機配置網路卡,每一台 EC2 Instance 都至少有一張 ENI 預設的情況下,Public IP 在重新開機後會改變,但如果想要固定 IP ,可以使用 Elastic IP (彈性 IP)功能,把彈性 IP 綁定在 Instance 之後, Public IP 就不會異動了 ### 4.3.10 連線金鑰 - KeyPair 金鑰對 在管理 Instance 的議題上, AWS 提供了兩種思維 1. 在 Instance 裡面放入公鑰,然後使用私鑰連入 Instance 2. 不在 Instance 裡面埋入金鑰 在 AWS 雲服務理論中,關於不放金鑰至 Instance 裡面的管理方法有兩種論點: 1. 希望我們盡可能不要連回 Instance 做操作,部署與應用啟動都透過 Userdata 來完成,後續如果 Instance 異常了,直接按先前的設定開一台或多台新的 Instance 2. 書上說有兩種可是他只寫了一種@@? ### 4.3.11 監控 Instance 啟動後,為了要確認 Instance 是否正常運作, AWS 會每五分鐘對 Instance 進行一次監控,如果連續偵測到三次異常數據,則會寄信給管理員 但如果覺得五分鐘太長也可以經過設定將時間縮短,可以得到比較即時的回覆