EC2 vs S3 비교 & 아키텍처
1. EC2 vs S3 차이
항목 | EC2 (Elastic Compute Cloud) | S3 (Simple Storage Service) |
---|---|---|
주 목적 | 가상 서버 (컴퓨팅 파워 제공) | 객체 스토리지 (파일 저장용) |
역할 | 웹서버, 앱서버, DB서버 실행 | 이미지, 백업, 정적 파일 저장 |
데이터 저장 방식 | 내부 디스크 (EBS) | 객체 단위 저장 (key-value 구조) |
접근 방식 | SSH 접속, 서버 실행 | HTTP/HTTPS 업로드/다운로드 |
운영체제 | Linux/Windows 등 설치 가능 | 운영체제 없음 |
요금 기준 | 사용 시간, 인스턴스 스펙 | 저장 용량, 요청 수, 전송량 |
예시 | 웹 앱, API 서버 구동 | 이미지, 백업, 정적 웹 호스팅 등 |
2. 차이점
- EC2 = 서버
- 내가 쓰는 컴퓨터와 유사
- 프로그램 설치 및 실행 가능
- 디스크(EBS)는 보조 저장소
- S3 = 클라우드 드라이브
- 구글 드라이브처럼 파일 저장에 최적
- 서버 없어도 이미지 업로드/공유 가능
- 대용량 정적 콘텐츠 배포에 적합
3. 둘 다 저장소 기능 포함하지만
항목 | 설명 |
---|---|
EC2 | 주로 코드 실행 및 처리 에 사용, 저장은 부가 기능 |
S3 | 저장 자체가 주 기능, 실행 기능 없음 |
4. 비유
항목 | 비유 |
---|---|
EC2 | 내가 직접 사용하는 컴퓨터 (앱 설치 후 실행) |
S3 | 구글 드라이브 (파일 저장 및 다운로드 전용) |
5. EC2 + S3 사용 예시
시나리오: 이미지 업로드 웹 애플리케이션
[사용자 브라우저]
↓ 요청
[EC2 웹서버]
↓ 업로드 처리 (Java, Node, Python 등)
[S3 버킷]
↑ 이미지 저장
구성 요소
구성 요소 | 역할 |
---|---|
EC2 인스턴스 | 웹서버/API 서버 실행 (예: Spring, Express 등) |
S3 버킷 | 업로드된 파일 저장소 |
IAM 역할 | EC2가 S3에 접근할 수 있는 권한 부여 |
보안 그룹 | EC2에 외부에서 접속 허용 (80/443포트) |
(선택) CloudFront | 전 세계로 빠르게 이미지 전송 (CDN 기능) |
- 블로그에서 이미지 업로드 기능
- EC2에서 백업 스크립트로 정기적으로 S3에 로그 저장
- 웹 앱의 프론트엔드 정적 파일을 S3에 배포하고 CloudFront로 캐싱
- EC2 ↔ S3 연결 시 IAM Role 사용이 권장된다. (보안)
- 또한 보안 관련하여 S3 버킷은 퍼블릭 액세스 차단이 기본이라고 한다.
- 업로드 URL을 클라이언트에 줄 경우 Presigned URL 사용
6. 정리
- EC2는 실행, 처리 중심
- S3는 저장, 보관 중심
- 둘을 함께 사용하면 서버는 가볍고, 저장은 안전하게 가능