AWS EC2

Amazon Elastic Compute Cloud (Amazon EC2). You can use EC2 for your Web Server, runner for your CI. AMI uses yum package installer.

EC2 runs Linux. A specialized Linux called Amazon Linux AMI — Amazon Linux Amazon Machine Image.

EC2 instances has many options, which I recommend you start from On-Demand Instances.

EC2 Processors

EC2 Accelerators

NVIDIA M60 GPU K80, M60, V100
Xilinx UltraScale+ VU9P FPGA

Understanding Type and Size

// Example: t3.large, c5d.2xlarge

[type].[size]

where [type] => [Family][Generation](Additional Feature)

Large number of generation means newer. C5 is newer than C4.

R5a, M5aa means with AMD CPU.
C5nn means better networking
e for extra capacity
g for Graviton2 processor
d for directly-attached instance storage

EC2 Instance Types

Shopping Guide

T Turbo (Burstable)
M for Most Scenarios (General)
C for Compute
R for RAM
X for Extra RAM
H for HDD
D for Dense Storage
I for I/O
HS for High-speed Storage
G for GPU
P for Premium
F for FPGA
A for ARM

Possible value of Types

Possible value of Size

  • nano
  • micro
  • small
  • medium
  • large
  • xlarge
  • 2xlarge
  • 4xlarge
  • 8xlarge
  • 10xlarge
  • 12xlarge
  • 16xlarge
  • 24xlarge
  • metal

A1 only has medium, large, xlarge, 2xlarge, and 4xlarge.

Grow by factor of 2 (vCPU, Memory, price/hour)

vCPU usually ranges from 2 to 96.
Memory usually ranges from 8GB to 384GB.
Network bandwidth ranges from 0 - 25Gbps.

Not all instance supports all sizes.

For real-production use, Memory >= 2GB is a good start (small). And you want an Instance Type that can scale. Seems like large is a more reasonable start because bloated software nowadays.

For using EC2 on CI, check this GitHub Issue: Which hardware are you using to run your CI.

T2 and T3

Read more

Further links