
EC2 완전 정복: CPU와 RAM부터 가상화, 그리고 클라우드 서버까지
CPU, RAM, SSD가 무엇인지부터 시작해서, 이것들이 어떻게 가상화되어 EC2라는 '주문형 컴퓨터'가 되었는지를 차근차근 풀어본다. 클라우드 서버의 실체를 이해하는 가장 쉬운 가이드.

CPU, RAM, SSD가 무엇인지부터 시작해서, 이것들이 어떻게 가상화되어 EC2라는 '주문형 컴퓨터'가 되었는지를 차근차근 풀어본다. 클라우드 서버의 실체를 이해하는 가장 쉬운 가이드.
AWS 콘솔에서 "Launch Instance" 버튼을 누르면, 약 30초 뒤에 서버 한 대가 생긴다. 서울에 있는 당신의 노트북에서 버지니아, 도쿄, 프랑크푸르트 — 세계 어디든 — 에 컴퓨터를 만들 수 있다. 필요 없어지면 클릭 한 번으로 사라진다. 사용한 시간만큼만 비용이 청구된다.
이것이 EC2(Elastic Compute Cloud)다. AWS의 가장 핵심적인 서비스이자, 클라우드 컴퓨팅을 대표하는 서비스.
하지만 이 "가상의 컴퓨터"는 도대체 어떻게 작동하는 걸까? 진짜 물리적 컴퓨터가 어딘가에 있는 건가? 그렇다면 물리적 컴퓨터의 부품들은 어떻게 "가상화"되는 건가?
이 글에서는 컴퓨터를 구성하는 기본 부품부터 시작해서, 가상화가 무엇인지, 그리고 이것이 어떻게 EC2로 이어졌는지를 하나씩 풀어보겠다.
EC2를 이해하려면, 먼저 컴퓨터가 무엇으로 이루어져 있는지 알아야 한다. 핵심 부품은 4가지다.
CPU(Central Processing Unit)는 컴퓨터의 두뇌다. 모든 계산과 명령 실행을 담당한다.
사람으로 비유하면 머리다. 수학 문제를 풀고, 판단을 내리고, 지시를 처리한다. CPU가 빠를수록 계산을 더 빨리 끝낸다.
CPU의 성능을 결정하는 두 가지:
오늘날의 서버용 CPU는 코어가 64개, 128개까지 들어간다. AWS EC2에서 "vCPU"라고 부르는 것이 바로 이 코어(또는 하이퍼스레드)에 해당한다.
RAM(Random Access Memory)은 컴퓨터의 단기 기억, 즉 작업 책상이다.
책상이 넓으면 동시에 여러 서류를 펼쳐놓고 작업할 수 있다. 책상이 좁으면 한 서류를 서랍에 넣고 다른 서류를 꺼내야 한다. RAM이 많을수록 더 많은 프로그램과 데이터를 동시에 처리할 수 있다.
RAM의 핵심 특징:
서버용 RAM은 보통 64GB~1TB, 고성능 인스턴스는 수 TB까지 장착한다.
데이터를 영구적으로 저장하는 장치다. 두 종류가 있다.
HDD(Hard Disk Drive) — 전통적인 저장 장치:
회전하는 금속 원판(플래터) 위에 자기 헤드가 데이터를 읽고 쓴다. LP 레코드판에 바늘이 음악을 읽는 것과 비슷하다.
SSD(Solid State Drive) — 반도체 기반 저장 장치:
움직이는 부품 없이 반도체 칩(NAND 플래시)에 전기적으로 데이터를 저장한다. USB 메모리의 고급 버전이라고 생각하면 된다.
2026년 현재, 대부분의 서버와 클라우드 인스턴스는 SSD를 기본으로 사용한다. HDD는 대용량 아카이브나 백업 같은 특수한 용도에서만 쓰인다.
NIC(Network Interface Card)는 컴퓨터를 네트워크에 연결하는 장치다. 도시로 비유하면 도로다. 도로가 넓을수록 더 많은 차가 동시에 다닐 수 있다.
이 부품들은 다음과 같이 협력한다:
CPU가 프로그램을 실행하면, 필요한 데이터를 SSD에서 RAM으로 가져온다(느린 서랍에서 빠른 책상 위로). CPU는 RAM에 있는 데이터를 처리하고, 결과를 다시 SSD에 저장한다. 외부와 통신이 필요하면 NIC을 통해 데이터를 보내고 받는다.
이것이 모든 컴퓨터 — 노트북이든, 게임 PC이든, 데이터센터의 서버이든 — 의 기본 구조다. EC2 인스턴스도 결국 이 구조 위에 만들어진다.
데이터센터의 물리 서버 한 대를 상상해 보자. CPU 64코어, RAM 256GB, SSD 2TB의 고성능 서버다.
이 서버에 웹 애플리케이션 하나를 올렸다. 평소 트래픽에서 이 앱이 쓰는 자원은 CPU 4코어, RAM 16GB 정도. 나머지 94%의 자원은 놀고 있다.
그런데 보안상의 이유로 한 서버에 여러 애플리케이션을 그냥 올릴 수는 없다. A 서비스의 버그가 B 서비스를 죽일 수 있고, A의 데이터를 B가 볼 수도 있다. 그래서 서비스마다 물리 서버를 따로 썼고, 이것이 바로 평균 서버 사용률이 15~25%에 불과했던 이유다.
"한 대의 물리 서버를 여러 대의 독립된 컴퓨터처럼 쓸 수는 없을까?"
이 질문에 대한 대답이 가상화(Virtualization) 기술이다.
가상화의 핵심은 하이퍼바이저(Hypervisor) 라는 소프트웨어다.
하이퍼바이저는 물리 서버의 하드웨어 위에 설치되어, CPU·RAM·스토리지·네트워크를 여러 조각으로 나누고, 각 조각을 독립된 컴퓨터처럼 작동하게 만든다. 이렇게 만들어진 가상의 컴퓨터를 가상 머신(Virtual Machine, VM)이라고 부른다.
아파트에 비유하면 이렇다:
각 세대 주민은 자기가 독립된 집에 사는 것처럼 느낀다. 옆집에 누가 사는지 모르고, 옆집의 소음이나 문제가 내 집에 영향을 주지 않는다. 하이퍼바이저가 이 격리(isolation) 를 보장한다.
가상화 이전과 이후를 비교하면:
가상화는 온프레미스 데이터센터의 효율성을 극적으로 높였다. 하지만 여전히 물리 서버를 직접 사고, 데이터센터를 직접 운영해야 했다.
"이 가상화 기술을 인터넷을 통해 누구에게나 제공하면 어떨까?"
이것이 바로 EC2의 핵심 아이디어다.
EC2는 AWS가 전 세계 데이터센터에서 운영하는 물리 서버들을 가상화하여, 인터넷을 통해 누구에게나 가상 머신을 빌려주는 서비스다.
이름을 풀어보면:
EC2에서 빌리는 가상 머신 하나를 "인스턴스(Instance)" 라고 부른다. "서버 한 대를 빌린다"를 AWS 용어로 말하면 "EC2 인스턴스 하나를 실행한다"가 된다.
EC2 인스턴스를 시작하면, AWS의 데이터센터 어딘가에 있는 물리 서버에서 하이퍼바이저가 지정된 만큼의 자원을 할당한다:
사용자 입장에서는 완전한 한 대의 컴퓨터를 받은 것처럼 보인다. 리눅스나 윈도우를 설치할 수 있고, SSH로 접속할 수 있고, 원하는 소프트웨어를 자유롭게 설치할 수 있다.
EC2의 강력한 점은 수백 가지의 인스턴스 타입 중에서 용도에 맞는 것을 고를 수 있다는 것이다. 인스턴스 타입은 CPU, RAM, 스토리지, 네트워크의 비율이 다르다.
인스턴스 타입의 이름은 규칙이 있다. 예를 들어 m7i.xlarge:
주요 패밀리를 살펴보면:
| 패밀리 | 이름 | CPU:RAM 비율 | 용도 | 비유 |
|---|---|---|---|---|
| t | 버스트 | 가변 | 소규모 웹, 개발 환경 | 평소엔 조용하다가 필요할 때만 전력 질주하는 러너 |
| m | 범용 | 1:4 | 대부분의 워크로드 | 밸런스 잡힌 올라운더 |
| c | 컴퓨팅 최적화 | 1:2 | 과학 계산, 게임 서버, 인코딩 | 두뇌가 큰 수학자 |
| r | 메모리 최적화 | 1:8 | 인메모리 DB, 캐시 서버 | 책상이 넓은 연구원 |
| i | 스토리지 최적화 | 로컬 NVMe | 고속 I/O, 데이터 웨어하우스 | 거대한 서랍장을 가진 사서 |
| g/p | GPU | GPU 탑재 | AI 학습, 그래픽 렌더링 | 병렬 처리에 특화된 공장 |
같은 "xlarge" 크기라도 패밀리에 따라 스펙이 다르다:
| 인스턴스 | vCPU | RAM | 시간당 비용 (서울, 온디맨드) |
|---|---|---|---|
| t3.xlarge | 4 | 16 GB | ~$0.2048 |
| m7i.xlarge | 4 | 16 GB | ~$0.2520 |
| c7i.xlarge | 4 | 8 GB | ~$0.2142 |
| r7i.xlarge | 4 | 32 GB | ~$0.3192 |
c7i.xlarge는 같은 4 vCPU에 RAM이 8GB로 적은 대신 CPU 성능이 높고, r7i.xlarge는 RAM이 32GB로 넉넉한 대신 비용이 높다. 워크로드의 특성에 맞는 타입을 고르는 것이 비용 최적화의 핵심이다.
초기 EC2는 Xen이라는 오픈소스 하이퍼바이저를 사용했다. 하지만 하이퍼바이저가 CPU와 네트워크 자원의 상당 부분을 소비하는 문제가 있었다. 가상화의 "세금"이 높았던 것이다.
2017년부터 AWS는 Nitro System이라는 자체 하이퍼바이저를 도입했다. Nitro의 핵심 아이디어: 가상화에 필요한 기능들을 전용 하드웨어 칩으로 분리한 것이다.
Nitro System 덕분에 물리 서버의 CPU를 거의 100% 고객의 워크로드에 사용할 수 있게 됐다. 보안도 강화됐다 — Nitro Security Chip이 하드웨어 수준에서 각 인스턴스를 격리한다. AWS 직원조차 실행 중인 인스턴스의 메모리에 접근할 수 없다.
EC2 인스턴스를 시작하면 내부적으로 무슨 일이 일어나는지 따라가 보자:
여기서 중요한 개념 몇 가지:
AMI(Amazon Machine Image): 인스턴스의 "스냅샷"이다. 운영체제, 설치된 소프트웨어, 설정이 담긴 템플릿. 마치 컴퓨터의 "복원 이미지"와 같다. Ubuntu, Amazon Linux, Windows Server 등의 공식 AMI를 쓸 수도 있고, 자신이 설정한 환경을 AMI로 저장해 재사용할 수도 있다.
중지(Stop) vs 종료(Terminate): 중지는 컴퓨터를 끄는 것이다. CPU와 RAM은 반환되지만 디스크(EBS)는 유지된다. 다시 시작하면 같은 데이터가 있다. 종료는 컴퓨터를 폐기하는 것이다. 모든 것이 삭제된다.
EC2의 스토리지는 두 가지 방식이 있다:
대부분의 경우 EBS를 사용한다. 인스턴스가 사라져도 데이터는 살아남아야 하기 때문이다. 인스턴스 스토어는 속도가 필요하지만 데이터 유실이 괜찮은 경우(캐시, 임시 파일)에 사용한다.
EC2의 비용은 기본적으로 인스턴스가 실행된 시간에 비례한다. 하지만 같은 인스턴스라도 계약 방식에 따라 비용이 크게 달라진다:
| 모델 | 설명 | 할인율 | 비유 |
|---|---|---|---|
| 온디맨드 | 사용한 초 단위로 과금. 약정 없음 | 기준 가격 | 택시 |
| 예약 인스턴스 | 1~3년 약정. 선결제 옵션 | 최대 72% 할인 | 월정액 교통카드 |
| Savings Plans | 시간당 사용량 약정. 유연한 인스턴스 변경 | 최대 66% 할인 | 통신비 약정 |
| 스팟 인스턴스 | AWS의 유휴 용량을 경매 방식으로 | 최대 90% 할인 | 땡처리 항공권 |
스팟 인스턴스는 특히 흥미롭다. AWS 데이터센터의 유휴 자원을 할인된 가격에 제공하지만, AWS가 해당 용량을 필요로 하면 2분 전 통보 후 회수할 수 있다. 중단돼도 괜찮은 배치 처리, AI 모델 학습, 대규모 데이터 분석에 적합하다.
소규모 웹 서비스를 예로 들어보자:
구성: t3.medium (2 vCPU, 4GB RAM) 1대 + EBS 50GB (gp3)
| 과금 모델 | 월간 비용 (서울 리전) |
|---|---|
| 온디맨드 (24시간 × 30일) | ~$74 |
| 예약 인스턴스 (1년, 선결제 없음) | ~$47 |
| 예약 인스턴스 (3년, 전액 선결제) | ~$29 |
| 스팟 (평균) | ~$22 |
같은 컴퓨터인데 계약 방식에 따라 3배 이상 차이가 난다. 이것이 클라우드 비용 최적화가 중요한 이유다.
참고로 온프레미스에서 비슷한 스펙의 서버를 구매한다면, 하드웨어 비용만 수백만 원에 전기료·인건비·냉각비가 추가된다. 단, 3~5년 이상 24/7로 풀가동한다면 온프레미스가 더 저렴해지는 손익분기점이 존재한다.
실제로 EC2 인스턴스를 시작하는 과정을 단계별로 살펴보자. AWS 콘솔 기준이다.
운영체제를 고른다. 가장 흔한 선택지:
앞서 설명한 패밀리와 크기를 조합해서 고른다. 처음이라면 t3.micro (1 vCPU, 1GB RAM)로 시작하자. 프리 티어 대상이라 월 750시간까지 무료다.
EBS 볼륨의 크기와 타입을 정한다. 기본 8GB gp3면 대부분의 테스트에 충분하다.
SSH 접속을 위한 키 페어를 생성한다. .pem 파일을 다운로드하고 절대 분실하지 않도록 보관한다. 이 키가 없으면 인스턴스에 접속할 수 없다.
.pem 키 파일은 절대 Git에 커밋하거나 메신저로 공유하지 말 것. 분실 시 인스턴스에 접속할 수 없으며, 유출 시 누구나 서버에 접근할 수 있다."Launch Instance"를 누르면 약 30초 뒤 인스턴스가 running 상태가 된다.
접속은 터미널에서:
ssh -i my-key.pem ec2-user@<퍼블릭-IP>
이제 이 서버에 웹 서버를 설치하든, 데이터베이스를 올리든, AI 모델을 돌리든 자유다. 이전 글에서 설명한 것처럼, 예전에는 이 단계에 도달하기까지 수 주에서 수 개월이 걸렸다. 지금은 5분이면 된다.
EC2의 본질을 한 문장으로 요약하면 이렇다:
거대한 데이터센터에 있는 물리 서버의 CPU·RAM·스토리지를 하이퍼바이저가 잘라서, 인터넷을 통해 빌려주는 것.
복잡한 용어들 — vCPU, EBS, AMI, 인스턴스 타입 — 은 결국 이 단순한 원리의 구체적인 구현이다.
정리하면:
클라우드가 아무리 "가상"이라 해도, 그 끝에는 반드시 물리적인 컴퓨터가 있다. 누군가의 데이터센터에서, 실제 CPU가 돌아가고, 실제 메모리에 데이터가 올라가고, 실제 SSD에 파일이 저장된다. 클라우드는 마법이 아니라, 가상화 기술과 대규모 인프라 운영의 결합이다.
다음 글에서는 EC2를 넘어서, 서버리스(Lambda), 컨테이너(ECS/EKS), 그리고 AI 워크로드에 최적화된 인스턴스들을 다뤄보겠다.