1 minute read

類別

EC2 Instance

實例類型 意義 適用場景
m5 通用型實例 應用程序伺服器、中型資料庫、資料處理工作
c5 計算密集型實例 批次處理工作、資料分析、多媒體處理
r5 內存密集型實例 資料庫伺服器、內存資料庫、內存緩存
p3 GPU 加速實例 深度學習、機器學習、高性能計算
g4 GPU 加速實例 遊戲伺服器、影片編解碼、虛擬桌面
t3a 類似於 t2,基於 AMD 處理器 低成本需求
z1d 高速本地存儲實例 需要高性能本地存儲的工作負載,如資料庫和分析

EC2 Instance Level

.後面關鍵字代表該instance的等級, 愈大代表cpu,ram…等級愈高

實例大小
m5.large
m5.xlarge
m5.2xlarge
m5.4xlarge
m5.12xlarge
m5.24xlarge

tenancy

租約方式

type description
default 共享硬體
dedicated 專用硬體,實體機,但是自動分配, 無法指定位置
host 專用硬體, 且可以控制放置位置

Instance Store

存儲主要存在於一些特殊的實例類型中,這些實例類型針對高 I/O 性能和臨時存儲進行了優化,

例如:

type description
I3 系列 提供非常高的 Instance Store 存儲容量
C5d 系列 通用計算實例類型,提供 Instance Store
R5d 系列 內存優化實例類型,提供 Instance Store

這些機型上的存儲是臨時的, 關機後會消失, 且無法被snapshot , 適合用來做cache, buffer
若有持久化需求, 則需考慮 EBS 或是 EFS …

計價

EC2 On Demand

  • Linux and Windows 一分鐘後,以秒計費
  • 其餘系統以小時計費
  • 最高的費率,但無須預繳
  • 無長期承諾使用

使用場景: 短期且無間斷服務

EC2 Reserve Instance

預定特定instance的EC2 Instance, 以獲得折扣

  • 最多可以則扣 70% 左右, 3折… 相較於 EC2 On Demand 費率
  • 保留特定類型的EC2 Instance (區域,instance,系統…)
  • 保留1 or 3年, discount + , +++
  • 付款方式, 不預繳, 部份預繳, 全部預繳, discount +,++,+++
  • 保留 instance scope, 可選擇特定區域 region e.g. ap-northeast-1a, 或是特定AZ, AZ是指某個區域中的資料中心, e.g. ap-northeast-1a 可能就有2-3個AZ組成
  • 可將reserve instance於 Reserve Instance Marketplace 買賣
  • Convertible Reserve, 為特殊型, 可隨意切換 instance 系統 租約.. , 高彈性, 但優惠較低 最多66%

使用場景: 穩定狀態的服務, e.g. 資料庫

EC2 Savings

承諾花費, 以獲得折扣

  • 折扣程度依據長期使用狀況, 最多至72% discount
  • 需承諾使用量 , e.g. 每小時花10元, 持續 1 or 3 年 …
  • 若超出承諾的使用量, 費率則是以 EC2 On Demand 計算
  • 會被鎖定使用 特定instance與區域 e.g. M5 in us-east-I
  • flexible across, 可彈性選擇instance等級與OS,租約 e.g. m5 xlarge, m5 2xlarge,

EC2 Spot instance

犧牲可用性, 以獲得折扣

  • 最便宜的計價方式, 通常是 EC2 On Demand 的 1/10
  • 但是不保證可用性, 有可能隨時被中斷

使用場景: Batch jobs, Data analysis, Image processing 等等… 可以彈性接受中斷的服務

EC2 Dedicated Instance

  • EC2實體機, 不共享資源

EC2 Dedicated Hosts

  • EC2特定主機變成你專用的機器
  • 最貴的計價方式
  • 可用 On-Demand 或是 Reserved (70%) 的方案計費

使用場景: 軟體授權限制, 需要綁定硬體

EC2 Capacity Reservation

  • 保留特定區域的 EC2 主機配額, 以防高峰時期有資源擴展

費用同 on-Demand

Bootstrapping

啟動EC2時, 可以在第一次被啟動時,執行shell script,

在創建EC2時 > Advanced Details > User data(Optional)

啟動時安裝docker(ubuntu22.04)

c#!/bin/bash
# Install docker
# Add Docker's official GPG key:
apt-get update -y
apt-get install ca-certificates curl -y
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update -y
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y


gpasswd -a ubuntu docker
newgrp docker

EC2 Instance Role

  • 用來授予 EC2 instance 存取 AWS 服務的權限, 不需要使用密鑰
  • 一般aws cli是透過某個user的密鑰來操作aws服務, 等同藉由user的身份來操作aws服務, role可以理解成不能被登錄的user, 可以直接掛ec2上, 讓ec2可以直接操作aws服務, 不需要密鑰

AMIs

Amazon Machine Images
其實就是虛擬機的映像檔, 可用來創建EC2實例

在佈署好的EC2 instance > Actions > Image and templates > Create image

可將目前的EC2 instance創建成AMI, 之後就可以用這個AMI創建新的EC2 instance

需注意AMI是 region level, 所以要在同一個region才能使用

Tags:

Categories:

Updated: