---
# System prepended metadata

title: AWS

---

# AWS
[toc]
## EC2
### EC2 種類
- 一般用途
- 運算最佳化
	- 批次處理工作負載
- 記憶體最佳化
	- 高效能資料庫
- 加速運算
- 儲存最佳化
### EC2 定價
- 隨需 (On Demand)
	- 臨時需求
	- 用多少付多少
	- 效能穩定
- Spot 執行個體
	- 不需要最低合約期
	- **能夠承受中斷**
	- 依競標高價者取得使用權
- 預留執行個體
	- 1 年或 3 年
	- **不需要**每小時支出承諾
- Savings Plans
	- 1 年或 3 年
	- **每小時支出承諾**
## Auto Scaling
- 自動擴展機台
## Elastic Load Balancing (ELB)
- 負載平衡
- 不接受跨區域
## 應用程式
### 單體式應用程式
- 緊耦合應用程式
- ![image](https://hackmd.io/_uploads/SJw1FXSfC.png)
- 包括資料庫、伺服器、商業邏輯等
- 一個元件故障，其他元件也會故障
### 微型服務
- 鬆耦合
- ![image](https://hackmd.io/_uploads/B16ztQrzA.png)
- 單一元件失敗，其他元件仍然可以動

### Amazon Simple "Notification" Service (Amazon SNS)
- 發布/訂閱服務
- 發布者可將訊息傳給訂閱者
	- 訂閱者
		- WebServer
		- 電子郵件地址
		- **AWS Lambda**
- 情境舉例
	- ![image](https://hackmd.io/_uploads/S1DzqXSGC.png)

### Amazon Simple "Queue" Service (Amazon SQS)
- 訊息佇列(排隊)服務
- 工作便利貼
	- 將待辦事項寫入便利貼，當忙完再去看便利貼的內容
- 使用情境
	- 將訊息**暫時**存放在 Queue
	- 長時間中斷
	- 伺服器故障
	- 相關系統出現問題
- 當傳入大檔案的時候，如果沒有 SQS 使用者就會等很久，這時候有 SQS ，就可以先把大檔案丟進去 SQS，轉檔完成再透過 SNS 通知使用者
- 應用程式會將訊息傳送到佇列中。使用者或服務會從佇列擷取訊息、處理訊息，然後從佇列中刪除訊息
- 情境舉例
	- ![image](https://hackmd.io/_uploads/r1p5i7rzC.png)
## AWS Lambda
- ![image](https://hackmd.io/_uploads/rJkTR7BM0.png)
- 執行時間小於 15 min 的程式
- 託管短期執行函數
- 程式碼如有執行，費用才會產生
### 運作方式
![image](https://hackmd.io/_uploads/ry6byESf0.png)

## 容器協調流程服務
- 部署、管理及擴展容器化應用程式
### Amazon Elastic Container Service (Amazon ECS)
- 可在 AWS 上執行及擴展容器化應用程式
- 可以使用 API 呼叫來啟動和停止啟用 Docker 的應用程式。
### Amazon Elastic Kubernetes Service (Amazon EKS)

### AWS Fargate
- Container 專用的**無伺服器**運算引擎
- ECS 和 EKS 都適用

## VPC (Virtual Private Cloud) (虛擬私有雲端)
![image](https://hackmd.io/_uploads/HJX3r2470.png)

- 一個保護底下資源不被隨意被侵入
	- ![image](https://hackmd.io/_uploads/rytdhs1mC.png)

- VPC 底下的資源，是透過子網路
	- ![image](https://hackmd.io/_uploads/Syv72oyQC.png)
- 情境 
	- ![image](https://hackmd.io/_uploads/ByUnCsJ7R.png)
- AWS
	- ![image](https://hackmd.io/_uploads/ryMp9jymC.png)
### VPC 四大類服務對接方式
#### NAT Gateway
- Private subnet **連外網**
- 將 private 的流量轉發至 public ，再透過 Internet Gateway 轉發至外部網路
	- 讓 private 內的機器**可對外連線**，且**不被外部網路所認得**
- ![image](https://hackmd.io/_uploads/B1kFdsEmA.png)
#### VPC Endpoint
- 可以**直接存取(以內網的方式存取)不在 VPC 內的 AWS 服務(S3)**，沒有的話就要繞一大圈，走外網才能存取到
	- ![image](https://hackmd.io/_uploads/SJ9gjjE7C.png)

#### Peering Connection
- 使兩個 VPC 可以透過內網溝通
#### VPN Connection
- 使本地透過 VPN Connection 連線
	- 私有 IP 且加密的方式
	- 正常來講要透過外網存取，而且是外網的 IP
#### VPC Flow Logs
- 監控 VPC 的 log
#### VPC Sharing
- 共享 VPC
### 網路存取權限控制清單 (ACL)
- 海關
- 預設會允**許所有**傳入和傳出流量
- **無狀態**
	- ![image](https://hackmd.io/_uploads/Hke1soJmR.png)
- 管**子網路**的進出
	- ![image](https://hackmd.io/_uploads/HkTRniym0.png)

### 安全群組 (Security group)
- 大樓管理員
- 預設會**拒絕所有**傳入流量
- **有狀態**
	- ![image](https://hackmd.io/_uploads/SJvkookmA.png)
- 管 **EC2** 的進出
	- ![image](https://hackmd.io/_uploads/SJgj3okmA.png)

## Route53
- DNS
## Elastic Block Store (EBS)
- 實體硬碟
	- 將磁碟機與 EC2 執行個體的主機電腦分開
	- 從 EC2 獨立拉出來，這樣 EC2 被迫中止資料也不會消失
		- 本來
			- ![image](https://hackmd.io/_uploads/Bk6s_zgm0.png)
		- 使用 EBS
			- ![image](https://hackmd.io/_uploads/SJO6dGxQA.png)
- 可以備份
	- 快照
- 執行複雜的讀取、寫入或變更

## AWS Elastic Beanstalk
- <font color="red">快速部屬</font>和擴展應用程式
- Node.js、Docker

## AWS Outposts
- 以**混合雲端**方式執行基礎設施的服務
## Simple Storage Service (S3)
- 物件儲存
	- 當要**更新檔案時，會需要重新上傳**
	- EBS 則是將檔案分成 block ，等於是不需要重新上傳
		- 所以當我有一個大型檔案，適合用 EBS
			- 編輯影片的某個場景時
				- 如果是用 s3 等於是要重新上傳整個檔案
### S3 Standaed
- 經常存取
- 如果有人存取了不常存取層中的物件，會自動將其移至 "**頻繁存取層**"
- 至少將資料存放在三個可用區域
### S3 Standard-IA  (S3 Standard-Infrequent Access)
- 如果 30 天未被讀取會被移至 "**不常存取層**"
- **適合不常存取**但在需要時具備**高可用性**的資料
- 將資料至少存放在三個可用區域
- Amazon S3 Standard-IA 能提供與 Amazon S3 Standard 相同的可用性等級，但儲存價格較低，擷取價格也較高。
### S3 單區域- 不常存取(S3 單區域 - IA)
- 將資料存放在單一可用區域中

### S3 Intelligent-Tiering
- 非常適合存取模式未知或持續變更的資料
- 每個物件都需要小額每月監控和自動化費用
- <font color="red">**監控物件的存取模式**</font>，如不常存取會自動將物件移動至不常存取層
### S3 Glacier Instant Retrieval
- 適用於需要立即存取的<font color="red">**封存**</font>資料
- 以在幾毫秒內擷取物件
### S3 Glacier Flexible Retrieval
- 專為資料封存所設計的低成本儲存
- 能夠在幾分鐘到幾小時內擷取物件
### S3 Glacier Deep Archive
- 非常適合封存、**成本最低**的物件儲存類別
- 適用於一年中可能存取一次或兩次的資料
- 能夠在 12 小時內擷取物件

### S3 Outposts
- 將資料以持久及備援方式儲存在 Outposts 上的多個裝置和伺服器上
- 必須將資料存放在內部部署應用程式
## Relational Database Service (RDS)
- SQL
### Amazon Aurora
- 企業級關係資料庫
## Amazon DynamoDB
- NO SQL
- 無伺服器
- 自動擴展
- **KEY VALUE**
	- 「姓名：無名氏」
## Amazon Redshift
- **大數據**分析的資料倉儲服務
## Database Migration Service
- 遷移資料庫

## AWS Organizations
- 集中合併和管理多個 AWS 帳戶
- 設定**服務控制政策 (SCP)** 來設定帳戶的許可
- **合併帳單**
	- **共用折扣**
## AWS Artifact
- 隨需存取 AWS 合規**報告**
- 檢閱、接受和管理您與 AWS 的協議
## AWS GuardDuty
- **威脅偵測**服務
## AWS Inspector
- **檢查**應用程式安全漏洞
## AWS Shield
- 保護應用程式免於遭受 DDoS 攻擊
## Amazon CloudWatch
- 監控和管理各種指標，並根據這些指標的資料設定<font color='red'>**警示**</font>動作。
- **可以搭配 SNS**

## AWS CloudTrail
- 記錄所有的操作
	- 呼叫的時間、IP 等
	- 如 利用 IAM 「CreateUser」API 動作的事件
- 紀錄<font color='red'> **帳戶活動** & **API 要求** </font>
- <font color='red'>**篩選日誌**</font>以協助操作分析和疑難排解

## AWS Trusted Advisor
- 自動化顧問
- 根據 AWS 最佳實務<font color='red'>**提供即時建議**</font>
	- 五個類別
		- 成本最佳化
		- 效能
		- 安全性
		- 容錯能力
		- 服務配額






## Cost Explorer
- 視覺化

## AWS Marketplace
- 尋找、測試和購買能在 AWS 上執行的軟體

## Amazon SageMaker
- 快速建立機器學習模型

## Amazon Lex
- 建立 ChatBot

## Amazon Textract
- 從文件中擷取文字和資料

## AWS DeepRacer
- 強化學習

## AWS Ground Station
- 支付實際使用的衛星時間


## AWS Snow
- 以實體的方式將資料遷出

## AWS Budgets
- **超過預算**會寄 gmail 提醒

## AWS CloudFormation
- 使用<font color='red'>**模板**</font>來配置 AWS 基礎設施
	- EC2、S3

## AWS TCO (Total Cost of Ownership)
- 預測將資源從內部部屬遷移至雲端的成本

## AWS 定價
### 按實際用量付費
- 無需簽訂長期合約或複雜的授權
### 預留容量，付費較少
### 以量計價
- 使用的 Amazon S3 儲存空間越多，每 GB 支付的費用就越少
## 應用程式遷移的「六項」策略
### 1. 重新託管
- 將程式從地端直接遷到雲端
### 2. 重組平台
- 精進搬遷，**不需要改變**應用程式的核心架構
### 3. 重新架構
- 整個重新設計
### 4. 重新購買
- 轉移至不同的產品
### 5. 保留
- 保留包括在來源環境中保留對業務至關重要的應用程式。這可能包括需要進行重大重構才能遷移的應用程式，或者可延遲到稍後的工作
### 6. 淘汰	
- 移除不需要的東西

## AWS 雲端採用架構 (AWS CAF)

AWS 雲端採用架構是幫助企業有效地利用雲端技術的一套指南和最佳實踐。它涵蓋六個主要觀點，每個觀點都從不同角度幫助企業順利遷移到雲端。

### 業務 (Business)
- **目標：** 確保雲端技術能夠幫助企業達成業務目標。
- **例子：** 一家零售公司希望加速新產品上市。他們使用雲端來快速建立和測試新產品網站，從而比競爭對手更快地推出市場。

### 人員 (People)
- **目標：** 確保員工擁有必要的技能和支持，以適應雲端技術的變化。
- **例子：** 一家傳統IT公司決定遷移到雲端。他們安排所有IT人員參加AWS培訓課程，並重新分配角色，讓大家都熟悉新的工作方式。

### 管控 (Governance)
- **目標：** 確保雲端使用符合公司內部規範和外部法規。
- **例子：** 一家金融公司使用雲端儲存客戶資料。他們制定了嚴格的數據訪問和存儲政策，以符合法律規定和保護客戶隱私。

### 平台 (Platform)
- **目標：** 設計和運行支持業務需求的技術基礎設施。
- **例子：** 一家遊戲公司需要一個能隨時擴展的伺服器環境來應對玩家高峰。他們使用AWS的自動擴展功能來確保遊戲在玩家激增時依然流暢運行。

### 安全 (Security)
- **目標：** 保護數據和應用免受威脅。
- **例子：** 一家醫療公司使用雲端儲存病患資料。他們實施了嚴格的身份驗證和加密措施，確保資料只有授權人員可以訪問。

### 營運 (Operations)
- **目標：** 確保雲端服務穩定運行並不斷優化。
- **例子：** 一家電商公司監控他們的雲端伺服器，確保網站24/7可用。如果出現問題，他們可以迅速響應和解決，確保客戶購物體驗不受影響。


## Well-Architected
### 卓越營運
### 安全性
### 可靠性
### 效能達成效率
### 成本最佳化
### 永續發展


