# 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: `林展`