---
# System prepended metadata

title: AWS
tags: [許良宏]

---

# AWS
使用者做出動作 伺服器回應流程
User->instauce->AWS->VPC->subaet->NACL->route table->
security group->server->security group->NACL->igw->User

---

## VPC虛擬私有雲
是存在於共享或公用雲中的私有雲，是一種網際雲。 
包含了
1. subnet子網路
-ip分配
-AZ建立
2. route table路由表
-
3. igw
-interwet gateway
-連接外網用
4. nacl
-network access control list
-網路許可管理清單(允許or拒絕)
-在VPC控管
-有優先權
-InBound role 預設全部允許
5. security group
-在機器控制
-網路許可管理清單(允許or拒絕)
-InBound role預設全部拒絕

---

## ec2
### 服務
**ec2**
Amazon EC2 是一種 Web 服務，可在雲端提供安全、可調整大小的運算容量。該服務旨在降低開發人員進行 Web 規模雲端運算的難度。Amazon EC2 的 Web 服務界面非常簡單，您可以輕鬆獲取和配置容量EC2 提供了最廣泛和最深入的運算平台，可以選擇處理器、儲存體、網路、作業系統和購買模型
**ami**
受 Linux 支援和維護的映像。它旨在為 Amazon EC2 上執行的應用程式提供穩定、安全和高效能的執行環境。它支援最新的 EC2 執行個體類型功能，也包含易於與 AWS 整合的套件。Amazon Web Services 為執行 Amazon Linux AMI 的所有執行個體提供持續的安全性和維護更新。Amazon EC2 使用者無須支付其他費用即可使用 Amazon Linux AMI。
**elb**
Elastic Load Balancing 可在多個目標(例如Amazon EC2 執行個體、容器、IP 地址、Lambda 函數和虛擬設備) 之間自動分配傳入的應用程式流量。 它可以在單一可用區域或跨多個可用區域處理您應用程式流量的各種負載。
**target group**
建立目標群組時，您會指定其目標類型，這會決定您對此目標群組註冊目標時指定的目標類型
下列是可能的目標類型：
instance
以執行個體 ID 來指定目標。
ip
目標為 IP 地址。
lambda
目標是 Lambda 函數。
**Auto Scaling Groups**
AWS Auto Scaling 可監控應用程式並自動調整容量，盡可能以最低成本維持穩定、可預測的效能。使用 AWS Auto Scaling，幾分鐘內即可為多項服務的多種資源輕鬆設定應用程式擴展功能
### 如何使用
點擊instance 按照你的需求去選你的機器 可以利用putty透過SSH連進EC2裡面。 也可以在設定你的機器時 在user data增加你要的指令 讓你可以再用ELB的時候不用一台一台設定。
也可以透過設定來啟用AWS內建的connect來進行設定。

---
## cloud watch
偵測您環境中的異常行為、設定警示、將日誌和指標並列展示、採取自動動作、對問題進行故障排除，還有探索洞見以確保應用程式順暢執行

在架設伺服器時如過有過多的連線將會造成伺服器附載過大，如果要手動增加伺服器就會很麻煩，所以可以利用ASG來自動增加機器，架設ASG就會用到cloud watch ，在這設定一個標準，當伺服器的附載到達一定標準就會觸發ASG來增加機器

---

## s3
可以將檔案上傳，他是個雲端，舉例可以將程式上傳至S3，利用SSH連線至伺服器，使用wget的指令將檔案從雲端下載下來

---

## rds
雲端關聯式資料庫

資料庫就像是一個班有三十個學生，將每個學生的學號 姓名 生日 電話做成一個表格，這就是一個資料庫

---

## iam
建立和管理 AWS 使用者和群組，並使用各種許可來允許和拒絕他們存取 AWS 資源。

就像是權限，沒有權限就無法做到要做的事，像是比賽時會有一些限制，可能會限制選手們可以使用的服務，這種就是利用IAM來做限制

---

## putty指令
1. **cd** -切換目錄
`cd <name>`-進入資料夾
`cd/`-回到目錄根
`cd ../`-回到上一頁
`cd /usr/bin -到 /usr/bin 這一個目錄`
2. **ls** -列出檔案或目錄
`ls`-列出
3. **yum**-安裝套件
`yum install git`-安裝git套件
4. **rm**-刪除
`rm <name>`-刪除檔案
`rm -rf <list>`-刪除資料夾
> -r 資料夾
> -f 必定刪除
5. **sudo**-提高權限
`sudo <需要權限的程式>`-每一次打需要權限的指令都要打一次
`sudo !!`-提高並執行上一句程式的權限
`sudo -i`-提高自身權限只需打一次
6. **nano**-檔案編輯
`nano <name>`-建立檔案&編輯
7. **wget**-下載各種的網頁、檔案或目錄
`wget <網址>`
8. **chmod**-控制用戶對檔案的權限
`chmod +x <name>`-使檔案有權限**被**打開

9. **aws s3 cp**-拷貝S3內的檔案至EC2
`aws s3 cp s3://{S3名稱}/{檔案名} ./ `
10. **./**-執行檔案
`./<name>`

---

## port 號
1. FTP=>21(傳檔案)
2. **S**SH=>22
3. HTTP=>80(不安全)
4. HTTP**S**=>443(安全)
5. MySQL=>3306(資料庫程式)
**s**=Secure(so安全)
---

## IP計算
0~255(128+64+32+16+8+4+2+1)
10 . 0 . 0 . 0 /10(前十位數不可變)
**00000000 00**000000 00000000 00000000(每個IP改成二位數)
粗體不可變
128 64 32 16 8 4 2 1
1st NetworkIP(第一個IP)不可用10.0.0.0
Last BroadcastIP(最後一個IP)不可用10.63.255.255
HostIP(其他的IP)可用10.0.0.1~10.63.255.254

###### tags: `許良宏`