套用在雲端服務來看
VPC內設立一個Private subnet,並在裡面放置兩台EC2,因instances都在同一個網路空間,所以兩台EC2可以彼此溝通
兩個Private Subnet內的EC2要溝通的話,需要使用到Route Table
以圖示為例來理解Route Table兩大設定,當兩個Private Subnet中的EC2要溝通時,Route Table的目的地就是另一個Private Subnet中的EC2,但中間會先經過的Local為下一站。
Public Subnet的目的是連到外面的Internet
當Public Subnet中EC2要連到Internet的過程:
Private Subnet中的EC2連Internet時,需要透過一個建立在Public Subnet中的NAT gateway,透過它連到IGW再到Internet
(Private Subnet-EC2 ->Public Subnet-NAT gateway->Internet Gateway->Internet)
當Private Subnet中EC2要連到Internet的過程:
當外部有請求進來時,會先經過NACL、Security Group再到EC2
大致區分為Network與Compute兩大區塊。
ENI 臨時attach到一台EC2,意思為把虛擬網卡裝在虛擬機上
步驟:
點選上方Service,搜尋EC2
點選左方Instance-> Launch Instance
Step1:choose an Amazon Machine Image
點選『Amazon Linux2 AMI(HVM),SSD Volumn Type』(第一個)
Step2:Choose an Instance Type:用預設即可->Next
Step3:Configure Instance Details:
Network:選剛剛建立的VPC-001
Subnet:選擇Public Subnet
Auto-assign Public IP: Enable (會需要Public IP所以Enable)
->Next
Step4: Add Storage:用預設即可->Next
Step5:Add Tage:用預設即可->Next
Step6: Configure Security Group:
Add Route->All ICMP-IPv4(可以允許去ping這台主機) Source:Anywhere(允許任何地方都可ping這台)->Rwview ans Launch
Step7 Review Instance Launch:點選Launch
Select an existing key pair or create a new key pair:
創新的create a new key pair(key pair將用來連進去EC2)
name:vpc-ex2-002->download key pair(下載下來,需要用此pem file來驗證)-> Launch Instances
Launch Statis:按下View Instances
EC2起好後,更改EC2名稱為:public-ec2
現在EC2已經在public Subnet裡面了
下面description中:可看到的Subnet ID就是 Public Subnet
在instance的console頁面 點選上方的Connect 裡面有提示指令 跟著做
點擊左側Instance console-> Launch Instance
Step1:choose an Amazon Machine Image
點選『Amazon Linux2 AMI(HVM),SSD Volumn Type』(第一個)
Step2:Choose an Instance Type:用預設即可->Next
Step3:Configure Instance Details:
Network:選剛剛建立的VPC-001
Subnet:選擇Private-Subnet-01
Auto-assign Public IP: Disable (private subnet 所以選Disable)
->Next
Step4: Add Storage:用預設即可->Next
Step5:Add Tage:用預設即可->Next
Step6: Configure Security Group:
Add Route->
Type:All ICMP-IPv4(可以允許去ping這台主機) Source:Anywhere(允許任何地方都可ping這台)->Review and Launch
Step7 Review Instance Launch:點選Launch
Select an existing key pair or create a new key pair:
choose an existing key pair: 選擇剛建立的vpc-ec2-002 這個pem file
打勾:I acknowledge that I have to …
-> Launch Instances
Launch Statis:按下View Instances
EC2起好後,更改EC2名稱為:private-ec2-01
現在EC2已經在public Subnet裡面了
步驟:
確認使用者為private subnet 的ec2
成功從private subnet >NAT in public subnet > Internet
NACL是VPC內的服務
Security Group 是EC2內的服務
ping public subnet ec2
console 選instance->
public ec2->下方IPv4 public ip
連線成功
control c
如果NACL設定成功 等等ping 要被擋住
NACL是VPC內的服務
Security Group 是EC2內的服務
Outbound Rules預設讓所有人進去
Security Group 是Stateful 一旦曾經進來是允許的會記住,出去就不擋
Amazon Machine Image(AMI):類似模板概念,主要決定作業系統(operation system)、細部的設定之後談
Instance Metadata:透過AMI起EC2產生Instance層面的資料:Instance ID、Hostname
Instance Type:決定要用多少資源
其他細項之後講
Network網路:建立EC2時會配給它一個或多個虛擬網卡,EC2在網路架構中的角色是由ENI來決定,看ENI放到哪個SG,Subnet,NACL
Permission權限:IAM Role不能直接被EC2使用,需要透過Instance Profile,將IAM Role轉成EC2可以使用的形式,藉此規範EC2可以使用哪些權限、哪些AWS的服務
External Storage外部儲存空間:Elastic Block Storage(EBS)不會隨著EC2刪除而消失,可以儲放永久資料
Durability:資料可以承擔故障的能力
EBS 比起EC2 instance storage來說,I/O功能弱,所以AWS提供4種類型,依照需求使用
IOPS(I/O per second):每秒可處理的I/O請求次數
IO packet size:每次處理一個I/O請求時,packet size有多大
Throughput:每秒可處理的I/O資料總量
Throughput=IOPS x IO packet size
ex:io1的throughout
64000 X 16 X 1024=1048576000 bytes
轉成kb->1048576000/1024=102400kb
轉成mb->102400/1024=1000
1kb=1024 bytes
SSD針對次數高但量小的使用情境
HDD針對次數少但量大的使用情境
HDD下的sc1,st1重要的是throughput:目的是在每秒處理最大的資料總量,考慮花費cp高。在看throughput時優先看HDD
SDD下的io1跟gp2主要看IOPS針對每秒內處理最多的I/O請求次數,如果重IOPS又有預算,可以直上SSD
使用情境:
SSD:io1->資料庫:資料量小但請求次數多
SSD:gp2->開機硬碟:開機速度快/aws預設開機設定
HDD:st1->影音串流:請求頻率不高但每秒處理量大
HDD:sc1->資料封存:使用頻率低 保存花費低
HDD 便宜大流量
SSD 高貴快手速
SSD 重要的效能是IOPS
HDd 重要的效能是Throughput
EBS attach ec2時,兩者的交結點,才是最後EBS的整體效能表現
EBS Type+EC2的Type=final EBS performance
步驟:
operating system:
Architecture:
Root device type(開機硬碟)
這邊示範選第一個amzn-ami-hvm-2018.03.0.20200602-1_64-gp2
Step2:Choose an Instance Type:
上方過濾器選擇:General purpose
在AMI已經決定開機硬碟要用EBS
下方的Instance Storage(GB)代表要選擇-額外的硬碟只支援EBS還是要同時支持Instance Store,這邊著重EBS Only
EBS-optimized available:ebs的效能是由ebs type 跟ec2 type,如果ec2這邊選擇Yes,那跟ebs之間就有專屬網路,可發揮ebs volume最大效能
小結:
family:General purpose
type:t3a.nano(AWS統整後給的名稱 考照時要背orz)
vCPUs:2
Memory(GiB):0.5
Instance Storage(GB):EBS only
EBS-optimized available:Yes
Network Performance(虛擬網卡): Up to 5 Gigabit(可以承擔到5GB的流量)
IPv6 Support: Yes
-> Next:Configure Instance Details
Step3:Configure Instance Details:
Number of Instances(一次起幾個Instance):1
Network:選剛剛建立的ec2-semo-vpc
Subnet:選擇Public Subnet
Auto-assign Public IP: Enable (會需要Public IP所以Enable)
->Next
Step4: Add Storage:用預設即可->Next
這邊可以看到Root開機硬碟
volume type:預設是給general purpose 也可以往更高規格選,Magnetic是舊版,這邊用general purpose
Delete on Termination:這邊打勾,因為是root
把ec2刪除時,要不要保留這個ebs。
打勾代表跟著EC2一起刪除
不打勾代表獨立於EC2生命週期,EC2刪除 這個還是在,不受影響
點擊Add New Volume
**Volume Type: **EBS
Device:/dev/sdb (預設)
Snapshot::(預設)
Size(Gib)::32
數字越大IOPS越大,這邊的最大值是16384->IOPS:16000,數字再大IOPS會顯示Null。
Volume Type::General Purpose SSD(gp2)
IOPS::100/3000(100是基準點 3000是aws額外提供可以瞬間達到3000)
Throughput::N/A
Delete on Termination:不勾
-> Next:Add Tags
Step5:Add Tage:用預設即可->Next
Step6: Configure Security Group:
用預設即可
SSh->TCP->22->Custom->0.0.0.0/0
->Review and Launch
Step7 Review Instance Launch:點選Launch
Select an existing key pair or create a new key pair:
創新的create a new key pair(key pair將用來連進去EC2)
key pair name::my-ec2-keypair->download key pair(下載下來,需要用此pem file來驗證)-> Launch Instances
Launch Statis:按下View Instances
EC2起好後,更改EC2名稱為:ec2-ebs-demo
console左側點選Elastic Block Store的Volumes
兩個剛起起來的EBS Volume
一個是開機硬碟、一個是外接硬碟
圖示為terminal畫面,匡起來分別為兩台ebs
黃色那台還沒mount 複製ebs名稱 打下面指令
如圖示 硬碟空間有32G 目前只使用65mb
透過指令 創造假檔案 取名為fake_file
再打上指令看目前硬碟使用狀況 會看到已經使用1G的空間了
operating system:
Architecture:
Root device type(開機硬碟)
這邊示範選第一個amzn-ami-hvm-2018.03.0.20200602-1_64-gp2
download key pair(下載下來,需要用此pem file來驗證)-> Launch Instances
Snapshot是以region為單位
步驟為:刪除ec2->刪除ebs->創ec2->ebs snapshot要跟ec2同一個AZ->驗證
刪除ec2
點擊要刪除的EC2,點擊上方Action->Instance State->Terminate
刪除ebs
點擊左側Elastic Block Store的Volumes:點擊要刪除的EBS,在點擊上方Action->Delete Volume
模擬現在資料如果沒有備份 或是資料中心壞了,資料就是整個不見,但是有ebs snapshot就可以還原資料
創ec2
點擊左側Instances:Launch Instance
Step1:choose an Amazon Machine Image
左側選擇:Community AMIs
operating system:
Architecture:
Root device type(開機硬碟)
這邊示範選第一個amzn-ami-hvm-2018.03.0.20200602-1_64-gp2
Step2:Choose an Instance Type:
family:General purpose
type:t3a.nano
vCPUs:2
Memory(GiB):0.5
Instance Storage(GB):EBS only
EBS-optimized available:Yes
Network Performance(虛擬網卡): Up to 5 Gigabit
IPv6 Support: Yes
-> Next:Configure Instance Details
Step3:Configure Instance Details:
Number of Instances:1(不改)
Network:選建立好的ec2-demo-vpc(不改)
Subnet:選擇Public Subnet(不改)
Auto-assign Public IP:**Enable **(會需要Public IP所以Enable)
-> Next
Step4: Add Storage:用預設即可->Next
Step5:Add Tage:用預設即可->Next
Step6: Configure Security Group:
用預設即可->Next
Step7 Review Instance Launch:點選Launch
Select an existing key pair or create a new key pair:
Choose an existing key pair
key pair name::my-ec2-keypair->download key pair-> Launch Instances
EC2起好後,更改EC2名稱為:ec2-ebs-snapshot-
demo
點擊左側Elastic Block Store的Volumes
查看Snapshot正轉換成EBS Volume
5.將建立好的EBS Volume Attach to EC2
點擊剛建好的32GB EBS Volume,再按上方的Action:
Attach Volume:
Instance:選ec2-ebs-snapshot-demo(在同一個AZ所以找得到)->Attach
1. 刪除ec2
Instance console點擊欲刪除ec2 instance->Action->Instance State->Terminate
2. 刪除ebs shapshot
左側Elastic Block Sotre的Snapshot console->點擊欲刪除的Snapshot->Actions->Delete
3. 刪除ebs volume
左側Elastic Block Sotre的Volumes console->點擊欲刪除的Volume ->Actions->Delete Volume
4. 刪除keypair
左側Network&Security的Key Pairs點擊欲刪除的Key Pairs(my-ec2-key-pair)->Actions->Delete
以上為EC2服務上得資源清除 接下來到VPC
5. 刪除vpc
左側Your VPCs->點擊欲刪除的VPC->Actions->Delete VPC
AMI:Amazon Machine Image
用來創造EC2 Instance的模板
AMI組成:
vpc-vpc wizard-sinlge and public subnet
IAM底下的Policy 主要規範誰可以用 或 哪些資源可以被使用,又分為:
Identity-based policy
Resource-based policy
套用給誰
每個policy可以給不同user使用
一個user與可以同時擁有不同的policy
一個group裡面可涵蓋多個user
一個user也可以存在多個group中
一個policy可以被多個group使用
一個group可以套用多個policy
一個policy可以給不同role使用
一個role可以套用多個不同的policy
role是:不是user不是登入帳號來使用服務,像是其他aws service(ec2 instance)