
인프라의 '인' 자도 모르던, AWS를 처음 접하는 프론트엔드 개발자의 시선에서
가장 먼저 배운 핵심 서비스, EC2(Elastic Compute Cloud)에 대해 배운 내용을 정리해 보겠습니다.
💡 인프라 관련 필수 용어
EC2를 배우다 보면 난생처음 보는 단어들이 쏟아지는데, 먼저 이 개념들을 머리에 넣고 시작해야 합니다.
- 서버(Server): "24시간 내내 켜져 있고, 인터넷에 연결되어 있어서 외부 요청에 응답할 수 있는 컴퓨터". 내가 만든 웹사이트를 남들에게 보여주려면 내 컴퓨터를 밤새 켜두거나, 이런 서버 컴퓨터를 빌려야 함.
- 인스턴스(Instance): AWS 클라우드 환경에서 생성된 "가상 컴퓨터 한 대"를 부르는 단위.
"EC2 서버 한 대 생성" = "EC2 인스턴스 하나 생성"와 같음. - 프로토콜(Protocol): 컴퓨터끼리 서로 대화하기 위해 정한 "통신 규칙/약속".
(ex. 웹페이지를 주고받을 때는 HTTP, 서버에 원격 접속할 때는 SSH) - 포트(Port): 컴퓨터 안에서 실행되는 수많은 프로그램(방)으로 들어가는 "문 번호".
(ex. 컴퓨터 IP 주소가 건물의 주소라면, 포트는 '3000호', '80호' 같은 방 번호)
1. EC2(Elastic Compute Cloud)란?
- 정의: AWS에서 제공하는 확장 가능한 가상 컴퓨팅 서버.
- 과거에는 웹 서비스를 배포하려면 물리적인 서버 컴퓨터 하드웨어와, IDC(데이터 센터)가 필요.
하지만 EC2를 쓰면 AWS라는 거대한 데이터 센터의 고성능 컴퓨터 중 일부를 원격으로, 마우스 클릭 몇 번만으로 빌려 쓸 수 있음. - Elastic(탄력적인)의 진짜 의미: 서비스에 사용자가 갑자기 몰리면 예전에는 서버가 터졌음. 하지만 EC2는 필요할 때마다 컴퓨터의 스펙을 높이거나(Scale-up), 똑같은 컴퓨터를 여러 대 늘리는(Scale-out) 작업이 자유롭고 유연함.
2. EC2의 핵심 구성 요소
EC2 인스턴스를 처음 생성할 때, 선택해야 하는 4가지가 있음.
① AMI (Amazon Machine Image)
- 서버의 운영체제(OS)와 기본 소프트웨어 환경이 통째로 저장된 설치 템플릿(이미지).
- 조립식 컴퓨터를 새로 샀을 때, 안에 윈도우나 리눅스가 깔려있지 않으면 고철 덩어리에 불과함. OS를 깔기 위해 꽂는 '윈도우 설치 USB' 혹은 컴퓨터를 포맷할 때 쓰는 '복구 이미지' 같은 역할이 AMI. AWS에서는 Ubuntu, CentOS, Windows 등 검증된 환경을 클릭 한 번으로 선택해서 서버를 시작할 수 있음.
② 인스턴스 유형 (Instance Types)
- 서버의 핵심 하드웨어 스펙(CPU 성능, 메모리 용량, 네트워크 대역폭 등)을 결정하는 단계.
- t3.micro, c5.large 같은 복잡한 이름으로 되어 있지만 규칙이 있음.
- 앞의 알파벳(t, c, m 등): 서버의 가문(목적)을 뜻함. t는 평범하고 저렴한 기본형(범용), c는 연산 속도가 빠른 컴퓨터(Compute), m은 메모리가 아주 큰 컴퓨터(Memory)
- 뒤의 단어(micro, small, large, xlarge 등): 서버의 규모, 뒤로 갈수록 CPU와 RAM이 커지고 비싸짐.
③ EBS (Elastic Block Store)
- EC2 인스턴스를 위한 가상 하드디스크(SSD/HDD 저장 공간).
- 컴퓨터 본체(EC2)에 꽂는 외장 하드디스크라고 생각하면 됨. 내가 짠 소스 코드, 이미지 파일, 데이터베이스 파일 등이 여기에 다 저장.
- EC2 인스턴스 본체와 EBS(디스크)는 가상으로 연결된 독립된 존재.
따라서 서버 컴퓨터를 일시적으로 껐다 켜도(중지 후 시작) 하드디스크인 EBS에 저장된 데이터는 그대로 유지됨.
(단, 인스턴스를 아예 '종료(삭제)'할 때는 설정에 따라 함께 삭제될 수 있으니 주의 필요)
④ 보안 그룹 (Security Group)
- EC2 인스턴스 바로 앞을 지키고 있는 가상 방화벽(통제소).
- 외부에서 내 서버 컴퓨터로 아무나 접속하지 못하도록 허용된 포트만 들여보내는 규칙 설정.
- 인바운드(Inbound) 규칙: 외부에서 내 서버로 들어오는 트래픽을 통제. 웹 브라우저로 접속하는 일반 유저들을 위해 80(HTTP), 443(HTTPS) 포트를 열어두고, 개발자가 소스 코드를 올리거나 서버를 관리하기 위해 원격 접속하는 22(SSH) 포트를 열어둠.
- 아웃바운드(Outbound) 규칙: 내 서버에서 외부 인터넷으로 나가는 트래픽을 통제. 기본적으로 서버가 외부 API를 호출하거나 업데이트를 받아야 하므로 모두 허용(Anywhere)되어 있음.
- 보안 정석: 서버 원격 제어용인 22번(SSH) 포트는 해커들의 표적이 되기 쉬우므로, '위치 무관(0.0.0.0/0)'으로 두면 절대 안 되고 '내 IP'에서만 접속 가능하도록 꽁꽁 묶어두어야 안전.
3. 왜 로컬 컴퓨터 대신 EC2를 써야 할까? (EC2의 장점)
- 신속성: 물리적인 컴퓨터를 사고, 랜선 꽂고, OS 설치하는 등 복잡한 작업을 가상 환경에서 단 2~3분 만에 끝낼 수 있음.
- 탄력성: 트래픽이 몰려도 컴퓨터 스펙을 쉽고 빠르게 업그레이드할 수 있음.
- 합리적인 비용 구조: EC2는 온디맨드로 사용한 만큼만 비용이 나감.
그동안 프론트엔드 개발만 주로 진행했는데 진정한 서비스의 운영을 위해, 클라우드 인프라를 반드시 이해해야 한다고 느꼈습니다..
처음엔 AMI, 인스턴스, 인바운드 같은 용어 때문에 머리가 아팠지만, 결국 "클라우드라는 거대한 가상 공간에 내 컴퓨터 한 대를 원격으로 안전하게 빌려서 세팅하는 과정"으로 도식화하니 구조가 보이기 시작하는 중.... 열심히 해야겠다..!

'AWS' 카테고리의 다른 글
| [AWS] EC2 인스턴스 생명주기(Lifecycle) (0) | 2026.06.23 |
|---|---|
| [AWS] 인스턴스 보안 그룹 설정 (0) | 2026.06.23 |
| [AWS] EBS와 AMI 정리 (0) | 2026.06.23 |