<style>
.reveal, .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 {
font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, "Microsoft JhengHei", Meiryo, "MS ゴシック", "MS Gothic", sans-serif;
}
h1, h2, h3, h4, h5, h6 {
text-transform: none !important;
}
.color-yellow{
color: yellow;
}
.alert {
padding: 15px;
margin-bottom: 20px;
border: 1px solid transparent;
border-radius: 4px;
text-align: left;
padding: 10px 0;
}
.alert-info {
color: #31708f;
background-color: #d9edf7;
border-color: #bce8f1;
}
.alert-success {
color: #3c763d;
background-color: #dff0d8;
border-color: #d6e9c6;
}
.alert-danger {
color: #a94442;
background-color: #f2dede;
border-color: #ebccd1;
}
</style>
2019/10/02 AWS服務分享課程_B版
---
# AWS服務介紹
- **EC2** & **ECS**
- **Lambda**
- **S3** & **EBS**
- **Security** & **IAM**
- **RDS**
- **Big Data**
- **ELB** & **ALB**
- **CloudWatch** & **Auto Scaling**
---
# 服務架構圖

---
## AWS地端分布
---
**AWS地端分布**
- 一個Region會有多個AZ(Availability Zones)(至少2個),AZ之間網路互連以達成備援機制

- 亞洲目前有四處Region,日本、韓國、新加坡、香港
---
## EC2服務(Elastic Compute Cloud)
---
**EC2服務**
- 減少硬體建置成本(採購流程、硬體放入機房等等)
- 目前可選擇兩種作業系統: **Linux**、**Windows**
- 建置前須先規劃好Region、儲存容量、CPU、記憶體、網路設定....等
- 操作AMI執行EC2相關服務
**可根據不同的需求採用不同世代機,也有不同的計費方案**
---
### AMI 相關說明
AMI 可提供所需資訊來啟動instance。啟動instance時,必須指定 AMI。當需要多個具有相同組態的instance時,可以從單一 AMI 啟動多個instance。
---
AMI 包括下列項目:
- 一個或多個 EBS 快照,或若為 instance-store-backed AMI,執行個體之根磁碟區的範本 (例如作業系統、應用程式伺服器和應用程式)
- 控制哪些 AWS 帳戶可使用 AWS instance啟動的許可。
- 區塊型設備映射,指定啟動instance時連接至該instance的磁碟區。
---
### 使用AMI流程
下圖說明AMI生命週期。在建立和註冊AMI之後,即可用以啟動新的instance

---
### Instance Metadata
可透過下指令在特定連結獲取running instance(EC2)的資訊(metadata)

---
## ECS服務(Elastic Container Service)
---
**ECS服務**
- Amazon ECS 不需要安裝、操作和擴展自己的容器協調和叢集管理基礎設施。
- Amazon ECS 可以利用 AWS Fargate 全面管理基礎設施,並只專注於部署容器。或者選擇建立和終止 Docker 容器以檢視詳細的叢集狀態資訊。
---

---
## Lambda 服務
---
**Lambda 服務**
- 不需透過伺服器,只要上傳程式碼到lambda便可以執行運算
- 透過Amazon API可觸發其他AWS服務
- 資源有所變動時,Lambda會視需要執行函數並啟動和管理運算資源
- 按使用量付費
---

---
## VPC服務
---
**VPC服務**
- VPC能夠在AWS雲端佈建一個在邏輯上隔離的部分,以在自己定義的虛擬網路中啟動 AWS 資源,可以完全掌控虛擬聯網環境。

---
**VPC組成如下:**
1. **Virtual Private Cloud**:AWS雲端中邏輯隔離的虛擬網路。可從所選的範圍內定義VPC的IP地址空間。
2. **Subnet**:在 VPC 的 IP 地址範圍內的某個區段,可將隔離資源的群組放入其中。
3. **Internet Gateway**:公有網際網路連線的 Amazon VPC 端。
4. **NAT Gateway**:高可用性受管網路位址轉譯 (NAT)服務,可在subnet中存取網際網路。
---
5. **Virtual private gateway**:VPN 連接的 Amazon VPC 端。
6. **Peering Connection**:對等連線可讓您透過兩個對等 VPC 之間的私有 IP 地址路由流量。
7. **VPC Endpoints**:允許透過私有連線從您的 VPC 內連接到 AWS 上託管的服務,無須使用網際網路閘道、VPN、網路位址轉譯 (NAT) 裝置或防火牆代理。
8. **Egress-only Internet Gateway**:一種狀態閘道,針對從 VPC 到網際網路的 IPv6 流量提供只有輸出的存取。
---
## Storage服務 S3 & EBS
---
* 若以實際的資訊產品來比喻的話,S3像是網路磁碟(NAS、SAN)、EBS則像是外接硬碟(可掛載至EC2中使用)
* S3是Object Storage,不必掛載就能利用API呼叫使用
* EBS是Block Storage,必須掛載至某台EC2才能使用
* S3的單個檔案最大可到5TB,檔案數量沒有限制,且能同時被多個Clients讀取
---
* EBS單個掛載空間最大到16TB,一次只能被一台EC2掛載 (單台EC2可掛載多個EBS)
* EBS有IOPS可選用,但S3沒有,故EBS的存取效能會比S3好
* EBS有空間上和存取上的限制,S3則沒有;故建議依實際需求來採用S3、EBS的服務 (一般是混搭著一起用)
---
**S3 & EBS**

---
### S3 對比 EBS

---
## AWS Security & IAM(Identity and Access Management)
---
**AWS Security** 服務如下圖所示:

---
而**IAM**是一種 Web 服務透過 IAM 服務可以控管哪些使用者可以使用 AWS 資源,以及他們能使用的資源和採用方式,也就是授權,其提供的功能主要有:
* 集中管理權限:我們可以集中管理 AWS 服務。
* 共享存取權限:我們可以讓其它人員授予管理和使用 AWS 帳號中資源的權限。
* 精細權限:我們可以針對不同資源向不同人員授予不同的權限。
* 聯合身份:我們可以允許聯合其它身份驗證機制或身份提供商的使用者獲取 AWS 帳號臨時存取權限。
---
* 多重驗證:我們可以向帳號和每個使用者增加雙重身份驗證以實現更高安全性。
* 確保身份資訊:我們可以搭配 CloudTrail 服務設定記錄,其中包括帳號中使用者請求資源的資訊。
* 最終一致性:我們可以透過複製在全球資料中心內多個伺服器上的資料實現高可用性。
* 資料安全標準:我們可以支援由商家或服務提供商處理、儲存和傳輸資料,且驗證符合資料安全標準
---

---
## Amazon Relational Database Service (RDS) 服務
---
讓用戶能夠在雲端中設定、操作和擴展關聯式資料庫,能自動處理硬體佈建、資料庫設定、修補程式和備份等耗時的管理任務。

---->可使用**AWS Database Migration Service**輕鬆地將現有的資料庫遷移或複寫到 Amazon RDS。
---
### 結合RDS架構分布圖(Az1、Az2同步備份)

---
## Dynamo DB 服務
---
NoSQL的服務,DynamoDB 本身都是透過 Web Service 存取,所以沒有 RDBMS Connection 的概念,所以也不會有 Connection Pool 的問題。
---
### 與RDS比較

---
## Big data 服務
---

---
### 相關應用服務
- **Amazon EMR**
分散式架構資料處理軟體機群部屬精靈
- **Amazon Redshift**
一種支援SQL,屬於大量平行處理架構的資料倉儲
- **Amazon Athena**
基本就是SQL查詢S3的工具。
- **Amazon Kinesis**
即時的資料搜集處理服務,它每小時可以從數十萬個來源持續擷取和存放數百 TB 的資料,例如網站點擊流、金融交易、位置追蹤事件等
---
## ELB(Elastic Load Balancing) & ALB (Application Load Balancing)
---
* ELB可在多個目標(例如Amazon EC2 instance、container與IP address) 之間自動分配傳入的應用程式流量。它可以在單一可用區域或跨多個可用區域處理您應用程式流量的各種負載。
* ALB適合用來處理 HTTP 與 HTTPS 流量的負載平衡,可適用於一般 EC2 Instance或是Microservice與container運行的服務,以提供進階請求路由功能。ALB 在網路的應用層 (Layer 7 - application layer)運作。
---
**ALB & ELB 架構比較**

---
## CloudWatch 服務
---
針對AWS的服務進行資源監控,有以下的概念:
- **Namespaces**
為metrics的container,meteics在不同的namespaces彼此獨立,避免不同的應用程式的metrics彙總到同一個統計資料中。
- **Metrics**
選定要監控的資源、服務進行定義的一個變數,像是ECS中的CPU使用率就是一個metric。
---
- **Dimensions**
為每個metric賦予類別,而dimentions最多可以指定10個,當cloudWatch傳回資料後,便可利用dimensions對結果進行篩選。
- **Statistics**
指定一段期間內的metrics資料彙總後的結果。
- **Percentiles**
為更了解metrics資料的分布,可使用percentiles幫助資料進行統計。
- **Alarms**
利用alarm監控指定時間內的單一metric,並根據metric值的變化執行指定的操作。
---
**CloudWatch架構圖:**

---
## Auto Scaling 服務
---
- Auto Scaling 是用來處理 Web application 水平擴充性(scale out)問題,會依據當下請求的忙碌程度來增減所需的 instance數目。該功能需要搭配 ELB 或是 CloudWatch 一起使用。
---
**Auto Scaling Lifecycle**
