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_IP

2️⃣ 환경 세팅

  • Node.js
  • Git
  • Docker (선택)
  • Nginx

3️⃣ 코드 실행

  • npm run build
  • npm start
  • 또는 Docker 컨테이너 실행

👉 즉, “내 로컬에서 하던 걸 EC2에서 그대로 한다” 라고 보면 됨


7. EC2 vs 다른 AWS 서비스 (가볍게)

서비스특징
EC2서버 직접 관리 (자유도 높음)
Elastic BeanstalkEC2 자동 관리
ECS / EKS컨테이너 기반
Lambda서버 없음 (서버리스)

📌 학습 + 개인 프로젝트 + Next.js 배포

EC2가 제일 좋음


8. 배포 흐름에서 EC2의 위치

[GitHub]

[CI/CD (GitHub Actions)]

[EC2 서버]
   ├─ Next.js 앱
   ├─ Nginx
   └─ 실행 중

👉 EC2는 “배포의 도착지”


9. 정리 한 줄 요약

  • EC2는 AWS가 제공하는 가상 서버
  • 배포란 결국 이 서버에 코드를 올려 실행시키는 과정
  • EC2를 이해하면 배포의 70%는 끝