본문으로 건너뛰기

EC2 기초

Amazon Elastic Compute Cloud(EC2)는 AWS의 핵심 컴퓨팅 서비스입니다.

EC2란?

EC2는 클라우드에서 확장 가능한 컴퓨팅 용량을 제공하는 서비스입니다. 가상 서버를 몇 분 안에 시작할 수 있으며, 필요에 따라 용량을 늘리거나 줄일 수 있습니다.

인스턴스 유형

범용 인스턴스

  • t3, t4g: 버스트 가능한 성능
  • m5, m6i: 균형 잡힌 컴퓨팅, 메모리, 네트워킹

컴퓨팅 최적화

  • c5, c6i: 고성능 프로세서

메모리 최적화

  • r5, r6i: 메모리 집약적 애플리케이션

스토리지 최적화

  • i3, i4i: 높은 순차 읽기/쓰기

기본 사용법

1. 인스턴스 시작

# AWS CLI로 인스턴스 시작
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--count 1 \
--instance-type t3.micro \
--key-name my-key-pair \
--security-group-ids sg-903004f8 \
--subnet-id subnet-6e7f829e

2. 인스턴스 연결

# SSH로 연결
ssh -i "my-key.pem" ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

3. 인스턴스 관리

# 인스턴스 중지
aws ec2 stop-instances --instance-ids i-1234567890abcdef0

# 인스턴스 시작
aws ec2 start-instances --instance-ids i-1234567890abcdef0

# 인스턴스 종료
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0

보안 그룹

보안 그룹은 EC2 인스턴스의 가상 방화벽 역할을 합니다.

# 보안 그룹 생성
aws ec2 create-security-group \
--group-name my-security-group \
--description "My security group"

# 인바운드 규칙 추가 (SSH)
aws ec2 authorize-security-group-ingress \
--group-id sg-903004f8 \
--protocol tcp \
--port 22 \
--cidr 0.0.0.0/0

# 인바운드 규칙 추가 (HTTP)
aws ec2 authorize-security-group-ingress \
--group-id sg-903004f8 \
--protocol tcp \
--port 80 \
--cidr 0.0.0.0/0

키 페어

EC2 인스턴스에 안전하게 연결하기 위한 키 페어를 관리합니다.

# 키 페어 생성
aws ec2 create-key-pair \
--key-name my-key-pair \
--query 'KeyMaterial' \
--output text > my-key-pair.pem

# 키 파일 권한 설정
chmod 400 my-key-pair.pem

# 키 페어 목록 확인
aws ec2 describe-key-pairs

사용자 데이터

인스턴스 시작 시 자동으로 실행할 스크립트를 지정할 수 있습니다.

# 사용자 데이터와 함께 인스턴스 시작
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--count 1 \
--instance-type t3.micro \
--key-name my-key-pair \
--security-group-ids sg-903004f8 \
--user-data file://my-script.sh
#!/bin/bash
# my-script.sh
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>Hello from EC2!</h1>" > /var/www/html/index.html

모니터링

CloudWatch 메트릭

  • CPU 사용률
  • 네트워크 In/Out
  • 디스크 읽기/쓰기

상세 모니터링 활성화

aws ec2 monitor-instances --instance-ids i-1234567890abcdef0

비용 최적화

1. 예약 인스턴스

  • 1년 또는 3년 약정으로 최대 75% 할인

2. 스팟 인스턴스

  • 온디맨드 가격의 최대 90% 할인
  • 중단 가능한 워크로드에 적합
# 스팟 인스턴스 요청
aws ec2 request-spot-instances \
--spot-price "0.05" \
--instance-count 1 \
--type "one-time" \
--launch-specification file://specification.json

3. 인스턴스 크기 조정

# 인스턴스 중지
aws ec2 stop-instances --instance-ids i-1234567890abcdef0

# 인스턴스 유형 변경
aws ec2 modify-instance-attribute \
--instance-id i-1234567890abcdef0 \
--instance-type "{\"Value\": \"t3.small\"}"

# 인스턴스 시작
aws ec2 start-instances --instance-ids i-1234567890abcdef0

백업과 복구

AMI 생성

# AMI 생성
aws ec2 create-image \
--instance-id i-1234567890abcdef0 \
--name "My server backup" \
--description "Backup of my server"

스냅샷 생성

# EBS 볼륨 스냅샷 생성
aws ec2 create-snapshot \
--volume-id vol-1234567890abcdef0 \
--description "My snapshot"

이제 AWS 디렉터리에 2개의 문서가 있어서 카테고리가 제대로 동작할 것입니다!