3 분 소요

I. EC2 란?

Elastic Compute Cloud : AWS에서 제공하는 가상 서버(IaaS).

EC2를 사용한다는 것은 아래 구성요소를 선택하여 가상 머신을 빌려 사용하는 것이다.

  • OS : Linux, Windows, macOS
  • CPU : 코어 수
  • RAM : 메모리 용량
  • Storage : 네트워크 연결 스토리지(EBS, EFS) 또는 인스턴스 로컬 스토리지(Instance Store)
  • Network : 네트워크 카드 속도, Public IP 여부
  • Firewall : Security Group
  • Bootstrap Script : EC2 User Data (최초 실행 시 1회 실행되는 스크립트)

II. EC2 User Data

인스턴스가 처음 시작될 때 딱 1번 실행되는 부트스트랩 스크립트.

주로 아래 작업에 사용한다.

  • 패키지 업데이트 / 소프트웨어 설치
  • 파일 다운로드
  • 기타 초기 설정

User Data 스크립트는 root 유저 권한으로 실행된다.


III. EC2 인스턴스 유형

인스턴스 이름 예시 : m5.2xlarge

  • m : 인스턴스 클래스
  • 5 : 세대 (숫자가 높을수록 최신)
  • 2xlarge : 크기 (small → medium → large → xlarge → 2xlarge …)

1. General Purpose (범용)

  • 균형 잡힌 컴퓨팅 / 메모리 / 네트워크
  • 웹 서버, 코드 저장소 등에 적합
  • ex) t, m 계열

2. Compute Optimized (컴퓨팅 최적화)

  • 고성능 CPU가 필요한 작업에 적합
  • 배치 처리, 미디어 트랜스코딩, 고성능 웹 서버, ML 추론
  • ex) c 계열

3. Memory Optimized (메모리 최적화)

  • 대용량 데이터를 메모리에서 처리할 때 적합
  • 고성능 DB, 인메모리 캐시(Redis), 실시간 빅데이터 처리
  • ex) r, x, z 계열

4. Storage Optimized (스토리지 최적화)

  • 로컬 스토리지에 대한 높은 읽기/쓰기 처리가 필요할 때 적합
  • OLTP, NoSQL DB, 데이터 웨어하우스, 분산 파일 시스템
  • ex) i, d, h 계열

IV. Security Groups (보안 그룹)

EC2의 네트워크 방화벽 역할. Inbound/Outbound 트래픽을 제어한다.

  • Allow 규칙만 존재 (Deny 규칙 없음)
  • IP(CIDR) 또는 다른 Security Group을 참조하여 규칙 설정 가능
  • 여러 인스턴스에 동시에 적용 가능하고, 하나의 인스턴스에 여러 Security Group 적용 가능
  • Region/VPC 단위로 묶임 → 다른 Region/VPC에서는 재생성 필요
  • EC2 밖에 위치하기 때문에, EC2는 차단된 트래픽을 볼 수 없음

기본 동작

| 방향 | 기본값 | |——|——–| | Inbound | 모두 차단 | | Outbound | 모두 허용 |

주요 포트

| Port | 프로토콜 | 용도 | |——|———-|——| | 22 | SSH | Linux 인스턴스 접속 | | 21 | FTP | 파일 업로드 | | 22 | SFTP | SSH를 통한 파일 업로드 | | 80 | HTTP | 웹 접속 | | 443 | HTTPS | 보안 웹 접속 | | 3389 | RDP | Windows 인스턴스 접속 |

연결 시 time out 오류 → Security Group 문제
connection refused 오류 → 애플리케이션 문제 (Security Group은 정상)


V. EC2 접속 방법

1. SSH

  • Linux/macOS : ssh -i keypair.pem ec2-user@<public-ip>
  • 키 페어(.pem 파일)의 권한을 chmod 0400으로 설정해야 함

2. EC2 Instance Connect

  • 브라우저에서 바로 SSH 접속
  • Amazon Linux 2 이상에서 지원
  • 별도의 키 없이 접속 가능하지만, 포트 22는 Security Group에서 열려 있어야

VI. EC2 구매 옵션

1. On-Demand

  • 사용한 만큼 초/시간 단위 과금
  • 예측 불가능한 워크로드, 단기 작업에 적합
  • 가격이 가장 비쌈

2. Reserved Instances

  • 1년 또는 3년 약정으로 최대 72% 할인
  • 일정하고 예측 가능한 워크로드에 적합
  • Standard RI : 인스턴스 타입 변경 불가, 할인율 높음
  • Convertible RI : 인스턴스 타입 변경 가능, 할인율 낮음 (최대 66%)

3. Savings Plans

  • 특정 사용량($/hr)을 1년 또는 3년 약정으로 커밋
  • 최대 72% 할인
  • 인스턴스 타입/OS/리전에 유연하게 적용 가능

4. Spot Instances

  • 미사용 EC2 용량을 경매 방식으로 저렴하게 사용
  • 최대 90% 할인이지만, AWS가 언제든 회수(중단) 할 수 있음
  • 중단에 강한 워크로드에 적합 (배치 작업, 데이터 분석, 이미지 처리)
  • 중요 작업이나 DB에는 절대 사용 금지

5. Dedicated Hosts

  • 물리 서버 전체를 점유
  • 라이선스 규정(BYOL: Bring Your Own License)이 있는 소프트웨어에 필요
  • 가장 비쌈

6. Dedicated Instances

  • 나만의 물리 하드웨어에서 실행되지만, 같은 계정의 다른 인스턴스와 하드웨어 공유 가능
  • Dedicated Host보다 저렴하지만 물리 서버 제어권 없음

구매 옵션 비유 요약

옵션 비유
On-Demand 호텔 : 원할 때 들어와서 나가고 풀 프라이스 지불
Reserved 장기 숙박 계약 : 오래 살수록 할인
Savings Plans 일정 금액 선불 결제 후 유연하게 사용
Spot 빈 방 경매 : 저렴하지만 호텔이 필요하면 내보낼 수 있음
Dedicated Host 건물 전체 임대

VII. AMI (Amazon Machine Image)

EC2 인스턴스의 커스터마이징 이미지 (OS + 소프트웨어 설정이 포함된 템플릿).

AMI를 통해 인스턴스를 빠르게 시작할 수 있고, 부트스트랩 시간을 단축할 수 있다.

AMI 종류

  • AWS 제공 AMI : Amazon Linux 2, Ubuntu 등
  • AWS Marketplace AMI : 제3자가 만들어서 판매하는 AMI
  • Custom AMI : 사용자가 직접 만든 AMI → 같은 Region 내에서만 사용 가능
    (다른 Region 사용 시 복사 필요)

Custom AMI 생성 흐름

  1. EC2 인스턴스 실행
  2. 필요한 소프트웨어 설치 및 설정
  3. 인스턴스 중지 (데이터 무결성 보장)
  4. AMI 생성 (EBS 스냅샷도 함께 생성됨)
  5. 해당 AMI로 새 인스턴스 실행

VIII. EC2 Instance Store

EBS는 네트워크를 통해 연결된 스토리지인 반면,
Instance Store는 물리적으로 EC2에 붙어있는 로컬 디스크이다.

  • 매우 높은 I/O 성능
  • 인스턴스가 중지/종료되면 데이터 삭제 (ephemeral, 임시 스토리지)
  • 버퍼 / 캐시 / 임시 데이터 저장에 적합
  • 장기 보존 데이터는 반드시 EBS 또는 S3에 저장할 것