關於EC2
什麼是AWS?
Amazon Web Services ( 簡稱:AWS) ,主要特色是依照需求彈性提供雲端的計 算資源和服務,並採用即付即用的計價方式,與台灣各大提供原端主機的公司 比起來,費用相對便宜且穩定。在 AWS 上建立、配置、保護和執行伺服器, 就像坐在伺服器前面操作一樣。使用 AWS 這個雲端計算,我們就可以不需要自己準備電腦來架設主機,讓我們開發的伺服器可以更快上線。
AWS 提供的眾多服務,可以做到快速遷移,降低成本和擴展應用程式,提供的 服務如下:- 計算與聯網服務
- 儲存和內容傳輸服務
- 安全和身份服務
- 資料庫服務
- 分析服務
- 應用程式服務
- 管理工具
AWS 提供的多種計算與網路服務主要可以讓我們配置虛擬伺服器、設定防火 牆、配置 Internet 存取、分配和路由 IP 位址(也有提供固定 IP 服務),當你 的需求增加時(如 CPU 運算速度、硬碟容量、網路流量等等),可以彈性的不 斷擴充這些需求。
AWS 提供的計算、網路服務、儲存、資料庫和應用程式服務可以互相結合使用, 用來符合在不同的情況下建立我們需要的雲端服務。
AWS 的服務,列出部分如下:Amazon EC2 | 在 AWS 雲中提供虛擬伺服器。 |
Amazon VPC | 提供針對虛擬伺服器的獨立虛擬網絡。 |
Elastic Load Balancing | 在一組虛擬伺服器之間分配網路流量。 |
Auto Scaling | 根據需求的變化自動擴展虛擬伺服器組。 |
Amazon Route 53 | 將流量路由到資源(如虛擬伺服器或負載均衡器)的域名。 |
AWS Lambda | 在Amazon EC2的虛擬伺服器上運作代碼以響應事件。 |
Amazon ECS | 在Amazon EC2 的虛擬伺服器上提供 Docker 容器。 |
AWS 可以用來做什麼?
AWS 號稱可以讓我們更輕鬆的建構和管理網站和應用程式,以下是一些常見 AWS 用途:- 儲存公有或私有資料。
- 託管靜態網站。
- 託管動態網站或 Web 應用程式。為學生或線上培訓計劃提供支援。 處理業務和科學資料。
- 即時處理高峰負載。
備註:
靜態網站意指:純使用客戶端技術(例如 HTML、CSS 和 JavaScript)來建立不經常更 改的資料內容。也沒有用到任何伺服器端技術(如 PHP 和 ASP.NET)。
「地區」和「可用區域」
Amazon 在全世界不同的地區都有資料中心(例如,北美、歐洲和亞洲)。透 過將資源放置在不同區域,可以將網站或應用程式設計的更接近特定客戶、滿 足該地方的法律或其他要求。
備註:AWS 的使用費的定價因區域而異,例如以相同 EC2 來說,美國西部的奧勒岡州 (Oregon)資料中心使用費會比亞洲東京(Tokyo)便宜。
Amazon EC2 定價網頁:https://aws.amazon.com/tw/ec2/pricing/
AWS 除了有多個區域的資料中心外,每個區域還分成多個不同的「可用區 (Availability Zones)」。每個可用區都被設計成不受其他可用區故障的影響, 並提供低價、低延遲的網絡連接,讓同一個區域的可用區之間可以互相連接。 透過將網站資源放在不同的可用區,可以保護網站或應用程式不會受到單一位 置故障的影響。
各AWS 區域資料中心列表:區域名稱 | 城市 | 區域代碼 |
---|---|---|
亞洲 | 東京(Tokyo) | ap-northeast-1 |
亞洲 | 首爾(Seoul) | ap-northeast-2 |
亞洲 | 新加坡(Singapore) | ap-southeast-1 |
亞洲 | 悉尼(Sydney) | ap-southeast-2 |
歐洲 | 法蘭克福(Frankfurt) | eu-central-1 |
歐洲 | 愛爾蘭(Irelend) | eu-west-1 |
南美洲 | 聖保羅(São Paulo) | sa-east-1 |
美國東部 | 維吉尼亞北部(N. Virginia) | us-east-1 |
美國西部 | 加利福尼亞北部(N. Califronia) | us-west-1 |
美國西部 | 奧勒岡(Oregon) | us-west-2 |
AWS的安全性
AWS 提供了安全的全球基礎設施以及大量可用於保護雲中資料安全的功能,特色如下:- 嚴密控制、監視和審核對 AWS 資料中心的物理訪問。
- 嚴密控制、監視和審核對 AWS 網絡的訪問。
- 透過 AWS Identity and Access Management(IAM)管理用戶用以訪問AWS帳戶的安全證書。
- 可以對資料應用 ACL 類型的權限,也可以使用靜態資料加密。
- 可以設定 Virtual Private Cloud (VPC),它是一種在邏輯上與 AWS 雲端中的其他虛擬網路隔離的虛擬網路,並可以控制網路是否能直接路由到 Internet。
- 控制並配置虛擬伺服器上的作業系統。
- 設定防火牆的安全群組,用來控制虛擬伺服器的入站和出站流量。 可以在啟動虛擬伺服器時指定密鑰對(Key Pair),用來對登入訊息進行加密。(也就是當登入虛擬伺服器時,必須提供密鑰對(Key Pari)的私有密 鑰來解密登入訊息)。
什麼是EC2?
我們主要會使用 EC2 來當我們的雲端主機,Amazon Elastic Compute Cloud (Amazon EC2) 是一種類似於虛擬主機的服務,可以使需求彈性的調整運算能 力、記憶體、硬碟容量、網路速度等等。
直接使用 EC2 這種虛擬主機,就可以不需要自行架設、管理實體伺服器,也可 以省下電費。一切都是按使用量付費,用得少就付得少,需求量高,又可以彈 性的增加規模,且系統穩定,讓經濟規模較小的個人工作室或是小型公司可以 省下非常多的 IT 負擔。
EC2 實例(Instance)
實例(Instance)是 EC2 中每一個虛擬主機的名詞,我們可以把一個實例 (Instance)當成一個虛擬主機,在本章中,只要提到實例,讀者可以將它想 像成就是虛擬主機的意思。
什麼是AMI?
Amazon 系統映像(AMI)是一種包含軟體配 置(例如:作業系統、應用程式伺服器和應 用程式)的模板(Template)。我們可以將已 經安裝好的作業系統儲存成一個 AMI 映像, 之後便可以從這個映像快速的啟動一個新的 實例(也可以說成用 AMI 映像建立一個新的 虛擬主機),如下圖所示:
啟動一個新的實例(Launch Instance)時,需要選擇實例類型(也就是主機的 類型),實例類型決定了相應實例的主機的硬體能力(如記憶體、CPU 和儲 存)。也可以幫實例分配的公有 DNS 名稱(Public DNS)或公有 IP(Public IP)位址。
補充:
我們甚至可以跟 EC2 申請免費的固定 IP,固定 IP 在 EC2 內稱為 Elastic IP,並關聯 (Associate)給實例用,但要注意,當你申請了固定 IP 但是沒有拿來使用的話,會被收取費用。
Public DNS 看起來大概會像這個樣子: ec2-52-33-226-134.us-west-2.compute.amazonaws.com
實例會保持著 24 小時運作,直到你主動停止或終止運作,或實例在某種情況毀 損而執行失敗。如果實例失敗了,可以再從 AMI 啟動一個新實例,但當然,原 來實例內的資料就遺失了。
一開始,我們可以直接從 AWS Marketplace 內選擇最接近你需求 AMI 來啟動 一個新的實例(Launch Instance),當你把整個系統環境都安裝或設定好後, 把這個實例存成一個新的 AMI,這樣以後要在新增實例時,就可以直接從這個 AMI 來啟動,節省從新設定整個系統環境的時間。