1. EBS (Elastic Block Store) - 네트워크 연결 스토리지
✅ EBS란?
EBS는 EC2 인스턴스에 네트워크를 통해 연결되는 저장 장치이다.
즉, EC2 인스턴스가 실행 중일 때, 하드디스크처럼 사용할 수 있는 AWS의 클라우드 기반 스토리지라고 보면 된다.
✅ EBS의 특징
- EC2와 독립적인 네트워크 저장소 → 인스턴스를 중지하거나 종료해도 데이터가 유지된다.
- AZ(가용 영역, Availability Zone) 종속적 → 한 AZ에서 생성한 EBS는 다른 AZ에서 사용할 수 없다.
- 하나의 EBS는 한 개의 인스턴스에만 연결 가능 → 다중 인스턴스 공유 불가 (다만 io1/io2 볼륨의 경우 멀티-어태치 기능을 제공).
✅ EBS의 활용 사례
- OS 및 애플리케이션 설치 공간
- 데이터베이스 저장소 (MySQL, PostgreSQL, Oracle 등)
- 지속적인 데이터 보관이 필요한 서비스
✅ EBS 삭제 정책
- 기본적으로 EC2 인스턴스를 삭제하면 루트 볼륨(EBS)도 삭제됨.
- 추가로 연결한 EBS는 삭제되지 않음(설정 변경 가능).
✅ EBS 스냅샷 (백업)
- 특정 시점의 데이터를 스냅샷(Snapshot) 형태로 백업 가능.
- 스냅샷을 활용하면 AZ나 리전 간 이동 가능 → 다른 리전에 복사하여 DR(재해 복구) 환경 구축 가능.
✅ EBS를 선택해야 하는 경우
- EC2에 일반적인 데이터 저장 공간이 필요할 때
- 인스턴스를 재시작해도 데이터가 유지되어야 할 때
- 데이터베이스 저장 공간이 필요할 때 (MySQL, PostgreSQL 등)
2. Instance Store - 로컬 디스크
✅ Instance Store란?
Instance Store는 EC2 인스턴스 내부에 직접 연결된 하드디스크 같은 저장소이다.
EBS와의 차이점은?
- 네트워크 스토리지(EBS)와 달리, 로컬 디스크이므로 속도가 매우 빠름.
- 하지만 인스턴스를 중지하거나 종료하면 데이터가 사라짐(휘발성).
- EC2가 새롭게 시작되면, Instance Store에 있던 데이터는 초기화됨.
✅ Instance Store의 특징
- 고속 데이터 처리 가능 (IOPS 성능 우수)
- EBS보다 지연시간이 짧고 성능이 뛰어남
- 데이터 유실 가능성이 있음 → 지속적인 저장이 필요한 데이터에는 적합하지 않음.
✅ Instance Store의 활용 사례
- 임시 파일 저장소 (캐시, 로그, 세션 데이터)
- 데이터베이스의 임시 저장 공간 (예: Redis, Memcached)
- 비디오 렌더링, 머신러닝 학습 데이터 저장
✅ Instance Store를 선택해야 하는 경우
- 고속 데이터 처리가 필요한 경우 (로깅, 캐시, 일시적인 데이터 저장)
- 데이터가 사라져도 상관없는 경우 (예: 웹서버의 캐시, 비디오 렌더링)
3.AMI (Amazon Machine Image)- EC2 인스턴스 템플릿
✅ AMI (Amazon Machine Image)란?
AMI(Amazon Machine Image)는 **EC2 인스턴스를 생성할 때 사용할 수 있는 "미리 구성된 템플릿"이다.
즉, 운영체제(OS), 애플리케이션, 설정 등을 포함한 EC2의 복제본으로, 동일한 환경을 여러 개의 인스턴스로 빠르게 배포할 수 있다.
✅ AMI의 특징
- EC2 인스턴스를 쉽게 복제 가능 → 동일한 설정을 가진 인스턴스를 여러 개 배포 가능.
- 운영체제(OS), 애플리케이션, 설정 포함 → 미리 패키징된 환경으로 빠른 배포 가능.
- 부팅 및 구성 시간 단축 → 소프트웨어가 사전 설치되어 있어 즉시 실행 가능.
- 리전에 종속됨 → 특정 리전에서 만든 AMI는 다른 리전에서 바로 사용 불가 (하지만 복사 가능).
✅ AMI의 유형
유형 | 사용 | 사례 |
Public AMI | AWS에서 제공하는 기본 AMI 또는 다른 사용자가 공유한 AMI | Amazon Linux, Ubuntu, Windows 등 기본 OS 제공 |
Private AMI | 사용자가 직접 생성하고 특정 AWS 계정과만 공유 가능 | 회사 내부 시스템, 보안이 중요한 애플리케이션 |
AWS Marketplace AMI | 서드파티 업체가 제공하는 AMI (유료/무료) | 상용 소프트웨어 포함 (예: 보안 소프트웨어, 데이터베이스 서버) |
✅ AMI 생성 및 사용 프로세스
- EC2 인스턴스를 실행하고 환경을 커스터마이징
- 운영체제(OS) 설정
- 애플리케이션 설치
- 보안 및 네트워크 설정
- EC2 인스턴스를 중지 (데이터 무결성 유지)
- 실행 중인 상태에서 스냅샷을 찍으면 데이터 손상 가능성이 있으므로 중지한 후 진행.
- AMI 생성 (EBS 스냅샷 포함)
- AMI를 생성하면 루트 볼륨을 포함한 모든 데이터가 이미지로 저장됨.
- 다른 인스턴스에서 해당 AMI를 사용하여 새로운 EC2 인스턴스 실행
- 동일한 설정을 가진 여러 개의 인스턴스를 빠르게 배포 가능.
https://miro.medium.com/v2/resize:fit:1100/format:webp/1*HL2KHJRB0GUsE8qF1881hQ.png
- 동일한 설정을 가진 여러 개의 인스턴스를 빠르게 배포 가능.
4. EFS (Elastic File System) - 공유 파일 시스템
✅ EFS란?
EFS는 여러 개의 EC2 인스턴스에서 동시에 접근할 수 있는 네트워크 파일 시스템(NFS)이다.
즉, 여러 서버가 하나의 파일 시스템을 공유할 수 있게 해준다.
✅ EFS의 특징
- 멀티 AZ 지원 → 한 리전 내 여러 가용 영역(AZ)에서 동시에 접근 가능.
- 자동 확장 → 저장 용량을 직접 설정할 필요 없이, 데이터 증가에 따라 자동 확장됨.
- POSIX 호환 (리눅스 지원) → 리눅스 기반의 파일 시스템을 사용.
- 비용이 EBS보다 비쌈 → 하지만, Infrequent Access(EFS-IA) 같은 티어를 사용하면 비용 절감 가능.
✅ EFS의 활용 사례
- 웹 서버의 정적 파일 저장소 (예: Wordpress, Drupal, Joomla)
- 다수의 서버에서 공유해야 하는 파일 시스템 (예: 개발 환경, 빅데이터 분석)
- 머신러닝 모델 및 로그 파일 저장
✅ EFS 성능 모드
- General Purpose(일반적인 웹/애플리케이션 서버용)
- Max I/O(빅데이터, 고성능 병렬 처리 작업용)
✅ EFS 저장소 티어
- Standard (기본값) → 자주 접근하는 데이터 저장
- Infrequent Access (EFS-IA) → 가끔 접근하는 데이터 (비용 절감)
- Archive → 거의 사용하지 않는 데이터 (저장 비용 50% 절감 가능)
✅ EFS를 선택해야 하는 경우
- 여러 개의 EC2 인스턴스가 동일한 데이터에 접근해야 할 때
- 웹 서버(Wordpress, Django, Flask 등)에서 공유 파일을 저장해야 할 때
- 데이터를 자동으로 확장하고 싶을 때
5. EBS vs EFS 비교 정리
항목 | EBS (Elastic Block Store) | EFS (Elastic File System) |
주요 특징 | 네트워크 연결 블록 스토리지 | 공유 파일 시스템 (NFS) |
멀티 AZ 지원 | ❌ (AZ 종속) | ✅ (멀티 AZ 가능) |
인스턴스 종료 후 데이터 유지 | ✅ 유지됨 | ✅ 유지됨 |
공유 가능 여부 | ❌ 불가능 (한 인스턴스에만 연결) | ✅ 가능 (여러 인스턴스 공유) |
스토리지 확장 | 크기 수동 변경 필요 | 자동 확장 |
지연 시간 | 네트워크 기반 (약간의 지연) | 네트워크 기반 (약간의 지연) |
비용 | 중간 | 비쌈 |
사용 사례 | OS, 데이터베이스 저장소, 일반 데이터 보관 | 웹 서버, 개발 환경, 다중 서버 파일 공유 |