# 類型 EC2 Instance Types 是 Amazon Elastic Compute Cloud(EC2)提供的一系列虛擬機器實例類型,每種類型具有不同的計算能力、記憶體、儲存和網路能力,以適應各種工作負載需求。以下是 EC2 Instance Types 的總覽: 1. 通用用途 (General Purpose): - T3:提供可靠的計算能力,適用於大多數應用程式。 - M6g/M5/M5a:具有高效能的處理器和平衡的計算、記憶體和網路性能。 - A1:基於 ARM 架構的實例,提供高效能和成本效益。 2. 計算優化 (Compute Optimized): - C6g/C5/C5a:提供高效能計算,適用於 CPU 密集型工作負載。 - C6gn/C5n:具有更高的網路吞吐量,適用於需要高速網路連接的應用程式。 3. 儲存優化 (Storage Optimized): - I3:提供高容量的本地 SSD 儲存,適用於需要大量存儲空間的工作負載。 - D3:提供大容量的本地 HDD 儲存,適用於需要大量連續儲存空間的工作負載。 4. 加速計算 (Accelerated Computing): - P3:具有強大的 GPU 加速計算能力,適用於機器學習和圖形渲染等工作負載。 - G4:具有 GPU 加速的實例,適用於視覺圖形和 GPU 運算。 5. 內存優化 (Memory Optimized): - R6g/R5/R5a:提供大量的記憶體容量,適用於記憶體密集型應用程式和資料庫。 - X1e/X1:提供超大記憶體容量,適用於處理大型資料集和記憶體密集型工作負載。 這只是 EC2 Instance Types 的一些範例,每種類型都有不同的子類型和規格,可以根據需求來選擇適合的實例類型。您可以在 Amazon EC2 官方文件中查詢完整的 EC2 Instance Types 列表,以瞭解每個類型的詳細資訊和特點。 # Security Groups Security Groups在EC2實例上扮演防火牆的角色,它們用於控制對EC2實例的訪問。 可控內容: 1. 連接控制: - Security Groups使用安全規則來控制對實例的連接。您可以配置這些規則以允許或拒絕特定端口的通信。 - 您可以指定允許訪問特定端口的IP範圍,可以是IPv4或IPv6位址。這樣可以限制哪些IP可以與實例通信。 2. 入站(inbound)網路控制: - Security Groups可以控制從其他來源到實例的入站網路流量。您可以設定規則來允許或拒絕特定端口的流量。 - 這使您能夠根據需要打開或關閉特定的網路連接,以確保實例只接收到預期的流量。 3. 出站(outbound)網路控制: - Security Groups還可以控制從實例到其他目的地的出站網路流量。您可以設定規則來限制或允許實例發出的流量。 - 這使您能夠限制實例對外部網絡的訪問,保護敏感資料不被未經授權的流量存取。 ## 特點 1. 可附加到多個實例: - 您可以將同一個Security Group附加到多個EC2實例上,從而共享相同的安全規則。 2. 限制於區域/虛擬私有雲(VPC)組合: - 每個Security Group是與特定區域和VPC相關聯的。這意味著它只適用於指定的區域和VPC,並且無法橫跨不同的區域或VPC使用。 3. 存在於EC2之外: - Security Groups實際上是在EC2實例之外執行的。這意味著如果某個流量被Security Group阻擋,EC2實例將無法看到這個流量。 4. 維護獨立的SSH存取Security Group: - 建議為SSH存取維護一個獨立的Security Group。這樣可以對SSH連接進行更精細的控制,增加安全性。 5. 網路訪問問題的判斷: - 如果您的應用程式無法訪問(time out),那可能是由於Security Group的問題。 - 如果您的應用程式顯示“connection refused“”的錯誤,那可能是應用程式的錯誤或尚未啟動。 6. 預設阻擋所有入站流量: - 預設情況下,所有入站流量都被Security Group阻擋,必須配置相應的安全規則來允許特定的流量。 7. 預設授權所有出站流量: - 預設情況下,所有出站流量都被Security Group授權,允許EC2實例發出到外部的流量。 ![](https://hackmd.io/_uploads/Sy_Xj9FD3.png) 在帶有security group的狀況下 只要該安全群組有在允許範圍內,就算IP更動也不會影響連線 ## 常見的port |Port | 名稱 | 服務 | | -------- | -------- | -------- | | 22 | SSH(Secure Shell)| 登入Linux實例 | | 21 | FTP(File Transfer Protocol)| 上傳文件 | | 22 | SFTP(Secure File Transfer Protocol) | 使用SSH上傳文件 | | 80 | HTTP | 訪問非安全的網站 | | 443 | HTTPS | 訪問安全的網站 | | 3389 | RDP(Remote Desktop Protocol) | 登入Windows實例 | ## 實際操作 ![](https://hackmd.io/_uploads/B1-BTcYDh.png) 點擊Network & Security中的Security Groups 可以看到裡面內建的群組<br> ![](https://hackmd.io/_uploads/r1SHRcFP2.png) 其中一個是適用在我們先前創建的EC2實例中 因為選擇允許HTTP因此設定可以接受80 port來源 也因允許SSH設定所以接受22 port來源 若想調整規則可點選 Edit inbound rules<br> ![](https://hackmd.io/_uploads/Hk3QyiFDh.png) 這裡可以自由添加來源 若把80刪除 則會發現網頁一直無限跑圈圈也就是**time out** 若出現time out 一定要先來檢查是否是Security Groups把造訪來源擋在外面 ## 與 IAM Policies 的差異 Security Group和IAM Policies是AWS中用於控制資源訪問和權限管理的兩種不同概念。 **Security Group和用於網路層級的安全性**,它是一個虛擬的防火牆,用於控制EC2實例的進出流量。Security Group可以規定允許或拒絕特定的IP地址範圍、通訊協定和端口號等來源和目的地之間的流量。Security Group適用於VPC和子網路層級,並且可以直接應用於EC2實例、資料庫實例等資源。Security Group和IAM Policies是AWS中用於控制資源訪問和權限管理的兩種不同概念。 是一種非常實用的方法,可以確保資源之間的網路連接是安全和受控的。 **IAM Policies則是用於身份和訪問管理的層面**,它是用於控制使用者、角色和組織對AWS資源的訪問權限的策略。IAM Policies定義了哪些操作可以由哪些實體執行,以及對哪些資源可以進行操作。IAM Policies可以設定在個別使用者、組織或角色上,並且可以細粒度地控制資源的訪問權限。IAM Policies可以控制對AWS服務的管理操作,例如創建、刪除、修改資源,以及訪問敏感資源的能力。 總結起來,Security Group和用於控制資源的網路層級存取,而IAM Policies用於控制身份和訪問管理的權限。Security Group和IAM Policies是AWS中用於控制資源訪問和權限管理的兩種不同概念。 關注的是網路流量的過濾和防火牆規則,而IAM Policies則關注的是使用者和角色的授權和權限管理。 # EC2 Instance Store類型 EC2 Instance Store(EC2 實例存儲)是一種高性能本地存儲解決方案,適用於需要臨時性、高速讀寫的數據存儲。然而,由於非持久性的特性和數據風險,需要自行負責數據的備份和複寫,以確保數據的可靠性 1. 高性能本地存儲:EC2 Instance Store 提供了比 EBS 卷更好的 I/O 性能。它倚賴於 EC2 實例所在的物理硬件磁盤,因此可以實現更高的讀寫速度和低延遲。 2. 非持久性存儲:EC2 Instance Store 的存儲是暫時性的,意味著如果實例停止運行,存儲的數據將會丟失。因此,EC2 Instance Store 適合存儲緩衝區、快取數據、臨時內容等對數據持久性要求不高的應用場景。 3. 有較高數據風險和責任:由於 EC2 Instance Store 是基於物理硬件磁盤,因此如果硬件發生故障,可能會導致數據損失。因此,需要自行負責進行數據備份和複寫,以確保數據的可靠性。 4. 適用於緩衝區、快取和臨時數據:由於 EC2 Instance Store 具有高性能的特點,它非常適合存儲需要快速讀寫的緩衝區、快取數據和臨時內容。這些數據通常不需要長期保留,可以根據需要進行存儲和清理。