加入RUN!PC粉絲團
最近新增的精選文章
 
最多人點閱的精選文章
 
 
精選文章 - 開發技術
分享到Plurk
分享到FaceBook
 
AWSome Day 2016 重點彙報
文/Nica 2017/1/9 下午 05:20:49


2016年11月21、22日舉辦的AWSome Day由AWS訓練講師從AWS歷史開始,介紹Amazon Web Service各項服務的充實課程。即便已有AWS的使用經驗,這場講座仍讓我受益良多。過去靠自行摸索的方式,已經瞭解如何利用AWS提供的服務,讓自已或客戶想要的功能運作起來,但經由AWSome Day,更能瞭解這些功能存在的意義,以及更適切的用法、各項服務搭配的理由與最佳組合。
本年度的AWSome Day議程如下(參考自AWSome Day網站):
■AWS 介紹及歷史
AWS歷史
AWS全球架構
AWS Management Console (包括展示)
■AWS 基本服務 (EC2, VPC)
Amazon Elastic Cloud Compute (EC2) 概念,包括 instance types 與 families、 AMIs 及 metadata and user data
Amazon Virtual Private Cloud (VPC) 概念,包括 subnets、security 及networking
■AWS 基本服務 (S3, EBS)
Amazon Simple Storage Service (S3) 儲存概念,包括 buckets, objects, 及 lifecycle management
Amazon Elastic Block Store (EBS)
概念,包括 volumes, snapshots 及 performance
Amazon EC2 instance 儲存概念,包括 SSD、swap volumes 及 optimizing disk performance
■資安、身份及訪問管理
AWS Shared Responsibility Model
AWS提供的資安措施
AWS Identity and Access Management (IAM) 概念,包括 users, groups, roles 及 policies
IAM 展示
■AWS資料庫
資料庫模式 (SQL vs NoSQL)
Amazon Relational Database Service (RDS) 概念,包括 database instances、 security groups、parameter及option groups
Amazon DynamoDB 概念,包括資料模式及支援動作
Provisioned throughput
■AWS擴展及管理工具
自動擴展概念,包括 launch configurations, Auto Scaling groups 及 scaling lifecycle
Elastic Load Balancing 概念,包括 request routing 及 Load Balancer Types
AWS 管理工具概念,包括 Amazon CloudWatch 及 AWS Trusted Advisor
■AWS解決方案架構概覽 ⇒ AWS 架構規劃師


基本服務 (EC2, VPC, S3, EBS)
在AWS提供的十多種產品分類中,最為大眾所熟知的便是提供雲端伺服器的EC2及與之連動的資料庫S3與EBS。就平台服務而言,細分如下:



▲ 圖片來源:AWSomeDay課程投影片。



套用EC2時,會面臨Regions與AZ(Availability Zone)的選擇。簡單來說,Regions代表地理位置,指的是服務提供的位置,例如日本、美國或歐洲。而AZ代表的是地點,例如某個建物。同一個Regions至少會有兩個AZ,而每個AZ會使用不同的供電設備與網路等,這也就提供了異地備援的概念。透過多重AZ的佈署,使用者可以在兩個小時內完成HA(High availability高可用性)佈署,相較於傳統建置方式,節省了相當可觀的成本、時間與精力。EC2的使用者,可透過tag,設定一對獨一無二的key與value,有效率管理EC2資源。

EC2裡的執行個體稱為instance,代表一個特定的CPU、記憶體與容量的組合,搭配你的各種應用程式。在處理Instsnce時必須留意的一點是stop/start與reboot的差異,前者stop時會停止計費(AWS計費單位以小時計),於start時再度重新計算,亦即你在啟動30分鐘後stop,再重新restart 20分鐘,將計算兩小時以上的費用,而reboot則不然,30分鐘後reboot再執行20分鐘則以一小時計費:reboot前後屬於相同計費區間。

你可以在AWS雲端上,建立邏輯性的隔離,這是透過VPC的建置,將你的網路區分出私有subnet與公開subnet,嚴格控制哪些資源可以透過網際網路存取,哪些不可以,有助於提升資源的安全性。

EBS是與EC2結合的儲存選項,可以將它想成EC2的硬碟,將EBS連接上EC2 Instance後,必須再將已連結的空間格式化才能使用,服務運作中還可以建立snapshot將備份存至S3。儲存選項S3可以單獨使用或如前述場景,搭配已建置的EC2+EBS使用。S3將資料視為buckets裡的object。object可以是檔案,或者是檔案與敘述檔案屬性metadata的結合。一個AWS帳號可擁有100個buckets,不過若超過這樣的需求,亦可向AWS申請。就S3而言,可依使用頻率細分到三種層級:S3 標準(Standard)、S3 標準不常存取 (Standard–IA)和Glacier。特殊選項Glacier是以存放極少使用到的資料為目的,因為每次回復object需耗時三至五小時,所以費用相當低廉。

資安、身份及訪問管理
IAM認證,決定每一個身份何時可以登入AWS management console、使用哪些資源等等。基於安全性理由,建議管理者建立一般使用者,再為其賦與root/administration權限,使用該使用者身份進行管理,不要經常使用管理者權限登入AWS management console。
AWS CLI(命令列介面)或SDK API(軟體溝通介面)的登入方式,是使用Access Key與Secret Key控管權限與角色。將每個資源使用者的身份與權限劃分清楚,可以讓資源的風險降到最低,最明顯的例子就耩當開發人員不小心將Access Key放在git上而遭人利用時,若該開發人員只具備嚴格限制的資源使用權限,事發時對系統管理者與整體服務的影響便能降到最低。
因此,建立個別的IAM使用者,再利用Group將權限指派給每一個IAM使用者,只給予他們必要的權限,並以群組方式管理,會是最安全與較方便的作法。
資料庫
AWS資料庫產品裡最聽到的就是RDS與DynamoDB,前者RDS提供Amazon Aurora、PostgreSQL、MySQL、MariaDB、Oracle和Microsoft SQL Server供使用者選擇,後者則屬於NoSQL資料庫。簡單又容易快速佈署的RDS提供兩種備份功能:一、自動備份,回復某個時間點的資料,最高可長達35天前的資料。二、手動snapshot,由使用者自行決定何時將資料snapshot至Amazon S3。

擴展及管理工具
CloudTrail記錄帳號的AWS API call,將資源記錄在log檔裡傳送到S3儲存,透過這樣的方式,管理者可以知道使用者在什麼時間對資源執行什麼動作、IP來源為何、為何失敗等等。搭配Glacier的使用,將S3已儲存一段時間的資料存放在成本相對較低的地方,再度省下更多成本。管理者可以透過AWS management console、AWS SDKs、AWS CLI與其他更高階的AWS服務設定CloudTrail API Call,對故障排除與問題修復相當有幫助。
負責監控AWS雲端資源與在其上運作的應用程式是屬於CloudWatch的任務。在此可以看到資源如何被利用、資源的使用效能與整體需求模式,使用者也可以客製化自已的需求標準,監控自訂的指標,因應特殊需求。
經由CloudWatch得到的結果,搭配使用者設定的Launch組態檔(內容為AMI ID、Instance型態、key pair、安全性群組、區塊裝置的對應與User Data),便能自動擴展你的服務。簡單來說,就是在你設定的狀況下,以你設定的條件擴充資源,並在同樣在資源使用率或其他數據達到設定值時,縮減資源、降低使用成本。特別的是,可以依排程的時間自動擴充與縮減資源,例如在已知的使用率高峰,每周五的下午三點,自動擴充兩台EC2應戰。

▲ 根據Amazon CloudWatch提供的資訊,自動擴充與縮減AWS使用資源



AWS解決方案架構
瞭解AWS提供的全方面、各式功能的產品後,接著申請AWS帳號、準備登入AWS Management Console使用各項服務前,你必須針對目地與需求作好規劃,決定你所需要的功能應該在AWS產品類別中選擇哪一項,例如是否需要作業系統?需要哪一種平台?需要資料庫嗎?需要用到關聯性資料庫嗎?依儲存空間的使用頻率,應該選擇EBS還是S3?是否需要異地備援?負載平衡?相關人員(角色)應給予哪些服務處理的權限等等。AWS架構規劃師,能夠針對企業規模、產品與服務的需求等,找出最適合的AWS資源,節省成本有效利用。