Custom AMI는 실무에서 Golden Image 패턴으로 많이 쓰인다. 매번 인스턴스를 띄울 때마다 패키지 설치하고 설정하는 건 비효율적이다. 한 번 세팅 완료한 상태를 AMI로 찍어두면 동일 환경을 몇 초 만에 복제할 수 있다.
AMI는 리전에 종속된다. 서울 리전에서 만든 AMI를 오하이오에서 쓰려면 aws ec2 copy-image로 복사해야 한다. 이 점은 처음 알았다.
3. 인스턴스 타입
인스턴스 타입이란?
EC2 인스턴스의 CPU, 메모리, 스토리지, 네트워크 성능을 결정하는 조합이다. 각 타입은 특정 워크로드에 최적화되어 있고, 인스턴스 패밀리로 분류된다.
이름 형식
m5a.large를 분해하면:
구성
의미
m
인스턴스 패밀리 (범용)
5
세대
a
접두사 (AMD 프로세서)
large
크기
주요 인스턴스 패밀리
패밀리
특징
사용 사례
예시
t (버스팅 범용)
저렴하고 탄력적 성능
소규모 웹서버, 개발/테스트
t2.micro, t3.small
m (균형형 범용)
가장 범용적 (균형형)
웹/앱 서버, 일반 워크로드
m5.large, m6i.xlarge
c (컴퓨팅 최적화)
높은 vCPU 비율, 고성능 CPU
고성능 웹 서버, 배치 처리, 컴파일
c5.large, c6g.2xlarge
r (메모리 최적화)
메모리 대용량 구성
인메모리 캐시, DB 서버, 분석
r5.large, r6a.4xlarge
x / z (고메모리 특화)
초대용량 메모리
SAP HANA, 고속 인메모리 DB
x1.16xlarge, z1d.large
g / p / inf / trn (GPU/ML)
GPU 탑재, AI/ML 최적화
ML 추론/학습, 그래픽 렌더링
g4dn.xlarge
i / d / h (스토리지 최적화)
로컬 SSD, 고속 I/O
NoSQL, 로그 수집, 분산 파일시스템
i3.large, d3en.2xlarge
인스턴스 크기
같은 패밀리 내에서 크기를 올리면 vCPU, 메모리, 네트워크 대역폭이 비례 증가한다.
예를 들어:
m5.2xlarge는 m5.xlarge의 vCPU 두 배
m5.12xlarge는 m5.xlarge보다 12배 강력
네트워크 대역폭도 인스턴스 크기에 연계된다. 네트워크 집약적 작업이라면 인스턴스 사양을 높여야 할 수 있다.
💡 실습 중 느낀 점
프리티어에서 쓸 수 있는 건 t2.micro 또는 t3.micro 정도다. t 시리즈는 버스팅(burstable) 모델이라 평소에는 기본 CPU 크레딧으로 동작하다가 부하가 걸리면 크레딧을 소모해서 성능을 끌어올린다. 크레딧이 바닥나면 성능이 급격히 떨어지므로, 지속적으로 CPU를 많이 쓰는 워크로드에는 부적합하다.
Azure의 VM 시리즈(B, D, E, F 등)와 대응 관계가 있다. AWS t ≈ Azure B (버스팅), AWS m ≈ Azure D (범용), AWS c ≈ Azure F (컴퓨팅), AWS r ≈ Azure E (메모리). 두 클라우드를 비교하면서 보니 이해가 빨랐다.
4. 인스턴스 스토리지
EC2에는 두 가지 스토리지 타입이 있다.
EBS (Elastic Block Store)
네트워크 기반의 블록 스토리지
인스턴스 중지(Stop) 후에도 데이터 유지 가능
EC2 인스턴스에 볼륨(디스크)처럼 연결
EC2와 독립적으로 존재하며 스냅샷으로 백업 가능
인스턴스 스토어 (Instance Store)
EC2의 물리적 호스트에 연결된 임시 저장소
인스턴스 중지(Stop) 시 데이터 소실
매우 빠른 I/O 속도 (SSD 기반)
EBS 볼륨 타입
타입
설명
gp3 / gp2
범용 SSD. 대부분의 워크로드에 적합
io2 / io1
고성능 SSD. 고성능 IOPS가 필요할 때
st1
처리량 최적화 HDD (빅데이터 등)
sc1
콜드 HDD (저비용, 접근 빈도 낮음)
💡 실습 중 느낀 점
EBS와 Instance Store의 핵심 차이: 데이터 영속성. EBS는 인스턴스를 Stop해도 데이터가 살아있지만, Instance Store는 Stop 순간 데이터가 날아간다. 캐시나 임시 버퍼에는 Instance Store, 영구 데이터에는 반드시 EBS를 써야 한다.
gp3가 gp2보다 후속 세대인데, gp3는 IOPS와 throughput을 독립적으로 설정할 수 있다. gp2는 볼륨 크기에 따라 IOPS가 자동 결정되는 반면, gp3는 3,000 IOPS 기본 제공에 추가 비용으로 최대 16,000까지 올릴 수 있다. 신규 생성 시 gp3를 쓰는 게 합리적이다.
5. EC2 인스턴스 요금제
요금제 종류
온디맨드 (On-Demand)
사용한 만큼만 비용 지불
유연하지만 단가가 가장 높음
Savings Plan / 예약 인스턴스 (Reserved)
1년 또는 3년 약정
최대 72% 할인
장기 예측 가능한 워크로드에 적합
스팟 인스턴스 (Spot)
AWS 여유 자원을 경매식으로 사용
최대 90% 할인이지만 중단 가능성 있음
2분 전 공지 후 회수될 수 있음
비용·안정성·유연성의 균형을 고려해서 선택해야 한다.
AWS 프리 티어 EC2 조건
AWS 가입 후 12개월간 일부 서비스 무료
t2.micro 또는 t3.micro (리전마다 다름) — 750시간/월 무료
Amazon Linux, Ubuntu, Windows 등 일부 AMI 무료
EBS 저장소 30GB까지 무료 (초과 시 과금)
매월 1GB 아웃바운드 데이터 전송 무료
750시간 = 24시간 × 31일 = 744시간이므로, 한 대를 계속 켜 두어도 무료다. 단, 두 개 이상 인스턴스를 동시에 실행하면 750시간을 나눠 쓰게 된다.
주의사항:
EBS 30GB 초과 → 추가 과금
인스턴스를 중지하지 않고 방치 → 예상치 못한 비용
Windows Server는 라이선스 포함 비용이 별도로 과금될 수 있음
프리티어 혜택은 리전별로 차이가 날 수 있음
💡 실습 중 느낀 점
프리티어 750시간은 넉넉해 보이지만, 인스턴스 2개를 동시에 24시간 돌리면 한 달에 1,488시간이 되어 738시간이 초과 과금된다. 실습할 때 인스턴스를 여러 개 띄워놓고 깜빡 잊으면 요금 폭탄을 맞을 수 있다.
Stop과 Terminate의 차이를 확실히 인식해야 한다. Stop은 EBS 비용이 계속 발생하고, Terminate는 인스턴스와 루트 EBS까지 삭제된다. 실습 끝나면 Terminate가 안전하다.