[AWS] EC2 기본

silver's avatar
Nov 13, 2025
[AWS] EC2 기본

EC2란?

EC2(Elastic Compute Cloud)는 AWS에서 제공하는 AWS 클라우드의 핵심 가상 서버 서비스로 서버를 생성하고 필요에 따라 성능을 조정하며 사용한 만큼만 비용을 지불하게 해 가상 서버를 유연하게 관리할 수 있게 해준다.

EC2 특징

1. 탄력성(Elasticity)
  • 트래픽 증가 시 서버를 추가하고, 감소 시 제거 가능
  • 수 분 내에 인스턴스 생성 및 삭제
  • Auto Scaling으로 자동 확장/축소
2. 다양한 인스턴스 타입
  • 범용, 컴퓨팅 최적화, 메모리 최적화, 스토리지 최적화 등
  • 워크로드에 맞는 최적의 타입 선택 가능
3. 유연한 요금 모델
  • 온디맨드: 초 단위 과금
  • 예약 인스턴스: 1~3년 약정으로 최대 75% 할인
  • 스팟 인스턴스: 경매 방식으로 최대 90% 할인

EC2 인스턴스 타입

인스턴스 타입은 패밀리 + 세대 + 크기 형식으로 구성됩니다.
예: t3.medium
  • t: 범용(버스터블) 패밀리
  • 3: 3세대
  • medium: 크기

주요 인스턴스 패밀리

패밀리용도특징T3, T4범용, 개발/테스트CPU 크레딧 방식, 저렴M5, M6범용, 중간 규모 앱균형잡힌 컴퓨팅/메모리C5, C6컴퓨팅 최적화고성능 프로세서, 배치 작업R5, R6메모리 최적화대용량 메모리, 데이터베이스P3, G4GPU 인스턴스머신러닝, 그래픽 작업

T 패밀리의 CPU 크레딧

T 시리즈는 CPU 크레딧을 사용하는 버스터블 인스턴스
  • 기본 성능 이하로 사용 시 크레딧 축적
  • 기본 성능 이상 필요 시 크레딧 소비
  • 크레딧 소진 시 기본 성능으로 제한
  • 개발 환경이나 트래픽이 일정치 않은 서비스에 적합

EC2 인스턴스 생성하기

1단계: AMI(Amazon Machine Image) 선택

AMI는 인스턴스의 운영체제와 초기 설정을 포함한 템플릿
주요 AMI 유형:
  • Amazon Linux 2023: AWS 최적화, 무료
  • Ubuntu: 인기 있는 Linux 배포판
  • Windows Server: Windows 기반 애플리케이션
  • Red Hat, CentOS: 엔터프라이즈 환경

2단계: 인스턴스 타입 선택

워크로드에 맞는 타입을 선택합니다.
웹 서버: t3.micro ~ t3.medium 데이터베이스: r5.large ~ r5.2xlarge 배치 처리: c5.xlarge ~ c5.4xlarge

3단계: 네트워크 설정

VPC(Virtual Private Cloud)
  • 격리된 가상 네트워크 환경
  • 여러 가용 영역(AZ)에 분산 배치 가능
서브넷
  • Public: 인터넷 접근 가능
  • Private: 내부 통신만 가능
보안 그룹(Security Group)
인바운드 규칙 예시: - SSH (22번 포트): 개발자 IP만 허용 - HTTP (80번 포트): 모든 IP 허용 - HTTPS (443번 포트): 모든 IP 허용 - MySQL (3306번 포트): 애플리케이션 서버만 허용

4단계: 스토리지 설정

EBS(Elastic Block Store)
  • 영구 블록 스토리지
  • 인스턴스와 독립적으로 존재
  • 스냅샷으로 백업 가능
볼륨 타입:
  • gp3: 범용 SSD, 가성비 우수
  • io2: 프로비저닝 IOPS, 고성능 DB
  • st1: 처리량 최적화 HDD, 빅데이터
  • sc1: Cold HDD, 아카이빙

5단계: 키 페어 설정

SSH 접속을 위한 키 페어를 생성
# 키 페어 권한 설정 (Linux/Mac) chmod 400 my-key-pair.pem # SSH 접속 ssh -i my-key-pair.pem ec2-user@ec2-xx-xx-xx-xx.compute.amazonaws.com

인스턴스 수명 주기

pending → running → stopping → stopped → terminating → terminated
주요 상태:
  • Running: 실행 중, 과금됨
  • Stopped: 중지, EBS 비용만 과금
  • Terminated: 삭제, 복구 불가

EC2 인스턴스 메타데이터

인스턴스 내부에서 자신의 정보를 조회 가능
bash
# 인스턴스 ID 조회 curl http://169.254.169.254/latest/meta-data/instance-id # 공인 IP 조회 curl http://169.254.169.254/latest/meta-data/public-ipv4 # IAM 역할 조회 curl http://169.254.169.254/latest/meta-data/iam/security-credentials/

사용자 데이터(User Data)

인스턴스 시작 시 자동으로 실행되는 스크립트
#!/bin/bash yum update -y yum install -y httpd systemctl start httpd systemctl enable httpd echo "<h1>Hello from EC2</h1>" > /var/www/html/index.html
이를 통해 웹 서버 설치와 같은 초기 설정을 자동화할 수 있습니다.

EC2 모니터링

CloudWatch 기본 지표 (무료)

  • CPU 사용률
  • 네트워크 입출력
  • 디스크 읽기/쓰기
  • 5분 간격 수집

CloudWatch 상세 모니터링 (유료)

  • 1분 간격 수집
  • 더 빠른 Auto Scaling 대응

모니터링 명령어

# CloudWatch CLI로 CPU 사용률 조회 aws cloudwatch get-metric-statistics \ --namespace AWS/EC2 \ --metric-name CPUUtilization \ --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \ --start-time 2024-11-17T00:00:00Z \ --end-time 2024-11-17T23:59:59Z \ --period 3600 \ --statistics Average

비용 최적화 팁

1. 적절한 인스턴스 크기 선택

  • 과도한 사양은 비용 낭비
  • CloudWatch로 사용률 모니터링 후 다운사이징

2. 예약 인스턴스 활용

  • 장기 운영 서버는 예약 인스턴스로 할인
  • 1년 약정: 약 40% 할인
  • 3년 약정: 약 60% 할인

3. 스팟 인스턴스

  • 개발/테스트 환경
  • 배치 작업, 빅데이터 분석
  • 중단되어도 무방한 워크로드

4. 사용하지 않는 리소스 제거

# 중지된 인스턴스 조회 aws ec2 describe-instances \ --filters "Name=instance-state-name,Values=stopped" \ --query "Reservations[].Instances[].[InstanceId,Tags[?Key=='Name'].Value|[0]]" \ --output table # 미사용 EBS 볼륨 조회 aws ec2 describe-volumes \ --filters "Name=status,Values=available" \ --query "Volumes[].[VolumeId,Size,CreateTime]" \ --output table

간단 정리

  • 인스턴스 타입은 워크로드에 맞게 선택
  • 보안 그룹으로 네트워크 접근 제어
  • 사용자 데이터로 초기 설정 자동화
  • CloudWatch로 모니터링 및 최적화
 
Share article

silver