---
# System prepended metadata

title: aws
tags: [AWS]

---

# aws

https://www.youtube.com/watch?v=ubCNZRNjhyo
https://www.youtube.com/watch?v=BQ0gi9YHuek&ab_channel=AndrewSchmelyun

## 簡介
![](https://i.imgur.com/Eo1M6k6.png)
region地區裡面有多個AZ(可用區) 每一個AZ至少有一個data center
例如台灣可能有多個地區可以交互用這樣 防止遇到天災等

## 定價
![](https://i.imgur.com/RWW2Pzj.png)

中間是與用者計費
左邊是先付給額度
右邊是訂閱

## 功能介紹
https://www.youtube.com/watch?v=_WCjqokBGbg&ab_channel=%E5%9C%96%E8%A7%A3%E7%A8%8B%E5%BC%8F%E6%95%99%E5%AD%B8SamTsai
![](https://i.imgur.com/JDPUxHk.png)


## VPC
https://www.youtube.com/watch?v=0YG3vo78gSM&list=PLVVMQF8vWNCKO5nG4tfEIrFJu1rHcEnRk&index=9&ab_channel=%E5%9C%96%E8%A7%A3%E7%A8%8B%E5%BC%8F%E6%95%99%E5%AD%B8SamTsai

subnet 會先到local再轉到下一個subnet
每個subnet都有一個route table才能連到下一個subnet
![](https://i.imgur.com/uibG6gI.png)


private subnet要到外網
要先去nat gw((這是虛擬主機 可以放在public subnet上面))才能到外

public subnet 直接連到igw


![](https://i.imgur.com/nbkGsp3.png)

SG 是ec2的保護協議 類似防火牆
他是stateful 他會記憶你有沒有通過過
如果你已經通過就不用再驗證

跟nacl不太一樣

重點
![](https://i.imgur.com/IV2JdXu.png)
其實net裡面是不是ec2 是先eni 這可以想成是虛擬網卡
然後放在虛擬主機(ec2上)


## compute
![](https://i.imgur.com/x0BaRs7.png)


## ECS

## EC2
他是data center裡面會slince出來 屬於你的一部份空間
EC2 instans 專門給你用

他不是整台電腦給用戶

## 費用
![](https://i.imgur.com/raobbgL.png)

第一種正常
第二種拿空的 別人要你就沒了 可以用在短期可以中斷的
第三種預留 某一個的一段時間內給你用
第四個 儲蓄 約定多少使用量 用來打折
## ssh連線
https://etrex.tw/free_chatbot_book/aws/aws_setup_ssh.html
### EC2 mode
![](https://i.imgur.com/lSuG5zp.png)

cluster manager是用來管理 service(這邊比較是任務 服務的概念)
會有多個service然後 會有task nuber ,task defindation(計算它需要多少ram之類的) container defindation是用決定用那些image這樣
然後
每個service都有一個目標狀態 就是會看有要用多少task defindation
這樣去起對應的task 然後每個task會讓container instance去認領
如果這個認領的task壞掉了 會從新起一個container 去執行

container instance其實就是ec2,所謂的container instnce就是一台linux裡面有docker engine + ecs container agent(用來跟clustermanger溝通)



雲端好處是可以用 附載均衡跟 auto 自動增長ec2那個 
### farget
![](https://i.imgur.com/5ynObgC.png)
他會幫我們管理container instance 我們就只要專門的去當cluster manager
## ECR
### login
![](https://i.imgur.com/rWwPOi7.png)
可以本地pull
注意這邊可以去抓Private repositories 的url
但注意看結尾 沒有repository的名稱
![](https://i.imgur.com/lku7Z8Z.png)


## EKS
更改kubcli連線對應的
![](https://i.imgur.com/acWCyjk.png)

### aws-auth configMap
本地cli, app是用iam
但EKS是用root去創建
所以會遇到RBAC的角色權限問題

那如果要把權限給其他角色
要用到aws-auth configMap

所以先去root拿accest token
再把~/.aws/ 底下的token改成root的登入
如何切換登入
![](https://i.imgur.com/hZKHVXz.png)

當然實際工作要請主管加入mapuse
實際做法用cli登入root 然後edit kubctl的config
加入mapuse 
![](https://i.imgur.com/xTp7GdJ.png)

## 注意
每個instance對應的pod都有限制
https://github.com/awslabs/amazon-eks-ami/blob/master/files/max-pods-calculator.sh
可以去這看

記住kube 一開始system就有四個了 所以不能安裝四以下的
在來這問題解決關鍵字 aws eks iam 進去後找max
iam是代表ec2資源 


## VPC
![](https://i.imgur.com/zHNFxsV.png)
![](https://i.imgur.com/1r5KBE2.png)
![](https://i.imgur.com/i2huP1K.png)
vpc內的submit可以利用internet gateway去連接外部網路
那如果private 要外部資源可以用nat gateway去連別的submit再透過internet gateway去連結外部
這樣有個好處是外部沒有private的ip

記住一樣是區域去區分的 每個區域預設一個vpc
### CIDR
![](https://i.imgur.com/8lVCmBX.png)
/後面的數字代表可以有多少能用
這是指private ip的分配如上圖一樣 可以知道這個vpc裡面有多少private ip可以用

### elastic ips
一個帳號一個區域只能有一個
而且她要付錢
### 網路
![](https://i.imgur.com/vpOSNON.png)
ACL是子網路 但還是用推薦得比較好

### vpc peering
![](https://i.imgur.com/Llhc1Ie.png)
vpc peering是vpc互相溝通 可以用transit gatewagys控制

### AWS privatelink
使用她可以連到別的aws service不用經過網路

## 分散式架構
https://www.youtube.com/watch?v=aqnuKxy_Av8&ab_channel=%E5%9C%96%E8%A7%A3%E7%A8%8B%E5%BC%8F%E6%95%99%E5%AD%B8SamTsai
![](https://i.imgur.com/Ymdtk0w.png)
讀寫分離的情況下 如果寫入還是太多可以使用noSql 不要求一致姓
## buckets
儲存庫

## RDS
建立的時候一定要有安全組
如果要連線 不要用預設的要自己建立安全組 然後改成anywhere都可以
https://www.youtube.com/watch?v=0EaG3T4Q5fQ&list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE&index=28

### AWS Lambda & RDS
https://www.youtube.com/watch?v=NRpLW8QIe5o&list=PLVVMQF8vWNCKO5nG4tfEIrFJu1rHcEnRk&index=3&ab_channel=%E5%9C%96%E8%A7%A3%E7%A8%8B%E5%BC%8F%E6%95%99%E5%AD%B8SamTsai
![](https://i.imgur.com/W2fagMR.png)
1
出發lambda可能
要小心lambda可能會被觸發兩次
所以要防呆

2
如果要用lamdba去觸發rds 要小心最大連線 lambda最大1000
但rds要看設定多少

## Network - VPC-Subnet & Region-AZ 
https://www.youtube.com/watch?v=6QGuf0O1j4E&list=PLVVMQF8vWNCKO5nG4tfEIrFJu1rHcEnRk&ab_channel=%E5%9C%96%E8%A7%A3%E7%A8%8B%E5%BC%8F%E6%95%99%E5%AD%B8SamTsai

![](https://i.imgur.com/vrvoEAQ.png)

城市上面有很多az
vpc是虛擬的
所以多個虛擬可能對應到不同的az
如果有對到 就是高可用性

## ELB
https://www.youtube.com/watch?v=VZD5iLl0E_E&ab_channel=%E5%9C%96%E8%A7%A3%E7%A8%8B%E5%BC%8F%E6%95%99%E5%AD%B8SamTsai
![](https://i.imgur.com/vOFR5Zg.png)

可用ASG分配
auto scaling group會動態增減ec2


用routing Algorithm去分配要到哪個ec2
## AWS API (IMA)

https://godleon.github.io/blog/AWS/AWS-CSA-associate-IAM/
IAM 不一定是人 可以是APP

上面兩個是USER的api key 跟私密要
下面是地區跟你buckets的名稱(唯一)
![](https://i.imgur.com/uTwo5gM.png)

region的代號
![](https://i.imgur.com/t5mOIJU.png)
看buckets的地區 去 aws endpoint 找對應的代號
![](https://i.imgur.com/IJPaThh.png)

## policy vs permission
我覺得差別在於
policy是用在EKS 因為他沒有fullaccess
permission 用在s3 secret-manager ecr
![](https://i.imgur.com/qlrtnzZ.png)


### 權限部分
如果他有group 自己也有權限
會加再一起變成組合

如果有衝突 一個能用 一個不允許
結果會是不允許 記住 拒絕總是覆蓋允許


##  Elastic Beanstalk
https://www.youtube.com/watch?v=D0wxC7aZ21A&ab_channel=JimmyLozano
部屬環境


###### tags: `AWS`