Taeyoung Kim

Cloud & Platform

3강. EC2

3강. EC2 학습 내용을 정리한 백필 노트입니다.

이 글은 2025년 학습 기록을 블로그 형식으로 정리한 백필 노트입니다.

AWS 서비스의 3대장

  • EC2
  • RDS
  • S3

1. EC2 (Elastic Compute Cloud)

클라우드에서 탄력적으로 컴퓨팅 자원을 제공하는 서비스입니다.

특징

  • 가상 서버 서비스 (Virtual Machine): 사용자에게 가상의 컴퓨터를 제공합니다.
  • 재구성 가능한 컴퓨팅 리소스: 필요에 따라 사양을 변경할 수 있습니다.
  • 쉬운 확장/축소: 컴퓨팅 용량을 쉽게 늘리거나 줄일 수 있습니다.
  • 다양한 인스턴스 타입: 사용 용도에 맞는 다양한 서버 타입을 제공합니다.
  • 사용한 만큼 과금 (Pay-as-you-go): 사용한 시간에 대해서만 비용을 지불합니다.

EC2 인스턴스 패밀리 종류

  • 범용 (M): 컴퓨팅, 메모리, 네트워크 리소스가 균형 잡힌 유형입니다.
  • 컴퓨팅 최적화 (C): CPU 성능이 중요한 작업에 적합하며, 성능 대비 가격이 저렴합니다.
  • 메모리 최적화 (R): 메모리 사용량이 많은 애플리케이션을 위한 유형입니다.
  • 성능 순간 확장 (T): 평소에는 기본 성능으로 동작하다가 필요시 순간적으로 성능을 높일 수 있는 인스턴스입니다.
  • GPU 인스턴스 (G, P): 그래픽 처리 및 머신러닝 등 GPU 가속이 필요한 작업에 사용됩니다.
  • 높은 I/O (I): SSD 기반의 초고속 스토리지가 필요한 애플리케이션에 적합합니다.
  • 고밀도 스토리지 (D): 디스크 처리량이 높고, 데이터 저장 비용이 저렴한 유형입니다.

EC2 인스턴스의 구분 (예: t3.large)

  • t: 인스턴스 패밀리 (용도)
  • 3: 인스턴스 세대 (출시 버전)
  • large: 인스턴스 사이즈 (사양)

EC2 과금 옵션

  • On-Demand (온디맨드):
    • 약정 없이 사용한 만큼 초 단위로 비용을 지불합니다.
    • 트래픽 예측이 어렵거나 신규 서비스를 테스트할 때 유용합니다.
  • Reserved Instances (RI, 예약 인스턴스):
    • 1년 또는 3년 사용을 약정하여 큰 할인(40~70%)을 받는 방식입니다.
    • 지속적으로 사용할 안정적인 서버에 적합합니다.
  • Spot Instances (스팟 인스턴스):
    • AWS의 유휴 컴퓨팅 자원을 경매 방식으로 저렴하게(최대 80~90% 할인) 사용하는 방식입니다.
    • AWS가 해당 자원을 필요로 할 경우 중단될 수 있어, 단기적이고 중단 가능성이 있는 작업에 유리합니다.

2. Elastic IP (탄력적 IP)

클라우드 환경을 위해 설계된 정적(고정) IPv4 주소입니다.

특징

  • AWS 계정에 연결: 특정 인스턴스가 아닌 AWS 계정에 할당됩니다.
  • 탄력성: 생성된 IP 주소를 다른 EC2 인스턴스에 자유롭게 붙였다 뗄 수 있습니다.
  • 리전당 5개 제한: 기본적으로 한 리전에서 계정당 5개까지 생성할 수 있습니다.
  • 주요 용도: EC2 인스턴스에 장애가 발생하면, 새로운 인스턴스를 생성하고 기존에 사용하던 탄력적 IP를 연결하여 IP 주소 변경 없이 서비스를 빠르게 복구할 수 있습니다.
  • 과금:
    • 실행 중인 EC2 인스턴스에 연결되어 있으면 무료입니다.
    • 인스턴스에 연결되어 있지 않거나, 중지된 인스턴스에 연결된 경우 시간당 약간의 비용(0.005$)이 과금됩니다.

3. Security Group (보안 그룹)

EC2 인스턴스에 대한 트래픽을 제어하는 가상 방화벽 역할을 합니다.

특징

  • 트래픽 제어:
    • 인바운드(Inbound): 외부에서 인스턴스로 들어오는 트래픽을 제어합니다.
    • 아웃바운드(Outbound): 인스턴스에서 외부로 나가는 트래픽을 제어합니다.
  • 허용 규칙만 생성 가능: "특정 IP와 포트의 접근을 허용"하는 규칙만 설정할 수 있으며, "거부" 규칙은 생성할 수 없습니다.
  • 기본 아웃바운드 정책: 기본적으로 모든 아웃바운드 트래픽을 허용합니다.
  • 유연한 규칙 변경: 언제든지 필요에 따라 규칙을 추가하거나 제거할 수 있습니다.

4. 실습 과정 요약

(실습 1) EC2 인스턴스 생성

  1. 이름 설정: 식별하기 쉬운 이름(예: MyFirstServer)을 지정합니다.
  2. AMI 선택: 인스턴스에 설치할 운영체제 템플릿(예: Ubuntu Server 22.04 LTS)을 선택합니다.
  3. 인스턴스 유형 선택: 서버 사양(예: t2.micro - 프리티어)을 선택합니다.
  4. 키 페어 생성: SSH 접속에 사용할 키 페어(암호화 키)를 생성하고, 프라이빗 키 파일(.pem 또는 .ppk)을 다운로드합니다. 이 파일은 최초 생성 시에만 받을 수 있으므로 안전하게 보관해야 합니다.
  5. 네트워크 설정: 방화벽 역할을 할 보안 그룹을 생성하고, SSH 접속(22번 포트)을 허용하는 인바운드 규칙을 추가합니다.
  6. 스토리지 구성: 운영체제가 설치될 루트 볼륨의 크기(기본값 8GiB)를 설정합니다.
  7. 인스턴스 시작: 설정을 최종 확인하고 인스턴스를 시작합니다.

(실습 2) SSH로 EC2 인스턴스 접속

Linux/macOS

  1. 생성된 EC2 인스턴스의 퍼블릭 IPv4 주소를 복사합니다.
  2. 터미널에서 chmod 600 my-key.pem 명령어로 키 파일의 권한을 변경합니다.
  3. ssh -i my-key.pem ubuntu@<퍼블릭_IP_주소> 명령어를 입력하여 접속합니다.

Windows (PuTTY 사용)

  1. PuTTY를 실행하고 Host Name에 인스턴스의 퍼블릭 IP 주소를 입력합니다.
  2. Connection > SSH > Auth > Credentials 메뉴로 이동하여 다운로드한 .ppk 키 파일을 지정합니다.
  3. Open 버튼을 눌러 접속합니다.

(실습 3) Elastic IP 주소 사용

  1. EC2 메뉴의 탄력적 IP에서 새 주소를 할당받습니다.
  2. 할당된 IP를 선택하고 탄력적 IP 주소 연결을 클릭합니다.
  3. 생성해 둔 EC2 인스턴스를 선택하여 연결합니다.
  4. 인스턴스의 퍼블릭 IP가 할당된 탄력적 IP로 변경된 것을 확인하고, 이 IP로 SSH 접속을 테스트합니다.
  5. 테스트 후에는 연결 해제릴리스를 통해 자원을 반납하여 불필요한 과금을 방지합니다.

(실습 4) 보안 규칙 추가/삭제

  1. 보안 그룹 메뉴에서 인스턴스와 연결된 보안 그룹을 선택합니다.
  2. 인바운드 규칙 편집으로 이동하여 규칙 추가를 누릅니다.
  3. 예를 들어, 사용자 지정 TCP 유형, 포트 8000, 소스 Anywhere-IPv4 (0.0.0.0/0) 규칙을 추가하고 저장합니다.
  4. 규칙을 삭제하려면 다시 편집 화면으로 들어가 해당 규칙 옆의 삭제 버튼을 누르고 저장합니다.

(실습 5) EC2 인스턴스 종료

  1. EC2 인스턴스 목록에서 종료할 인스턴스를 선택합니다.
  2. 인스턴스 상태 메뉴에서 **인스턴스 종료(Terminate)**를 선택합니다.
  3. 확인 창에서 종료를 누르면 인스턴스가 영구적으로 삭제됩니다.
  4. 주의: 클라우드는 사용한 만큼 요금을 청구하므로, 실습이 끝난 후에는 사용하지 않는 모든 리소스(EC2, Elastic IP 등)를 제거하는 것이 중요합니다.