加入RUN!PC粉絲團 加入RUN!PC粉絲團
 
精選文章
分享到Plurk
分享到FaceBook
 
Amazon雲端服務入門
文‧圖/柳百郁 2013/3/4 下午 02:53:39

  Amazon的AWS提供相當完整的雲端產品,供個人、企業組織或其它團體依自身環境的條件與需求彈性使用。『用多少、算多少』是AWS雲端產品吸引人的要項之一,免費試用一年再決定是否適用這種方式,更讓雲端運算的推動更進一步,除此之外,Amazon更提供簡單又直覺的web介面,即便是沒有IT技術背景的使用者也能夠輕鬆上手。AWS的管理介面:AWS Management Console讓使用者可以方便管理其運算、儲存與其它雲端資源。筆者就AWS Management Console管理介面下的分類:運算與網路、儲存與內容遞送、資料庫、佈署與管理,以及App服務,簡單敘述這些大項底下所提供的產品用途。

一、運算與網路
.Direct Connect:用來建立與AWS間的私有連結,像是你的資料中心、辦公室或主機代管的機器與AWS的連結。首先,建置你想要colocate的地方與需要的頻寬,接著與你的主機代管供應商聯絡,完成與AWS Direct Connect的接通,最後,建立虛擬介面存取你在AWS裡所使用的服務。
.EC2:全名為Amazon Elastic Compute Cloud。EC2為雲端裡的虛擬伺服器,稱之為instance,是一項可供使用者在雲端上彈性調整計算效能的伺服器服務。除了Windows外,AWS亦提供多項主流Linux分支套件可取用,像是Red Hat Enterprise、SUSE與Ubuntu等。
.Elastic MapReduce:Hadoop框架管理。Hadoop是巨量資料處理所使用的基礎架構,Elastic MapReduce則是用來執行巨量資料處理的任務,例如web索引、資料探勘與事件紀錄檔的分析。將必須耗費大量硬體與時間資源的資料,交由Elastic MapReduce處理,可免去佈署硬體架構的成本,也能夠快速獲得想要的分析結果。
.Route 53:彈性管理DNS。Route 53 在世界各地的資料中心裡皆備有授權的名稱伺服器DNS(將人類可閱讀的網域名稱轉換成IP位址),因此更可靠、更彈性處理也更快。使用前,你必須先申請自已的網域名稱,再到Route 53管理介面建立hosted zone,接著回到域名供應商處(你申請網域名稱的地方),將NS紀錄更新成Route 53給你的四個名稱伺服器。最後,在Route 53管理介面中,加入你的hosted zone紀錄。
.VPC:Virtual Private Cloud可以為你的EC2資源建立私有網路拓樸(包括子網路、路由表),將雲端資源建置成一種隔離狀態。當你使用Amazon EC2時,所啟動的Instance都會擁有一個隨機的公開IP位址,VPM可以讓你在AWS雲端中產生一個隔離的部份,將Instance啟動在私有位址的狀態,例如可指定範圍10.0.0.0/16。使用者可以透過這種方式群組化管理Instance,進行安全控管,建立額外的安全層級。

二、儲存與內容遞送
.CloudFront:內容遞送的網站服務。用低延遲、高效率的方式傳遞整個網站內容。簡而言之,將你的網站內容,自動以離你網站使用者最近的伺服器傳遞,達成最佳效率。CloudFront已經和AWS的部份項目作了最佳化,像是Amazon Simple Storage Service(Amazon S3)、Amazon Elastic Compute Cloud(Amazon EC2)、Amazon Elastic Load Balancing與Amazon Route 53。更棒的是,它還可以和非AWS的伺服器搭配使用。


▲ 動態網站的Amazon CloudFront(圖片來源:Amazon網站)


.Glacier:雲端裡的歸檔儲存裝置。要使用Amazon Glacier的功能,必須先建立一個vault(窖?)。vault可以用來組織資料、組態存取控制與設定通知策略。使用者最簡單的應用方式,就是用它備份暫時不用、但數量龐大的資料與檔案。它的儲存資料目的與S3有些差異,這部份見S3說明。
.S3:全名為Simple Storage Service,乃雲端裡可彈性擴充的儲存裝置。使用方式是先建立一個Bucket(桶?),再將你的物件裝進Bucket,物件的型式,可以是純文字檔也可以是相片或其它型式。Bucket 裡的物件,可以開啟、可以下載回你的本機電腦裡,也可以在資料夾之間移動。S3與 Glacier服務的差異在於:S3是針對web所設計,若資料需要頻繁存取,有低延遲的要求時,建議使用S3;相對地,若資料儲存後很少取用,也能接受取回時需要數小時的時間,那麼就可以選擇低成本的Glacier。
.Storage Gateway:讓公司內部IT環境與軟體應用連結到雲端上的儲存裝置,在公司組織與AWS儲存基礎架構之間,提供無接縫又安全的整合。可以安全地儲存你加密放在 Amazon S3裡的資料。組態方式有二:
(一)、Gateway-Cached Volumes:將主要資料存放在Amazon S3上,保留經常存取的資料在本地端。這種方式可以節省擴充儲存裝置的需求,亦可讓經常存取的資料維持低延遲的傳輸存取。
(二)、Gateway-Stored Volumes:若資料集全都有低延遲需求,可以把所有資料都存在本地端,然後以非同步的方式將所有資料備份到Amazon S3上。使用這種作法,當災難發生時,便可以選擇從本地端或從Amazon EC2復原。

三、資料庫
.DynamoDB:全方位管理非關連性(NoSQL)資料庫服務,以無接縫式擴充的方式,提供快速且可預見的執行效能。從資料庫管理者來看,啟用Amazon DynamoDB資料庫table,可以在不需要停機或讓效能降級的情況下,針對table擴充或縮減request量。
.ElastiCache:記憶體內快取。讓使用者從記憶體裡的快取系統中把需要的資訊取出的服務,能夠促進應用程式執行效能。在使用ElastiCache前,必需先啟動Cache Cluster。Cache Cluster是一至多個Cache Node的集合,每一個Cache Node都執行一個Memcached(記憶體物件快取系統)服務的instance。只要是能在Memcacned環境裡使用的程式碼、應用程式與工具程式,在ElastiCache下皆可順利運作。
.RDS:關連性資料庫服務(Relational Database Service;RDS)的管理。RDS可以讓使用者管理熟悉的MySQL、Oracle或SQL Server資料庫。先建立一個DB Security Group,以便設定允許哪些IP位址或EC2 instance可以存取你的DB Instance,之後再建立DB Instance時,也會是使用這個群組的身份。接著,選擇DB引擎(例如MySQL),一旦選定DB引擎,接下來所建立的DB Instance就都是針對此引擎所用。完成後,DB Instance呈現 available狀態,就表示可以連結使用了。Amazon RDS並未提供管理資料庫的介面,你必須安裝第三方軟體管理資料庫(例如phpMyAdmin),或使用原始的文字介面工具程式使用它,例如:『mysql -h mydbinstance.c7hszkfowzmc.us-east-1.rds.amazonaws.com -P 3306 -u mymasteruser -p』。

四、佈署與管理
.CloudFormation:用可預期的方式,建立與更新相關AWS資源的組合。可以建立自已的堆疊,也可以就現在手中所使用的資源建立Template。在此服務中,AWS提供了一些 Template供使用者直接取用,迅速啟動應用程式,像是WordPress或Drupal。若已經在使用AWS各項資源,也可以用CloudFormer工具程式就現有資源建立自已的Template。
.CloudWatch:資源與應用程式監控。CloudWatch讓使用者可以輕鬆監控資源與應用程式。例如,只要設定警示,便可以透過電子郵件得知AWS帳單預估會收取的費用,它會在超過你所設定的警示值時發出通知。
.Data Pipeline:資料驅動的工作流程安排。此項web服務是用來幫助使用者,在特定時間區間裡,可靠地操作與移動AWS運算與儲存服務之間的資料,甚至還能處理AWS與公司內部環境之間的資料。你可以在容錯、可重複與高可用性的要求下,輕鬆產生複雜的資料處理工作流程。
.Elastic Beanstalk:用來佈署與管理AWS應用程式的容器(Container)。AWS提供眾多服務,讓使用者彈性建構基礎架構,但對剛開始使用的人來說,要找到各項資源所在位置其實也是項挑戰,Elastic Beanstalk就是用來解決這個問題,透過這個介面,你可以快速佈署與管理在AWS雲端裡的應用程式,無須擔心底層基礎架構建置的問題,只需要把應用程式上傳,AWS Elastic Beanstalk就會自動接手處理容量配置、工作負載平衡與應用程式健全狀態監控的問題。
.IAM:全名為Identity and Access Management的IAM是用來管理可以存取AWS資源的使用者與使用者權限。這個服務的目的,是為了組織使用AWS產品的多個使用者或系統。你可以在自已的AWS帳號下,用IAM建立多個IAM使用者:這裡指的使用者可以是人、可以是系統或者應用程式,它們可以擁有個別的安全性認證,但都在同一個AWS帳單帳號控制下。若不使用IAM,你要不得建立多個AWS帳號(每個都有自已的AWS產品帳單與訂閱),要不就得讓你的員工共享一個AWS帳號的安全認證,你會無法控制特定使用者或系統的任務能作的事以及可使用的AWS資源。

五、App 服務
.CloudSearch:全方面管理網站與app的搜尋服務。CloudSearch管理所有必須建置與佈署搜尋索引的伺服器資源。你只要把資料上傳到搜尋網域,然後提出需求就可以。
.SES:全名為 Simple Email Service的SES為電子郵件傳送服務。使用者可以讓AWS雲端裡的應用程式透過SES傳送電子郵件。
.SNS:SNS全名為Simple Notification Service。可以讓應用程式、使用者與裝置即時傳送(或接收)雲端裡的通知。SNS將傳送訊息與訂閱通知的通訊頻道稱之為topic,為發布訊息者與訂閱者提供一個存取點,讓他們能夠彼此溝通。
.SQS:訊息佇列服務。用來儲存同一台電腦或不同電腦間,應用程式執行時彼此所傳遞的訊息,在SQS下,使用者可以在應用程式的分散元件之間移動資料,無須擔心漏失訊息,或必須等到各個元件皆為可用狀態才能使用。
.SWF:Simple Workflow Service是一套工作流程服務。使用者可以將數種應用程式建置為工作流程,SWF會維護工作流程一致性與可靠性的執行狀態,所以使用者可以專心在建置與執行自已的應用程式上。


▲ Amazon SWF(圖片來源:Amazon網站)


其它
  AWS登入後的帳號、帳單與安全性認證等管理的介面,除了預設的英文語系外,現僅提供德語、西班牙語、法語、日語、韓文及葡萄牙語。雲端服務可選擇的主機位置,則遍及美國維吉尼亞、美國奧勒岡州、美國加州、愛爾蘭、新加坡、東京、雪梨與南美的聖保羅(sao paulo),你可以透過CloudPing.info的服務(http://www.cloudping.info/),輕鬆透過網頁瞭解你所在位置(使用此網頁服務的主機位置)與AWS各主機之間封包延遲的時間,作為選擇AWS主機位置的參考之一。

▲ cloudping.info的執行結果