SAABlog
컴퓨팅초급

EC2 기초 완벽 가이드: AMI, 인스턴스, EBS의 모든 것

AWS EC2의 핵심 개념인 AMI, 인스턴스, EBS를 초보자도 쉽게 이해할 수 있도록 정리합니다. SAA-C03 시험 대비 필수 내용 포함.

PHILOLAMB-
EC2AMIEBS인스턴스컴퓨팅

관련 시험 도메인

  • Domain 2: Design Resilient Architectures
  • Domain 3: Design High-Performing Architectures

핵심 요약

EC2는 클라우드에서 가상 서버를 빌려 쓰는 서비스입니다. AMI로 서버 설정을 템플릿화하고, EBS로 데이터를 영구 저장하며, 인스턴스로 실제 컴퓨팅을 수행합니다.

시험 팁

시험 핵심: EC2 인스턴스를 중지(Stop)해도 EBS 데이터는 유지됩니다. 하지만 인스턴스 스토어 데이터는 중지/종료 시 삭제됩니다. AMI는 EBS 스냅샷 + 메타데이터로 구성되며, 리전에 종속됩니다.

구성 요소역할특징
AMI서버 템플릿OS + 소프트웨어 + 설정, 리전 종속
인스턴스실행 중인 가상 서버CPU, 메모리, 네트워크
EBS영구 스토리지인스턴스와 독립, AZ 종속
인스턴스 스토어임시 스토리지물리 디스크, 중지 시 삭제

EC2란 무엇인가?

**Amazon EC2(Elastic Compute Cloud)**는 클라우드에서 가상 서버(인스턴스)를 생성하고 관리하는 서비스입니다.

EC2의 핵심 가치

EC2의 장점:
├── 탄력성: 필요할 때 즉시 생성/삭제
├── 확장성: 몇 분 만에 수백 대로 확장
├── 유연성: 다양한 OS, 인스턴스 유형 선택
├── 비용: 사용한 만큼만 지불 (초 단위)
└── 통합: VPC, EBS, IAM 등 AWS 서비스와 연동

EC2 구성 요소 관계도

EC2 인스턴스 구성:
┌─────────────────────────────────────────────┐
│                EC2 인스턴스                  │
│  ┌─────────┐  ┌─────────┐  ┌─────────────┐  │
│  │   CPU   │  │ 메모리  │  │ 네트워크(ENI)│  │
│  └─────────┘  └─────────┘  └─────────────┘  │
│                                             │
│  ┌─────────────────┐  ┌─────────────────┐  │
│  │ 인스턴스 스토어  │  │     EBS 볼륨     │  │
│  │   (임시 저장)   │  │   (영구 저장)    │  │
│  └─────────────────┘  └─────────────────┘  │
└─────────────────────────────────────────────┘
                    ↑
            AMI에서 시작

AMI (Amazon Machine Image)

AMI란?

AMI는 EC2 인스턴스를 생성하기 위한 템플릿입니다. OS, 애플리케이션, 설정이 모두 포함된 이미지입니다.

AMI 구성 요소

AMI 구성:
├── 루트 볼륨 템플릿
│   ├── 운영 체제 (Amazon Linux, Ubuntu, Windows 등)
│   └── 애플리케이션 및 설정
├── 시작 권한
│   └── 어떤 AWS 계정이 AMI를 사용할 수 있는지
└── 블록 디바이스 매핑
    └── 인스턴스에 연결할 볼륨 정보

AMI 유형

유형루트 디바이스특징
EBS-backedEBS 볼륨중지 가능, 데이터 유지, 느린 시작
Instance Store-backed인스턴스 스토어중지 불가, 재부팅만 가능, 빠른 시작

시험 팁

시험 포인트: 현재 대부분의 AMI는 EBS-backed입니다. Instance Store-backed AMI는 특수한 경우(고성능 임시 스토리지 필요)에만 사용합니다.

AMI 소스

AMI 소스 유형:
├── AWS 제공 AMI
│   ├── Amazon Linux 2023
│   ├── Ubuntu, Debian, RHEL
│   └── Windows Server
├── AWS Marketplace AMI
│   └── 서드파티 소프트웨어 포함 (유/무료)
├── 커뮤니티 AMI
│   └── 다른 사용자가 공유한 AMI
└── 사용자 정의 AMI
    └── 기존 인스턴스에서 직접 생성

AMI 생성 및 공유

사용자 정의 AMI 생성 흐름:
1. EC2 인스턴스 설정 완료 (소프트웨어 설치, 설정)
2. 인스턴스 중지 (권장, 데이터 일관성)
3. Actions > Create Image
4. AMI 생성 완료 (EBS 스냅샷 자동 생성)

AMI 공유:
├── 특정 계정에 공유: AMI 권한 수정
├── 퍼블릭 공유: 모든 AWS 계정에 공유
└── 다른 리전으로 복사: AMI Copy 기능

시험 팁

시험 핵심: AMI는 리전에 종속됩니다. 다른 리전에서 사용하려면 AMI를 해당 리전으로 복사해야 합니다.


EC2 인스턴스

인스턴스 생명주기

인스턴스 상태:
pending → running ⟷ stopping → stopped
              ↓
         shutting-down → terminated

상태별 특징:
├── pending: 시작 중 (요금 미청구)
├── running: 실행 중 (요금 청구)
├── stopping: 중지 중 (EBS-backed만 가능)
├── stopped: 중지됨 (인스턴스 요금 미청구, EBS 요금 청구)
├── shutting-down: 종료 중
└── terminated: 종료됨 (모든 요금 미청구)

중지 vs 종료 vs 재부팅

작업EBS 데이터인스턴스 스토어Public IPPrivate IP
재부팅(Reboot)유지유지유지유지
중지(Stop)유지삭제해제유지
종료(Terminate)설정에 따라삭제해제해제

시험 팁

시험 함정: 중지(Stop)하면 Public IP가 해제됩니다. 고정 IP가 필요하면 Elastic IP를 사용하세요.

인스턴스 유형 명명 규칙

인스턴스 유형 예시: m5.xlarge

m    5    .    xlarge
│    │         │
│    │         └── 크기 (nano, micro, small, medium, large, xlarge, 2xlarge...)
│    └── 세대 (숫자가 클수록 최신)
└── 패밀리 (용도)

패밀리:
├── 범용: t, m, a
├── 컴퓨팅 최적화: c
├── 메모리 최적화: r, x, z
├── 스토리지 최적화: d, i, h
├── 가속 컴퓨팅: p, g, inf, trn
└── HPC: hpc

EBS (Elastic Block Store)

EBS란?

EBS는 EC2 인스턴스에 연결하는 영구 블록 스토리지입니다. 인스턴스가 중지되거나 종료되어도 데이터가 유지됩니다.

EBS의 핵심 특성

EBS 특성:
├── 네트워크 연결: 물리적이 아닌 네트워크로 연결
├── AZ 종속: 동일 AZ의 인스턴스에만 연결 가능
├── 크기 변경: 실행 중에도 크기 확장 가능
├── 스냅샷: S3에 백업, 다른 AZ/리전으로 복원 가능
├── 암호화: KMS로 저장 데이터 암호화
└── 다중 연결: io1/io2만 Multi-Attach 지원

EBS 볼륨 유형

유형용도IOPS처리량사용 사례
gp3범용 SSD16,0001,000MB/s대부분의 워크로드
gp2범용 SSD16,000250MB/s레거시, gp3 권장
io2프로비저닝 IOPS256,0004,000MB/s데이터베이스
io1프로비저닝 IOPS64,0001,000MB/s레거시, io2 권장
st1처리량 최적화 HDD500500MB/s빅데이터, 로그
sc1Cold HDD250250MB/s아카이브

시험 팁

시험 포인트: gp3가 기본 권장, io2는 고성능 DB용, st1/sc1부트 볼륨 불가(HDD). gp3는 gp2보다 저렴하면서 IOPS와 처리량을 독립적으로 설정 가능합니다.

EBS 스냅샷

EBS 스냅샷:
├── S3에 저장 (관리형, 직접 접근 불가)
├── 증분 백업 (변경된 블록만 저장)
├── 다른 AZ/리전으로 복원 가능
├── AMI 생성의 기반
└── 공유 가능 (다른 계정, 퍼블릭)

스냅샷 모범 사례:
├── 정기적인 스냅샷 생성 (AWS Backup 활용)
├── 스냅샷에서 볼륨 생성 시 다른 AZ 선택 가능
└── 암호화되지 않은 스냅샷 → 암호화된 볼륨 생성 가능

루트 볼륨 삭제 동작

인스턴스 종료 시 EBS 동작:
├── 루트 볼륨: 기본값 "Delete on Termination" = Yes
│   └── 종료 시 자동 삭제
├── 추가 볼륨: 기본값 "Delete on Termination" = No
│   └── 종료 후에도 유지

중요: 데이터 보존이 필요하면 루트 볼륨도
      "Delete on Termination" = No로 변경!

인스턴스 스토어 vs EBS

비교표

특성인스턴스 스토어EBS
연결 방식물리 디스크 (직접 연결)네트워크 (가상 연결)
데이터 지속성임시 (중지/종료 시 삭제)영구 (인스턴스와 독립)
성능매우 높음 (물리 디스크)높음 (네트워크 지연)
크기 변경불가가능 (실행 중에도)
스냅샷불가가능
분리/재연결불가가능
비용인스턴스 요금에 포함별도 청구

사용 사례

인스턴스 스토어 사용:
├── 버퍼, 캐시, 임시 데이터
├── 고성능 임시 스토리지가 필요한 경우
├── 손실되어도 되는 데이터
└── 예: HPC 스크래치 디스크, Redis 캐시

EBS 사용:
├── 데이터베이스 (영구 데이터)
├── 애플리케이션 데이터
├── 부트 볼륨 (OS)
└── 대부분의 워크로드

시험 팁

시험 핵심: "데이터가 인스턴스 재시작 후에도 유지되어야 한다" → EBS "고성능 임시 스토리지가 필요하다" → 인스턴스 스토어


EC2 메타데이터와 User Data

인스턴스 메타데이터

인스턴스 내부에서 자신의 정보를 조회할 수 있습니다.

# 메타데이터 엔드포인트 (IMDSv1)
curl http://169.254.169.254/latest/meta-data/

# 조회 가능한 정보:
├── instance-id
├── instance-type
├── ami-id
├── public-ipv4
├── local-ipv4
├── iam/security-credentials/<role-name>  # IAM 역할 임시 자격 증명
└── ...

시험 팁

시험 포인트: IMDSv2(토큰 기반)가 보안상 권장됩니다. 메타데이터를 통해 IAM 역할의 임시 자격 증명을 얻을 수 있어, EC2에 자격 증명을 하드코딩할 필요가 없습니다.

User Data (사용자 데이터)

인스턴스 시작 시 자동으로 실행되는 스크립트입니다.

#!/bin/bash
# User Data 예시
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "Hello from EC2" > /var/www/html/index.html
User Data 특성:
├── 첫 번째 부팅 시에만 실행 (기본값)
├── root 권한으로 실행
├── 최대 16KB
├── Base64 인코딩으로 전달
└── 로그 위치: /var/log/cloud-init-output.log

보안 그룹

보안 그룹이란?

보안 그룹은 EC2 인스턴스의 가상 방화벽입니다. 인바운드/아웃바운드 트래픽을 제어합니다.

보안 그룹 특성:
├── 상태 저장(Stateful): 응답 트래픽 자동 허용
├── 허용 규칙만 지정 (Deny 규칙 없음)
├── 기본 인바운드: 모든 트래픽 차단
├── 기본 아웃바운드: 모든 트래픽 허용
├── 여러 인스턴스에 연결 가능
└── 여러 보안 그룹을 하나의 인스턴스에 연결 가능

보안 그룹 규칙 예시

유형프로토콜포트소스용도
SSHTCP22My IP관리자 접근
HTTPTCP800.0.0.0/0웹 서버
HTTPSTCP4430.0.0.0/0웹 서버 (SSL)
CustomTCP3306sg-xxxRDS 접근 (SG 참조)

시험 팁

시험 포인트: 보안 그룹은 다른 보안 그룹을 소스로 참조할 수 있습니다. 이렇게 하면 IP 변경에 관계없이 특정 그룹의 인스턴스만 접근을 허용할 수 있습니다.


시험 출제 포인트

자주 나오는 문제 유형

유형핵심 포인트
데이터 지속성EBS = 영구, 인스턴스 스토어 = 임시
AMI 리전AMI는 리전 종속, 다른 리전 사용 시 복사 필요
인스턴스 중지EBS 데이터 유지, 인스턴스 스토어 삭제, Public IP 해제
부트 볼륨gp2, gp3, io1, io2만 가능 (HDD 불가)
메타데이터169.254.169.254에서 조회, IAM 역할 자격 증명 포함
보안 그룹Stateful, 허용 규칙만, SG 참조 가능

오답 함정

❌ 인스턴스 스토어 데이터는 재부팅 후에도 유지된다
   → 재부팅은 유지, 중지/종료는 삭제

❌ AMI를 다른 리전에서 바로 사용할 수 있다
   → AMI는 리전 종속, 복사 필요

❌ EBS 볼륨은 다른 AZ의 인스턴스에 연결할 수 있다
   → EBS는 AZ 종속, 스냅샷으로 다른 AZ에 복원

❌ 보안 그룹에서 Deny 규칙을 설정할 수 있다
   → 보안 그룹은 Allow만 가능, NACL은 Deny 가능

❌ st1 볼륨을 부트 볼륨으로 사용할 수 있다
   → HDD(st1, sc1)는 부트 볼륨 불가

FAQ

Q1: EC2 인스턴스를 중지하면 요금이 청구되나요?

인스턴스 요금은 청구되지 않습니다. 단, 연결된 EBS 볼륨Elastic IP(연결 안 된 경우) 요금은 계속 청구됩니다.

Q2: AMI와 스냅샷의 차이점은 무엇인가요?

스냅샷은 EBS 볼륨의 백업입니다. AMI는 스냅샷 + 메타데이터(시작 권한, 블록 디바이스 매핑)로 구성됩니다. AMI에서 인스턴스를 직접 시작할 수 있지만, 스냅샷에서는 먼저 볼륨을 생성해야 합니다.

Q3: EBS 볼륨 크기를 줄일 수 있나요?

아니요, EBS 볼륨 크기는 확장만 가능합니다. 크기를 줄이려면 더 작은 볼륨을 생성하고 데이터를 복사해야 합니다.

Q4: 인스턴스 스토어가 있는 인스턴스 유형을 어떻게 알 수 있나요?

인스턴스 유형 이름에 **'d'**가 포함되면 인스턴스 스토어가 있습니다. 예: m5d.large, c5d.xlarge, r5d.4xlarge. 또는 AWS 콘솔/문서에서 확인할 수 있습니다.

Q5: EBS Multi-Attach란 무엇인가요?

io1/io2 볼륨을 동일 AZ의 여러 인스턴스에 동시 연결하는 기능입니다. 클러스터 파일 시스템이 필요하며, 최대 16개 인스턴스에 연결 가능합니다. 일반적인 파일 시스템에서는 데이터 손상 위험이 있어 주의가 필요합니다.


마무리

EC2는 AWS의 핵심 컴퓨팅 서비스입니다. 핵심 포인트:

  1. AMI: 서버 템플릿, 리전 종속, EBS 스냅샷 기반
  2. 인스턴스: 가상 서버, 중지/종료/재부팅 동작 이해
  3. EBS: 영구 스토리지, AZ 종속, 스냅샷으로 백업
  4. 인스턴스 스토어: 임시 스토리지, 고성능, 중지 시 삭제
  5. 보안 그룹: Stateful 방화벽, 허용 규칙만

다음으로 EC2 인스턴스 유형 선택 가이드EC2 요금제 비교를 학습하면 EC2 관련 내용을 완성할 수 있습니다.