---
# System prepended metadata

title: '0'
tags: [林展]

---

# 0
如果想要從vpc獲得東西必定會經過這些步驟
user=>AWS=>VPC=>NACL=>Route Table=>Subnet=>Security Group=>sever=>Security Group=>NACL=>IGW=>USER

---
## Amazon VPC
VPC是在Amazon 就是網路，如果你的網路不通別人就進不來得不到回應，
再設定vpc時有一些重要的東西例如Route Table. Subnet .Security Group Internet getway
network access control list這些東西關係到別人是否能進來,VPC建立在AWS所提供的機房，而VPC本人就像是區域的概念，別人就是來到我的區域來取得服務。

### Network Access Control List
NACL是控制連進VPC的保安，只有受到了NACL的允許才可以進入VPC內部，同時也可以設定所謂的優先權優先權可以優先審核放行。

### Route Table
簡單說就是路由表，必須要經過路由表才知道要連線進哪個subnet。

### Subnet
是如通閘門的存在同時也分配了IP，subnet有分公開和私有，如果subnet為私有別人就無法連線進去，只有從subnet進去才能到下一關便是security group。
兩個以上的subnet在一個vpc叫做Multi-AZ.

### Security Group
如同是防火牆如果你想連進instance來得到回復必須要先過SG這關，SG設定了允許連進去的方式，假設今天SG沒有開http連線，即使是你擁有instance的IP也連不進去，因為SG把你擋在外面了，所以SG一定要設定好連線方法。
### 設定security port號(連線方式)
1. FTP=>21(傳檔案)
2. SSH=>22
3. HTTP=>80(不安全)(相較https不安全是因為缺少S，S及是security及是使用中是有加密的)
4. HTTPS=>443(安全)
5. MySQL=>3306(資料庫所使用)

### Internet Getway
既然都走進來救需要走出去才能把回覆送回去，Internet getway就是扮演了門口的角色，即得要attached到vpc這樣才能從vpc進出.

## Amazon EC2服務
Amazon EC2 是一種 Web 服務，可在雲端提供安全、可調整大小的運算容量、提供連結點、集中管理機器，也就是他擁有的instance, Auto Security Group(ASG) 跟 Elastic Load  Balancing (ELB) 以及 Target Group (TG)等服務，進而達到建立一個web的需求。

### instance
Aws ec2提供了基本的執行個體(instance)，可以選擇處理器、儲存量、作業系統
在客戶端點擊網後便是由instance來做回應請求，所以ec2是非常核心的服務，我們可以利用putty來做連線到ec2內部來做程式開發以及測試。 
在建立instance時有一個設定叫做user data，user data 的作用就是能事先對instance下指令，這樣大大減少了需要一個個連線下指令的繁瑣動作。

### Auto Scaling Group
先來說ASG 在VPC的部分有說到SG簡單來說ASG就是一種集中管理instance的方式 ， 建立ASG的方式有兩種: 
#1 lunch template:是對寫好user data的instance右鍵image and template再選擇create template from instance 勾選Auto Scaling guidance，以及設定Security group就可以創建template了，有了template就可以見auto Scaling group了。
#2 Launch Configurations:則是利用instance的user data來做，進去Launch configuration後選擇你instancen所使用的ami以及instance type，之後把security group之類的東西設定好後去Advanced details的user data把instance的user data打上去然後創Launch Configurations，就可以利用Launch Configurations創建ASG了(這個方法lunch template也可以做到)
template跟Configuration的差別在template可以在一個template裡有多個version。

使用ASG的好處就是，架設機器時只需要從ASG手動調整機器數量，ASG就會幫你關閉或是架設機器，也可以利用cloud watch alarm裝到ASG上來做自動控制機器數量。

### Target Group
建立target group時，您會指定其target，target group不只能在指向instance也可以指向ip或者是lambda函數，而其中target group在建立時有health check的選項可以用來做測試:
如果指定目標instance的Protocol version是http1,http2的那麼需要在Health check path的部分打上/healthcheck，如果是gRPC則是/AWS.ALB/healthcheck,
Advanced health check settings可以設定細部內容比如:幾秒算TIME OUT,Healthy threshold要通過幾次檢查算Healthy,Unhealthy threshold要通過幾次檢查算UnHealthy,Interval每次檢查間格時間,Success codes 得到 response給的http code多少為正確。
在建立ELB時就可以選擇target group，而ELB就會按照target group的設定去做healthcheck，如果healthcheck沒通過則會關掉測試的instance然後再建新的instance做測試。


### Elastic Load  Balancing
當有多個流量進來時需要一個分流器來管理這就是ELB，ELB建立
需要把Subnet設定好然後選擇TG，建立完後再綁定到ASG上，之後就會有DNS name 的網址，而這個網址便是客戶連進instance的入口

### Cloud Watch
最後再說cloud watch ，簡單來說它就是用來偵測，可以設定特定目標檢測其異常行為

我們可以選擇觀察ELB的回覆時間來判定，如果回覆時間過久代表機器數量不夠支持流量反之亦然，也可以透過cloud watch 觀察的項目來做自動管控。Alarm可以用cloud watch 觀察的項目做標準例如回應時間超過6秒就加機器，設定完後把Alarm綁到ASG上即可啟用。

## Amazon物件.檔案.資料儲存

### Amazon s3
S3是一個儲存""物件""的地方，你可以把""物件""傳送上去並利用S3直接傳送出去，在S3可以使自己的S3 bucket 設定為公開並且可以把物件也設成公開，這樣一來就可以利用指令直接從S3 bucket 把東西下載下來，在寫user data 也可以用到。

### Amazon efs
efs有儲存""檔案""的功能，EFS像是為傳輸""檔案""到instance而存在，幾千個instance可以同時存取 EFS，以價格來說EFS只會計算有傳輸的部分，並且不會收取放置費用，是用來傳輸和儲存""檔案""。
### Amazon rds
RDS是一個Web 服務，有存放資料以及資料庫管理的方便功能，並且CPU、記憶體、儲存空間和 IOPS都是可以依照需求個別調整，RDS資料庫可以使用其他雲端資料庫例如MySQL、MariaDB、Oracle、SQL Server 或 PostgreSQL 資料庫引擎，你可以把東西利用RDS傳送到你常用或是熟悉的資料庫種類。

# SSH基本指令(可以使用PUTTY來連線進去)
### **cd切換目錄** 
`cd ~` 回到個人目錄(別人看不到)
`cd /` 切換位置` cd /位置名稱` or `cd../`倒退一格位置
### ls 查看現有所有files
### touch 新增file
### yum 工具管理器
`yum install 可安裝的工具`下載工具ex.git

### mkdir 建立目錄
### rm 刪除 
 ` rm -rf 目錄` 可刪除目錄
 ` rm -r 檔案` 可刪除檔案
### mv 改名 
### clear 清空螢幕(不影響檔案)
### nano 檔案編輯器
### git 版本控制 (限定git專案)(非原廠擁有)
`git 網址`
### wget 在網路上進行下載
`wget 網址`
### sudo 以最高權限執行動作(sudo -i 獲得root 權限)
### chmod 控制檔案的權限
`chmod +x server.bin ` +x的動作讓檔案有權限被執行
`./檔案名稱開啟檔案` 先做`chmod +x server.bin `有權限被開啟
./ 執行可被執行黨
### /var/log/cloud-init-output.log 查看user data 執行內容
`cd /var/log`先到位置在做`nano cloud-init-output.log`



###### tags: `林展`