當我們在Amazon Cloud上註冊了一個免費帳號後,興高采烈的按一下左上方Services連結,會出現密密麻麻一堆令人眼花瞭亂的服務及功能,這麼多的項目與產品,各有不同的功能、不同的目的與精密的計費方式,頭一眼看到真是令人望之卻步。
沒關係,透過本文,希望可讓你可以很快的先瞭解AWS的架構,以及基本的功能和服務。
下方是AWS的平台架構,該架構演示了AWS所有的服務與產品,我們先從最下方的Infrastructure來看起。
Global Infrastructure
- 目前AWS共有11個Regions,每個Region擁有數個Availability Zones。
- Region指的是一個實際的大範圍地區,例如Western United States(美國西部)與Eastern United States(美國東部)
- Zone指的是資料中心(機房)。
- 此外目前有52個Edge Locations。
- Edge Location指的是CDN End Points(CDN是Content Distribution Network的縮寫。)
- Cloud Front是AWS中針對Edge Location的服務。
- 以下是AWS在全球的分佈據點介紹:
- AWS Edge locations分佈:
接下來我們再往上看,這些是AWS所提供的各項服務:
Networking
- Route53:DNS服務,把名稱 (如 www.example.com) 轉換為電腦用於互相連接的數字 IP 地址 (如 192.0.2.1)。
- Direct Connect:連接本地設施(私人網路)和 AWS 的專用網路連線,例如,我們可以透過此服務將公司內部的應用程式連到AWS的資料庫。
- Virtual Private Cloud(VPC):將多種的AWS服務運作於自訂的Virtual Private Cloud中,好像擁有個人機房一樣。
Compute:有四項主要的服務
- EC2(Elastic Compute Cloud):可自行調整大小容量的雲端運算服務。
- AutoScaling:與EC2搭配,可依據目前loading自動調整運算服務的大小容量。
- Elastic Load Balancing:針對Web server或Application server,與Route53搭配使用,分配需求到各個服務主機,並且可避開有問題的主機。
- Workspaces:提供VDI桌面服務,例如微軟的Windows 7/8… 等。
Storage:
- S3(Simple Storage Service):可以單獨使用,也可以與其他 AWS 服務搭配使用,最大支援5TB file size。
- Glacier:針對不常存取且可接受數小時擷取時間的資料儲存服務,因此費用較S3更低廉,因此適用於不常存取且大量的資料儲存。
- EBS(Elastic Block Store):與EC2搭配使用,以提供持久性儲存磁碟區,為資料區塊級(Block level),可建立partition、存放任何filesystem種類的系統及檔案。
- Storage Gateway:與使用者端的應用程式配合使用,屬於一種雲端儲存的服務,在兩者之間提供無縫且安全的整合,並可視需求自動擴展空間。
- Import/Export:針對資料雲端遷移、異地備份、災難復原、交換資料等需求,可將大量資料快速的移入或移出 AWS 雲端,它不透過Internet而使用實體的便攜式儲存裝置來匯出或匯入。
Databases:
- RDS(Relational Database Services):提供常見的關聯式資料庫服務,可讓使用者在雲端設定、操作和擴展資料庫的相關工作;目前提供五大類型的資料庫:MySQL、Oracle、Microsoft SQL Server 、PostgreSQL及 Amazon Aurora。
- DynamoDB:針對近來流行的NoSQL 資料庫所提供,支援文件(Files)和鍵值(Key-Value)等類型的NoSQL資料庫。
- Elastic Cache:一種記憶體內快取的資料庫服務,這項服務可從記憶體內的快取系統中擷取資訊,而不是完全仰賴速度較慢的磁碟型資料庫,目前支援兩種記憶體內快取引擎:Memcached和Redis。
Analytics:
- RedShift:一種大型的,以PB為單位的雲端資料倉儲服務,用以處理巨量資料及分析。
- Kinesis:可即時性的針對大型、分散式等資料流進行資料處理,而且每小時內就可以從數十萬個來源持續性的擷取和存放高達數百TB的資料。
- EMR(Elastic MapReduce):架構在目前最流行的BigData儲存管理雲端平台Hadoop以及MapReduce技術,提供快速且經濟實惠處理大量資料的服務。
Applications:
- SQS(Simple Queue Service):應用於程式之間進行訊息交換或知會的Message Queue訊息佇列服務。
- SWF(Simple Workflow Service):一種狀態追蹤器和任務協調器的服務,可協助開發人員建構、執行和調整以平行或連續步驟進行的背景任務;例如,如果應用程式的步驟需要 500 毫秒以上才能完成,並在任務失敗時恢復或重試,這時就需要SWF 服務。
- SNS(Simple Notification Service):一種推送簡訊收發服務,可將通知推送到Apple、Google、Fire OS和Windows 裝置,也可以透過SMS簡訊或電子郵件將通知傳遞給 Simple Queue Service (SQS) 佇列,或傳遞給任何 HTTP 終端節點。
- SES(Simple Email Service):純粹針對外寄(out-bonding)的電子郵件發送服務,多用於發送交易電子郵件、行銷訊息等等。
- Elastic Transcoder:即時且快速的線上影音轉檔服務。
- Cloud Search:提供網站或應用程式的網路搜尋功能,它支援34種語言與熱門搜尋功能,例如反白、自動完成及地理空間搜尋。
Deployment & Managementr:
- Opsworks:一種應用程式管理服務,用於部署和操作不同形態和規模的應用程式。
- IAM(Identity and Access Management):控制使用者對AWS服務和資源的存取權限,使用者可使用IAM來建立和管理AWS使用者和群組,並使用各種權限來允許和拒絕他們存取AWS資源。
- Cloud Watch:針對AWS雲端資源和執行的應用程式進行監控的服務,使用者可利用 CloudWatch收集和追蹤指標、監控記錄檔以及設定警示。
- Elastic Beanstalk:只要你的Web應用程式或服務是用Java、.NET、PHP、Node.js、Python、Ruby、Go或Docker所開發的,那麼只需上傳程式碼,從容量佈建、負載平衡、自動擴展到應用程式運作狀態監控的部署,Elastic Beanstalk 都可自動處理。
- CloudTrail:用於記錄帳戶的AWS API 呼叫並提供日誌檔案,所記錄的資訊包括了API 呼叫者的身份、API 呼叫的時間、API 呼叫者的來源 IP 地址、請求參數以及 AWS 服務返回的回應元素等等。
- Data Pipeline:在不同的AWS運算服務或儲存服務之間移轉或處理的服務,例如S3、RDS、DynamoDB、EMR之間等等。
- Cloud Formation:提供一種可讓開發人員和系統管理員建立和管理相關AWS資源集合的簡單方式,並透過有序且可預測的方式對其加以佈建和更新。
以上對於Amazon的架構和服務作了大致的介紹,接下來,我會在後續的文章中繼續介紹各項服務的操作及使用方式。