最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

SAA-C03-002_EC2_04_AWS Fundamentals

2023-07-02 21:01 作者:Isaac_LeeKain  | 我要投稿

## Scalability & High Availability


- 可擴(kuò)展性意味著應(yīng)用程序或系統(tǒng)可以通過 adapting(適應(yīng))來處理更大的負(fù)載

- 有兩種可擴(kuò)展性:

- **Vertical Scalability**(垂直可擴(kuò)展性):

- 增加實(shí)例大小

- t2.micro → t2.large

- 常見于非分布式系統(tǒng)(數(shù)據(jù)庫)

- RDS,ElasticCache可以水平擴(kuò)展

- 垂直擴(kuò)展有上限(硬件限制)

- **Horizontal Scalability**(水平可擴(kuò)展性)

- 增加實(shí)例數(shù)量

- 常見于分布式系統(tǒng)

- 在web應(yīng)用/當(dāng)前應(yīng)用程序中很常見

- 由于云服務(wù)的存在,很容易進(jìn)行水平擴(kuò)展

- **High Availability**(高可用性)

- 通常與水平擴(kuò)展同時(shí)使用

- 高可用性意味著至少在兩個(gè) AZ 中運(yùn)行程序/系統(tǒng)

- 高可用性的目的是在數(shù)據(jù)丟失時(shí)可以幸存

- 高可用性可能是被動(dòng)的(RDS Multi AZ)

- 也可以是活躍的(用于水平擴(kuò)展)


* * *


## Scalability & High Availability for EC2


- 垂直縮放:增加實(shí)例大?。╯cale up/down)

- 最小從 t2.nano(0.5GB RAM,1 vCPU) 到最大 u-12tb1.metal(12.3TB RAM,448 vCPU)

- 水平縮放:增加實(shí)例數(shù)量(scale out/in)

- Auto Scaling Group(自動(dòng)縮放組)

- Load Balancer(負(fù)載均衡器)

- 高可用性:跨 AZ 運(yùn)行同一程序的多個(gè)實(shí)例

- Auto Scaling Group multi AZ

- Load Balancer multi AZ


* * *

* * *


## Load Balancer


- 負(fù)載平衡將流量轉(zhuǎn)發(fā)到下游的多個(gè)服務(wù)器(例:EC2 Instance)

<br>


user1 ↘ ------------------------------- ↗ EC2 Instance

user2 → Elastic Load Balancer → EC2 Instance

user3 ↗ ------------------------------- ↘ EC2 Instance


<br>


* * *


## Why use a load balancer


- 將負(fù)載分散在多個(gè)下游實(shí)例

- 將單點(diǎn)訪問點(diǎn)(DNS)暴露給應(yīng)用程序

- 定期對(duì)實(shí)例進(jìn)行**運(yùn)行狀況檢查**

- 為網(wǎng)站提供 SSL 終止(HTTPS)

- 用 cookies 強(qiáng)制粘性

- 跨區(qū)域高可用性

- 將公共流量與私有流量分開


* * *


## Why use an Elastic Load Balancer


- 彈性負(fù)載均衡器是一種托管負(fù)載均衡器(managed load balance)

- AWS 保證它正常工作

- AWS 負(fù)責(zé)升級(jí),維護(hù)和高可用性

- AWS 僅提供幾個(gè)配置旋鈕(knobs)

- 設(shè)置自己的負(fù)載均衡器得到成本更低,但是會(huì)花費(fèi)更多時(shí)間和努力

- 與多個(gè) AWS 產(chǎn)品/服務(wù)繼承

- EC2,EC2 自動(dòng)縮放組,Amazon ECS

- AWS Certificate Manager(ACM = AWS 證書管理器),CloudWatch

- Route 53,AWS WAF,AWS Global Accelerator


* * *


## Health Check


- 運(yùn)行 Health Check(**運(yùn)行狀況檢查**)對(duì)負(fù)載均衡器至關(guān)重要

- **運(yùn)行狀況檢查**使負(fù)載均衡器能夠知道他轉(zhuǎn)發(fā)的流量的實(shí)例是否可以回復(fù)請(qǐng)求

- 在端口和路線上進(jìn)行**運(yùn)行狀況檢查**(/health is common 健康狀況常見)

- 如果響應(yīng)不是 200(OK),則實(shí)例不健康

<br>

ELB → Health Check [Protocol:HTTP, Port:4567, Endpoint:/health]→ EC2 Instance


* * *


## Type of load balancer on AWS


- AWS 有 4種 托管負(fù)載均衡器

- Classic Load Balancer(經(jīng)典負(fù)載均衡器)(v1 - old generation) - 2009 - CLB

- HTTP, HTTPS, TCP, SSL(secure TCP)

- Application Load Balancer(應(yīng)用負(fù)載均衡器)(v2 - new generation) - 2016 - ALB

- HTTP, HTTPS, WebSocket

- Network Load Balancer(網(wǎng)絡(luò)負(fù)載均衡器)(v2 - new generation) - 2017 - NLB

- TCP, TLS(secure TCP), UDP

- Gateway Load Balancer(網(wǎng)關(guān)負(fù)載均衡器) - 2020 - GWLB

- Operates at layer 3(Network layer) - IP Protocol

- 建議使用新一代負(fù)載均衡器,有更多功能,CLB已被取消

- 一些負(fù)載均衡器可以設(shè)置為 internal(private)或 external(public)ELBs


* * *


## Load Balancer Security Groups


Users [HTTP/HTTPS from anywhere]→ Load Balancer[HTTP Restricted to load balancer] → EC2


Load Balancer Security Groups:

|Type|Protocol|Port Range|Source|Description|

|---|---|---|---|---|

|HTTP|TCP|80|0.0.0.0/0|Allow HTTP from anyhwere|

|HTTPS|TCP|443|0.0.0.0/0|Allow HTTPS from anywhere|

<br>


Application Security Group: Allow traffic only from Load Balancer

|Type|Protocol|Port Range|Source|Description|

|---|---|---|---|---|

|HTTP|TCP|80|sg-054vdr405dsfd(load-balancer)|Allow HTTP from anywhere|

<br>


* * *


## Classic Load Balancers(v1)

- 支持 TCP(Layer 4), HTTP & HTTPS(Layer 7)

- Health checks(**運(yùn)行狀況檢查**)基于 TCP 或 HTTP

- Fixed hostname(固定主機(jī)名):XXX.region.elb.amazonaws.com

<br>

Client [Listener] → CLB [internal] → EC2

<br>


* * *


## Application Load Balancer(V2)


- 應(yīng)用程序負(fù)載均衡器作用于第七層(HTTP)

- 跨機(jī)器(目標(biāo)組)對(duì)多個(gè)HTTP應(yīng)用程序進(jìn)行負(fù)載均衡

- 對(duì)同一機(jī)器上的多個(gè)應(yīng)用程序進(jìn)行負(fù)載平衡(例:容器 Containers)

- 支持 HTTP/2 和 WebSocket

- 支持重定向(例:從HTTP到HTTPS)

- 將列表路由到(Routing tables)不同目標(biāo)組:

- 基于URL路徑(expmple.com/users & example.com/posts)

- 基于URL主機(jī)名(one.example.com & other.example.com)

- 基于查詢字符串,Headers(標(biāo)頭)(example.com/users?id=123&order=false)

- ALB 適合微服務(wù)和基于容器的應(yīng)用(例:Docker 和 Amazon ECS)

- 具有端口映射功能,可以重定向到ECS中的動(dòng)態(tài)端口

- 相比之下,每個(gè)應(yīng)用程序需要多個(gè)經(jīng)典負(fù)載均衡器

* * *


## Application Load Balancer(v2)HTTP Based Traffic

<br>

www [Router/user] → External Application Load Balancer [HTTP] → Target Group for User application?

www [Route/search] → External Application Load Balancer [HTTP] → Target Group for Search application

<br>


* * *


## Application Load Balancer(v2) Target Groups


- EC2 實(shí)例(可由自動(dòng)縮放組管理) - HTTP

- ECS 任務(wù)(由 ECS 本身管理) - HTTP

- Lambda 函數(shù) - HTTP 請(qǐng)求轉(zhuǎn)換為 JSON 時(shí)間

- IP 地址 - 必須是 private IP

- ALB 可以路由到多個(gè)目標(biāo)組

- **運(yùn)行狀況檢查**在目標(biāo)組級(jí)別


* * *


## Application Load Balancer(v2)Query String/Parameters Routing


<br>

www ← [Request] → External Application Load Balancer(v2) ← [?Platform=Mobile] →Target Group1 :AWS - EC2 based

-------------------------------------------------------------------------------- ↖ [?Platform=Desktop] →Target Group2 :On-premises - Private IP routing

<br>


* * *


## Application Load Balancer(v2)Good to Know


- Fixed hostname(XXX.region.elb.elb.amazonaws.com)

- 應(yīng)用程序無法直接看到客戶端的 IP 地址

- 客戶端的真實(shí) IP 被插入到標(biāo)題 **X-Forwarded-For**

- 還可以得到端口(X-Forwarded-Port)和 Proto(X-Forwarded-Proto)

<br>

Client IP 12.34.56.78 ←→ Connection termination ← Load Balancer IP(Private IP) → EC2 Instance

<br>


* * *

* * *


## Network Load Balancer(v2)


- 網(wǎng)絡(luò)負(fù)載均衡器(第四層)允許:

- 轉(zhuǎn)發(fā) TCP & UDP 流量到實(shí)例

- 每秒處理百萬個(gè)請(qǐng)求

- 更少的延遲 ~100ms(ALB為400ms)

- NLB 在每個(gè) AZ 都有一個(gè)靜態(tài) IP,且支持分配彈性 IP(有助于將特定 IP 列入白名單)

- NLB用于極端性能,TCP 或 UDP 的流量

- 未包含在 AWS 的免費(fèi)層


* * *


## Network Load Balancer(v2) TCP(Layer 4) Based Traffic

<br>

WWW ←[TCP+Rules]→External Network Load Balancer(v2)← [TCP] → Target Group for Users application

WWW ←[TCP+Rules]→--------------------------------------------------- ← [HTTP] → Target Group for search application

<br>


* * *


## Network Load Balancer - Target Groups


- EC2 實(shí)例

- IP 地址 - 必須是私有 IPs

- ALB

- 運(yùn)行狀況檢查(支持 TCP,HTTP 和 HTTPS 協(xié)議)

<br>

- NLB 連接目標(biāo)組:

- EC2 ← NLB → EC2(Target Group:EC2 Instances)

- EC2 ← NLB → 10.0.4.1(Target Group:IP Addresses)

- NLB → ALB(Target Group:Application Load Balancer)

<br>


* * *

* * *


## Gateway Load Balancer


- 在 AWS 中部署,擴(kuò)展和管理第三方網(wǎng)絡(luò)虛擬設(shè)備

- Example:

- Firewalls(防火墻)

- Instrusion Detection(入侵檢測(cè)和預(yù)防系統(tǒng))

- Deep Packet Inspection Systems(深層數(shù)據(jù)包檢查系統(tǒng))

- Payload manipulation(有效載荷操作)

- 在 Layer 3(網(wǎng)絡(luò)層) - 運(yùn)行 IP 數(shù)據(jù)包

- 結(jié)合以下功能:

- Transparent Network Gateway(透明網(wǎng)關(guān)) - 所有流量的單次進(jìn)出

- Load Balancer(負(fù)載均衡器) - 將流量分配到虛擬設(shè)備

- 在端口 6081 上使用 **GENEVE** 協(xié)議


<br>

Users(source) → Route Table → GWLB →Target Group - 3rd Party Security Virtual Appliances → GWLB → Application(destination)

<br>


* * *


## Gateway Load Balancer - Target Groups


- EC2 實(shí)例

- IP 地址 - 必須是私有 IPs


<br>

- GWLB 連接目標(biāo)組:

- EC2 ← GWLB → EC2(Target Group:EC2 Instances)

- EC2 ← GWLB → 10.0.4.21(Target Group:IP Addresses)

<br>


* * *

* * *


## Sticky Sessions(粘性會(huì)話)(Session Affinity)


- 可以實(shí)現(xiàn)粘性,以便同一客戶端始終重定向到負(fù)載均衡器后面的同一實(shí)例

- 適用于 CLB 和 ALB

- 用于粘性的 Cookie 有可控的過期時(shí)間

- 用例:確保用戶不會(huì)丟失會(huì)話數(shù)據(jù)

- 啟用粘性可能會(huì)給后端 EC2 實(shí)例得到負(fù)載帶來不均衡


* * *


## Sticky Sessions - Cookie Names


- Application-based Cookies(基于應(yīng)用程序的 cookies)

- 自定義 cookie

- 由 target 生成

- 包含應(yīng)用程序所需的任何自定義屬性

- 必須為每個(gè)目標(biāo)組單獨(dú)指定 Cookie 名稱

- 不要使用 AWSALB, AWSALBAPP 或 AWSALBTG(保留給ELB使用)

- 應(yīng)用程序 cookie

- 由負(fù)載均衡器生成

- Cookie 的名稱為 AWSALBAPP

- Duration-based Cookies(基于持續(xù)時(shí)間的 cookies)

- 由負(fù)載均衡器生成

- Cookie 名稱:

- ALB:AWSALB

- CLB:AWSCLB


* * *

* * *


## Cross-Zone Load Balancing


- **有**跨區(qū)域負(fù)載平衡:每個(gè)負(fù)載均衡器勢(shì)力在所有 AZ 的所有實(shí)例中**均勻分布**

- AZ1:10+10

- AZ2:10+10+10+10+10+10+10+10

- **沒有**跨區(qū)域負(fù)載平衡:先按 AZ 均分后,再進(jìn)行均勻分布

- AZ1:25+25

- AZ2:6.25+6.25+6.25+6.25+6.25+6.25+6.25+6.25

- ALB

- 默認(rèn)啟用(可以在 TargetGroup 級(jí)別禁用)

- AZ 間數(shù)據(jù)不收費(fèi)

- NLB & GWLB

- 默認(rèn)不啟用

- AZ 間數(shù)據(jù)收費(fèi)

- CLB

- 默認(rèn)不啟用

- 啟用則 AZ 間數(shù)據(jù)不收費(fèi)


* * *

* * *


## SSL/TLS - Basics


- SSL 證書允許在傳輸過程中對(duì)客戶端和負(fù)載均衡器之間的流量進(jìn)行加密(in- flight encryption)

- SSL 是指 Secure Sockets Layer,用于加密連接

- TLS 是指 Transport Layer Security,這是較新的版本

- 現(xiàn)階段常用 TLS 但是同樣被稱為SSL

- Public SSL 證書由 Certificate Authorities(CA)頒發(fā)

- Comodo, Symantec, GoDaddy, GlobalSign, Digicert, Letsencrypt, ...

- SSL 證書由到期時(shí)間(可以設(shè)置),必須被續(xù)訂更新


* * *


## Load Balancer - SSL Certificates

<br>

users ← HTTPS(encrypted) → Load Balancer ← HTTP Over private VPC → EC2 Instance

<br>

- 負(fù)載均衡器使用 X.509證書(SSL/TLS 服務(wù)器證書)

- 可以使用 ACM(AWS Certificate Manager)管理證書

- 可以創(chuàng)建上傳自己的證書

- HTTPS listener:

- 必須指定默認(rèn)證書

- 可以添加可選的證書列表來支持多個(gè)域(multiple domains)

- 客戶端可以使用 SNI(Server Name Indication)來指定他們到達(dá)的主機(jī)名

- 能夠制定安全策略來支持舊版本的 SSL/TLS(legacy clients)


* * *


##? SSL - Server Name Indication(SNI)


- SNI解決了將多個(gè)SSL證書加載到一臺(tái)Web服務(wù)器的問題(為多個(gè)網(wǎng)站提供服務(wù))

- 這是一個(gè)更新協(xié)議,要求客戶端在初始SSL握手時(shí)指示目標(biāo)服務(wù)器的 hostname(主機(jī)名)

- 服務(wù)器將找到正確的證書,或返回默認(rèn)證書

- Note:

- 僅適用于 ALB 和 NLB(新一代),Cloudfront

- 不適用于 CLB(舊一代)


<br>

Client → ALB → Use the correct SSL cert1(Domain1.example.comm) → ALB → Target group for Domain1.example.com

------------------ ↘ Use the correct SSL cert2(www.mycorp.com) ----------↗ ----- ↘ Target group for www.mycorp.com

<br>


* * *


## ELB - SSL Certificaties


- CLB(v1)

- 僅支持一個(gè) SSL 證書

- 必須為具有多個(gè) SSL 證書的多個(gè) Hostname 使用多個(gè) CLB

- ALB(v2)

- 支持具有多個(gè) SSL 證書的多個(gè) Listeners(監(jiān)聽器)

- 使用服務(wù)器名稱指示(SNI)

- NLB(v2)

- 支持具有多個(gè) SSL 證書的多個(gè) Listeners(監(jiān)聽器)

- 使用服務(wù)器名稱指示(SNI)


* * *


## Connection Draining(連接耗盡)


- 功能名稱:

- 連接耗盡 - 適用于 CLB

- 注銷延遲 - 適用于 ALB & NLB

- 在實(shí)例注銷或不健康的情況下給予完成 in-flighr requests(機(jī)上請(qǐng)求)的時(shí)間

- 停止向正在注銷的 EC2 實(shí)例發(fā)送新請(qǐng)求

- 1 - 3600秒注銷延遲時(shí)間(默認(rèn) 300秒)

- 可以禁用(設(shè)置值為 0秒)

- 如果請(qǐng)求很短,應(yīng)設(shè)置更小的值


* * *

* * *


## Auto Scaling Group


?- 在現(xiàn)實(shí)生活中,網(wǎng)站和應(yīng)用程序上的負(fù)載可能會(huì)發(fā)生變化

?- 在云端,可以非??焖俚膭?chuàng)建刪除服務(wù)器

?- ASG(自動(dòng)縮放組)的目標(biāo)是:

- 擴(kuò)展(添加 EC2 實(shí)例)以匹配增加的負(fù)載

- 縮放(刪除 EC2 實(shí)例)以匹配減少的負(fù)載

- 確保我們有 minimum 和 maximum 的 EC2 實(shí)例正在運(yùn)行

- 自動(dòng)將新實(shí)例注冊(cè)到負(fù)載均衡器

- 重新創(chuàng)建 EC2 實(shí)例,以防之前的實(shí)例被終止(例:不健康實(shí)例)

- ASG 是免費(fèi)的(只需為基礎(chǔ) EC2 實(shí)例付費(fèi))


## Example


<br>


|Minimum Capacity|Desired Capacity|Maximum Capacity|

|---|---|---|

|EC2 EC2|EC2 EC2|EC2 EC2 EC2 EC2|

|不少于2個(gè)|需要4個(gè)|最多可擴(kuò)展到8個(gè)|


<br>


* * *


## Auto Scaling Group in AWS with Load Balancer


<br>


Users → ELB (可以檢查 EC2 的 Health Situation)→ ASG(N個(gè) EC2)


<br>


* * *


## ASG Attributes(ASG 設(shè)定值)


- 啟動(dòng)模板(不建議使用舊的啟動(dòng)配置)

- AMI + Instance Type

- EC2 用戶數(shù)據(jù)

- EBS卷

- Security Group

- SSH Key Pair

- EC2 實(shí)例的 IAM Roles

- Network + Subnet Information

- 負(fù)載均衡器信息

- Min Size / Max Size / Initil Capacity(初始容量)

- 縮放策略


* * *


## Auto Sacling - CloudWatch Alarms & Scaling(CloudWatch 警報(bào)與縮放)


- 可以根據(jù) CloudWatch 警報(bào)擴(kuò)展 ASG

- 警報(bào)監(jiān)控指標(biāo)(平均 CPU 或自定義指標(biāo))

- 為整體 ASG 實(shí)例計(jì)算平均 CPU 的那個(gè)指標(biāo)

- 根據(jù)警報(bào):

- 可以創(chuàng)建擴(kuò)展策略(增加實(shí)例數(shù)量)

- 可以創(chuàng)建縮放策略(減少實(shí)例數(shù)量)


* * *


## ASG - Dynamic Scaling Policies(動(dòng)態(tài)縮放策略)


- **Target Tracking Scaling**(目標(biāo)跟蹤縮放)

- 最簡(jiǎn)單,易于設(shè)置

- 例:保持平均 ASG CPU 在 40% 左右

- **Simple / Step Scaling**(簡(jiǎn)單 / 步進(jìn)縮放)

- 當(dāng)觸發(fā) CloudWatch 警報(bào)時(shí)(例:CPU>70%),添加兩個(gè) units

- 當(dāng)觸發(fā) CloudWatch 警報(bào)時(shí)(例:CPU<30%),移除一個(gè) unit

- **Scheduled Actions**(計(jì)劃操作)

- 根據(jù)已知的使用模式預(yù)測(cè)縮放情況

- 例:在周五下午5點(diǎn)將最小容量增加到10個(gè)


* * *


## ASG - Predictive Scaling(預(yù)測(cè)縮放)


- 預(yù)測(cè)縮放:持續(xù)預(yù)測(cè)負(fù)載并提前計(jì)劃縮放


* * *


## Good metrics to scale on(可以擴(kuò)展的良好指標(biāo))


- CPUUtilization(CPU 利用率):所有實(shí)例的平均 CPU 利用率

- RequestCountPerTarget(每個(gè)目標(biāo)請(qǐng)求計(jì)數(shù)):確保每個(gè) EC2 實(shí)例的請(qǐng)求數(shù)量穩(wěn)定

- Average Network In / Out(平均網(wǎng)絡(luò)進(jìn)出)(如果應(yīng)用程序是綁定網(wǎng)絡(luò)的)

- Any custom metric(任何自定義指標(biāo))(使用 CloudWatch 推送)


* * *

## ASG - Scaling Cooldowns(冷卻期)


- 縮放活動(dòng)發(fā)生后,處于 cooldown period(冷卻期,默認(rèn) 300秒)

- 在冷卻期間,ASG 不會(huì)啟動(dòng)或終止其他實(shí)例(以允許指標(biāo)穩(wěn)定)

- 建議:使用現(xiàn)成的 AMI 來減少配置時(shí)間,以便更快地提供請(qǐng)求并減少冷卻時(shí)間


* * *

* * *

* * *


SAA-C03-002_EC2_04_AWS Fundamentals的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
罗甸县| 西林县| 航空| 凌海市| 密山市| 昂仁县| 九江市| 宜城市| 仲巴县| 余姚市| 光山县| 名山县| 裕民县| 宣威市| 武乡县| 清涧县| 西青区| 越西县| 曲水县| 贺兰县| 东兰县| 稻城县| 宣威市| 历史| 望城县| 商丘市| 上饶县| 上犹县| 台州市| 安庆市| 白城市| 南澳县| 梁山县| 宁波市| 廊坊市| 茌平县| 武平县| 阳泉市| 舒城县| 富川| 利辛县|