Devops
AWS EC2 와 서버
2025년 12월 23일
목차
“배포를 한다 = 서버에 코드를 올린다”
그럼 그 서버는 정확히 뭐고, 우리는 왜 EC2를 쓰는 걸까?
1. 서버(Server)부터 다시 짚고 가자
서버를 한 문장으로 말하면 이거야.
요청(Request)을 받아서 응답(Response)을 돌려주는 컴퓨터
- 누군가 브라우저에서
example.com접속 - 요청이 서버로 감
- 서버가 HTML / JSON / 이미지 등을 응답
👉 이 역할을 24시간 꺼지지 않고 해주는 컴퓨터가 필요함
👉 그래서 “집 PC” 말고 서버용 컴퓨터를 사용
2. 그럼 EC2는 뭐냐?
EC2 (Elastic Compute Cloud) 는
AWS에서 제공하는 “빌려 쓰는 서버 컴퓨터”
이다.
- 실제로는 AWS 데이터센터에 있는 물리 서버
- 우리는 그 위에 만들어진 가상 서버(인스턴스) 를 빌려 씀
📌 포인트
- 원격 컴퓨터
- 인터넷으로 접속
- 원하는 만큼 켜고 끌 수 있음
- 쓴 만큼만 돈 냄
3. EC2 = 서버 한 대라고 생각해도 될까?
초반엔 그렇게 생각해도 전혀 문제 없음 👍
[내 로컬 맥북] → [EC2 서버]
├─ Ubuntu Linux
├─ Node.js
├─ Next.js 앱
└─ Nginx- EC2 하나 = 서버 한 대
- 그 안에 우리가 필요한 걸 직접 설치
4. EC2 인스턴스란?
AWS에서 EC2를 만들면 인스턴스(Instance) 라고 부름.
인스턴스 = 실행 중인 EC2 서버 하나
인스턴스에는 다음 정보들이 있음:
- OS (보통 Ubuntu)
- CPU / RAM 사양
- 고유한 퍼블릭 IP
- SSH 접속 정보
5. EC2를 쓰는 이유
1️⃣ 직접 서버를 사지 않아도 됨
- 서버 구매 ❌
- 네트워크 설정 ❌
- 전원 관리 ❌
2️⃣ 확장/축소가 쉬움
- 트래픽 늘면 → 서버 스펙 업
- 필요 없어지면 → 서버 종료
3️⃣ AWS 생태계와 찰떡
- S3, RDS, CloudWatch, ALB 등과 연동 쉬움
- CI/CD 구성하기 좋음
6. EC2에서 우리가 실제로 하는 일
배포 관점에서 보면 EC2에서 하는 일은 거의 이 패턴이야.
1️⃣ 서버 접속 (SSH)
ssh -i key.pem ubuntu@EC2_IP2️⃣ 환경 세팅
- Node.js
- Git
- Docker (선택)
- Nginx
3️⃣ 코드 실행
npm run buildnpm start- 또는 Docker 컨테이너 실행
👉 즉, “내 로컬에서 하던 걸 EC2에서 그대로 한다” 라고 보면 됨
7. EC2 vs 다른 AWS 서비스 (가볍게)
| 서비스 | 특징 |
|---|---|
| EC2 | 서버 직접 관리 (자유도 높음) |
| Elastic Beanstalk | EC2 자동 관리 |
| ECS / EKS | 컨테이너 기반 |
| Lambda | 서버 없음 (서버리스) |
📌 학습 + 개인 프로젝트 + Next.js 배포
→ EC2가 제일 좋음
8. 배포 흐름에서 EC2의 위치
[GitHub]
↓
[CI/CD (GitHub Actions)]
↓
[EC2 서버]
├─ Next.js 앱
├─ Nginx
└─ 실행 중👉 EC2는 “배포의 도착지”
9. 정리 한 줄 요약
- EC2는 AWS가 제공하는 가상 서버
- 배포란 결국 이 서버에 코드를 올려 실행시키는 과정
- EC2를 이해하면 배포의 70%는 끝