EC2
General
- Termination Protection is “Disabled” by default, need to turn on manually
- 在EBS-backed instance,預設行為是Instance terminated時,root EBS也會被刪掉,但可以透過設定讓他們的lifecycle獨立,讓EBS不會自動刪除
- EBS,root或addition,都可以被encrypted
- Elastic IP最多5個,超過要提交申請
- Elastic IP有一個功能叫做BYOIP (Bring Your Own IP),可以使用自有IP,但並非所有region都支援,大多用在不想更改客戶端的white list時使用
- BYOIP最多也是帶5個進AWS
- BYOIP可以適用的register prefix是:ARIN, RIPE, APNIC。不支援re-assign prefix
- 使用BYOIP的steps
- 透過RIR建立路由來源授權(Route Origin Authorization; ROA)
- 建立自簽的X509 certificate
- 建立已簽署的授權訊息給AWS做公告
Security Group
- 與EC2的關係是多對多,而且都沒有數量限制
- 是Stateful的,如果一個連線進得來,他就也能夠出得去
- 沒有辦法透過Security Group做IP Address blacklist,只能做Whitelist 要做到IP blacklist,要用Network Access Control List
EBS
EBS Types
Throughput Optimized HDD和EBS Magnetic已經退休了,應該不會出現在考試
- Snapshots備份到S3是Incrementally
- EBS可以在使用中時改變,type跟size都可以
- EBS always be in the same availability zone as the EC2 instance
- Snapshot可以encrypted,如果是從encrypted volume create/restore的snapshot,都會是encrypted
- Snapshot可以share,但只有unencrypted的可以share
EBS vs Instance Store
- Instance Store Volume也稱為Ephemeral Storage,也就是memory disk類的東西
- Instance Store Volume沒有辦法被Stop,要是host fail,所有資料會掉;EBS不會
- Reboot時,兩者都不會掉資料
Instance Types
一般用途
A: ARM CPU一般用途 T: Bustable,較便宜的一般用途 M: Fixed一般用途
CPU運算優化
C: CPU運算優化
記憶體強化
R: 記憶體優化 X: 高性能記憶體優化,適合in-memory DB High Memory: 記憶體增強型,可以用到24TB memory Z: 高性能CPU與記憶體
硬體加速運算
P: GPU強化 Inf: 特有的AWS Inferentia晶片,從基礎建設開始的ML instance G: GPU強化,Nvidia T4 Tensor GPU F: FPGA,可程式化閘道陣列(FPGA)加速
儲存優化
I: IOPS,用SSD提升IO效能 D: 高容量HDD,可以到48TB HDD H: HDD throughput,與記憶體使用取得平衡
Instance Pricing Modules
On Demand
Fixed rate by hour
Reserved
簽合約,一次買1~3年可以省成本
Spot
把AWS沒人用的資源便宜賣你,但有AWS有需求時會停掉你的機器
Dedicated Host
直接買整台機器,通常是用來處理server-bound software licenses
Placement Groups
- 不是所有Type的Instance都可以放在Placement Groups內
- 只有特定的Region支援,也只有特定的Type可以放
- Placement Groups無法被Merge
- 可以將既有的Instance放進Placement Group,但該Instance必須是Stop state 可以透過CLI或SDK辦到,但沒有辦法透過AWS Console移動Instance到群組內 Console目前只支援Instance啟動時的設定
- 要確保EC2 Instance之間的網路效率時,只放在同一個AZ是不足夠的:要在同一個Cluster Placement Group才是正確做法
Spread Placement Groups
分散放置群組: 需要Availability時 讓EC2 Instance啟動在完全獨立的硬體上 只有特定的Zone有支援,一個Zone只能放最多7台SPG Instance 可以跨AZ部署
有可能因為沒有可滿足的硬體而啟動失敗,需要稍後再試
分散置放群組有助於減少執行個體叢集或群組內發生的類似錯誤。Amazon EC2 先前有叢集置放群組,能為應用程式提供低延遲的網路效能,使用在許多 HPC 應用程式常見緊密搭配的節點對節點通訊上。現在有了分散置放群組,執行個體成員可置放在獨立的硬體上,減少硬體故障對應用程式造成的衝擊。 應用程式具有應該分開保存的少量重要執行個體,建議使用分散置放群組。透過分散置放群組來啟動執行個體,可降低同時故障的風險
Cluster Placement Group
叢集置放群組: 需要效能時 AWS建議將同質的(Homogenous)Instance放在同一個Cluster Placement Group 不能跨AZ部署
叢集置放群組是單一可用區域中的執行個體邏輯分組。置放群組可以跨越相同區域中互連的 VPC。除了 10 Gbps 流量限制外,叢集置放群組的主要優點是非封鎖、非超額訂閱、完全二等分本質的連線。換言之,置放群組內的所有節點皆可以全線速率 10 Gbps 流量和 100Gbps 個彙總與置放群組內的所有其他節點交談,且由於超額訂閱而不會減速。
Partition Placement Group
分區置放群組: 需要Availability時(比Cluster有較高的可靠性,但還沒Spread那麼好) 一個region最堆可以有7個partitions 啟動時有可能因為沒有可滿足的硬體而失敗,需要稍後再試 可以跨AZ部署
2018新的 Amazon EC2 置放策略,有助於降低大型分散式和複寫工作負載 (如 EC2 上執行的 HDFS、HBase 和 Cassandra) 發生相互關聯故障的可能性。分區置放群組會將 EC2 執行個體分散到不同的邏輯分區,並確保不同分區的執行個體不會共用相同的基礎硬體,因此能將硬體故障的影響控制在單一分區。此外,分區置放群組提供分區的可見性,並允許拓撲感知應用程式使用此資訊來做出明智的資料複寫決策,從而提高資料可用性和耐久性。