이것저것

[SK shieldus Rookies 29기] 27일차 본문

SK Shieldus Rookies 29

[SK shieldus Rookies 29기] 27일차

atfield1988 2025. 12. 15. 18:19

애플리케이션 보안 기술을 마칙 오늘부터 클라우드 보안 기술에 들어간다.

1. AWS 기초 지식

1.1 AWS(Amazon Web Services)란?

정의

AWS는 Amazon에서 제공하는 클라우드 컴퓨팅 서비스입니다.

핵심 특징:

  • Internet을 통해 IT 리소스를 빌려쓰는 방식
  • On-demand (필요할 때만)
  • 종량 요금제 (사용한 만큼만 지불)

온프레미스 vs 클라우드

항목 온프레미스 AWS 클라우드
투자 방식 초기 대규모 투자 종량 요금제 (탄력적)
서버 준비 구매 + 배송 (weeks) 클릭으로 생성 (minutes)
용량 조정 사전 계획 필요 사후 변경 용이
관리 비용 높음 (인력 필요) 낮음 (AWS 담당)
확장성 제한적 무제한
   

1.2 AWS의 주요 서비스


1.3 AWS의 비용 구조

비용 계산 예시 (EC2)

총 비용 = 1. 인스턴스 비용 + 2. EBS 비용 + 3. 통신료

1. 인스턴스: 0.0136 USD/시간 × 24시간 × 30일 = 9.792 USD
2. EBS: 0.12 USD/GB × 30GB = 3.6 USD
3. 통신료: 0.114 USD/GB × 150GB = 17.16 USD
─────────────────────────────────────
합계: ~30 USD/월 (약 33,000원)

비용의 장점

돌발적인 트래픽 증가 시:

온프레미스: 대규모 사전 투자 필요
AWS: 필요한 만큼만 확장 → 비용 절감

1.4 AWS의 장점 정리

✅ 초기 투자비용 불필요
   → 종량 요금제로 시작 가능

✅ 유지관리 비용 및 노력 감소
   → AWS가 서버 관리 (매니지드 서비스)

✅ 규모의 경제로 얻는 비용 절감
   → AWS의 인프라 공유로 저렴

✅ 전세계 원하는 곳에 서비스 배포
   → 30개 이상의 리전

✅ 빠르게 서비스 배포
   → 클릭 몇 번으로 서버 생성

✅ 유연한 용량 계획
   → 나중에 언제든 변경 가능

2. AWS를 이해하기 위한 클라우드 & 네트워크 구조

2.1 가상화와 분산 처리

서버 가상화

개념: 물리적인 1개 서버 → 여러 개의 가상 서버 (인스턴스) 생성

가상화 소프트웨어:

- VMware ESXi
- Linux KVM
- MS Hyper-V
- Oracle VirtualBox

분산 처리

목적

  • 로드 밸런싱 (트래픽 분산)
  • 고가용성 (서버 이중화)
클라이언트 요청
      ↓
로드 밸런서
      ↓
┌─────┬─────┬─────┐
서버 A  서버 B  서버 C (3개 중 1개 선택)

→ 1개 서버 장애 시에도 서비스 지속

2.2 SaaS, PaaS, IaaS의 차이


2.3 서버와 인스턴스

서버의 정의

"어떤 서비스를 제공하는 컴퓨터"

예:
├─ 웹 서버 (HTML, 이미지 제공)
├─ DB 서버 (데이터 제공)
├─ 메일 서버 (메일 기능 제공)
└─ 파일 서버 (파일 제공)

인스턴스

= 클라우드 환경에서의 가상 서버

클라우드 서버 = 물리 서버가 아닌 가상 서버
                → EC2 인스턴스

특징:
- 필요할 때만 생성/삭제 가능
- 즉시 생성 가능 (수 분 내)
- 스펙 변경 용이
- 비용: 사용한 시간만 지불

2.4 IP 주소와 DNS

IPv4 주소 체계

예: 10.210.32.40

┌──────┬──────┬──────┬──────┐
│  10  │ 210  │  32  │  40  │  (10진수)
└──────┴──────┴──────┴──────┘
│
└─→ 각 블록 최대: 0~255

이진수: 00001010.11010010.00100000.00101000

공인 IP vs 사설 IP

공인 IP (Public IP):
- 인터넷에서 접근 가능
- 전 세계 유일함
- 비용 발생 (AWS Elastic IP)

사설 IP (Private IP):
- 내부 네트워크에서만 사용
- 중복 가능 (회사 내부 LAN)
- EC2의 기본 주소
- 무료

DNS (Domain Name Service)

사용자: "www.velog.io에 접속"
        ↓
DNS 서버: "www.velog.io의 IP = 203.xxx.xxx.xxx"
        ↓
사용자: "203.xxx.xxx.xxx로 접속" (웹 서버 도달)

3. AWS를 사용하기 위한 도구

3.1 AWS 접근 방법

세 가지 접근 방식

1. 관리 콘솔 (Console)
   └─ 웹 브라우저에서 마우스로 조작
   └─ 시각적이고 쉬움
   └─ AWS 홈페이지 → 로그인 → 서비스 선택

2. CLI (Command Line Interface)
   └─ 명령어로 조작 (터미널)
   └─ 관리 콘솔보다 더 강력한 기능
   └─ $ aws ec2 start-instances --instance-ids i-12345678

3. SDK (Software Development Kit)
   └─ 프로그래밍 언어로 조작
   └─ Python, Java, JavaScript, Go 등

3.2 AWS 계정 구조

Root 사용자

계정 생성 시 자동으로 생성되는 사용자

특징:
✅ 무한 권한 (모든 작업 가능)
❌ 보안 위험 (일상 작업 금지)
❌ 외부 유출 시 계정 탈취 위험

⚠️ AWS 권장: Root 사용자 거의 사용 금지
  → IAM 사용자로 대체

3.3 AWS IAM (Identity and Access Management)

IAM의 역할

"누가 무엇을 할 수 있는지 제어하는 시스템"

예:
- 개발자 A: EC2만 생성 가능
- 개발자 B: S3만 사용 가능
- DBA: RDS만 관리 가능

IAM의 3가지 구성 요소

1️⃣ 사용자 (User)

AWS 계정 내에서 생성한 개별 계정

인증 방식:
├─ 콘솔: 사용자명 + 암호
└─ CLI/SDK: Access Key ID + Secret Access Key

2️⃣ 그룹 (Group)

여러 사용자를 묶어서 권한 일괄 관리

예:
┌─ Admins 그룹
│  ├─ 관리자 A
│  └─ 관리자 B
│
├─ Developers 그룹
│  ├─ 개발자 A
│  ├─ 개발자 B
│  └─ 개발자 C
│
└─ Security 그룹
   ├─ 보안담당자 A
   └─ 보안담당자 B

그룹에 정책 연결 → 그룹 내 모든 사용자에게 권한 부여

3️⃣ 정책 (Policy)

JSON 형식으로 권한을 정의

기본 구조:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",        // 허용(Allow) 또는 거부(Deny)
      "Action": "s3:ListBucket",  // 작업: S3 버킷 목록 조회
      "Resource": "arn:aws:s3:::mybucket"  // 대상: mybucket
    }
  ]
}

정책 유형:
├─ AWS 관리형: AWS 제공 (편함, 기능 제한)
└─ 고객 관리형: 사용자 정의 (복잡함, 세밀한 제어)

IAM 권한의 우선순위

명시적 Deny (거부)
    ↓ [YES] ──→ 최종 결정: 거부 (Deny)
명시적 Allow (허용) 있는가?
    ↓ [YES] ──→ 최종 결정: 허용 (Allow)
    [NO]
    ↓
암시적 Deny (기본 거부)
    ↓
    최종 결정: 거부 (Deny)


3.4 다중 인증 (MFA)

MFA의 두 가지 개념

✅ 다단계 인증 (Multi-step Authentication)
   └─ 같은 종류의 인증을 2번 이상
   └─ 예: 비밀번호 → 비밀번호 다시 확인

✅ 다요소 인증 (Multi-factor Authentication)
   └─ 서로 다른 종류의 인증 2가지 이상
   └─ 예: 비밀번호 + OTP (One-Time Password)
   └─ 예: 비밀번호 + 생체인식 (지문)

AWS MFA 예시:

1단계: 사용자명 + 암호 입력
2단계: 휴대폰 인증 앱의 6자리 코드 입력

Google Authenticator를 Play store나 App store에서 다운로드 받으면 됩니다.


3.5 Amazon CloudWatch

역할

"AWS 리소스를 감시하고 알람하는 도구"

모니터링 대상:
├─ EC2 인스턴스
├─ 데이터베이스 (RDS)
├─ 로드 밸런서 (ELB)
├─ Lambda 함수
└─ 기타 모든 AWS 서비스

주요 기능

1. 지표 (Metrics) 수집
   └─ CPU 사용률, 메모리, 디스크 I/O 등
   └─ 그래프로 시각화

2. 경보 (Alarm) 설정
   └─ 임계값 설정 (예: CPU > 80%)
   └─ 3주기 연속 초과 시 알람 발동

3. 로그 (Logs) 수집
   └─ EC2 애플리케이션 로그
   └─ VPC 흐름 로그
   └─ CloudTrail 로그

4. 이벤트 (Event) 감지
   └─ 서버 시작/종료
   └─ 오류 발생 등

CloudWatch의 이점

임계값 초과 시 자동 조치:
└─ 이메일 알림 (SNS)
└─ 자동 확장 (Auto Scaling)
└─ 인스턴스 시작/종료


3.6 AWS CloudTrail

역할

"AWS의 모든 이벤트 로그 기록"

기록되는 정보:
├─ Who (누가): 사용자 ID
├─ When (언제): 이벤트 발생 시간
├─ What (무엇을): 어떤 작업 (EC2 시작, S3 파일 삭제 등)
├─ Where (어디서): IP 주소
└─ How (결과): 성공/실패

주요 용도

✅ 보안 감사
   └─ 누가 언제 뭐 했는지 추적

✅ 규정 준수 (Compliance)
   └─ 법규 위반 여부 확인

✅ 문제 해결
   └─ 언제 문제 발생했는지 파악

✅ 비용 분석
   └─ 리소스 사용 추적


3.7 AWS Billing and Cost Management

3가지 비용 관리 도구

1. Cost Explorer
   └─ 비용을 그래프로 시각화
   └─ 서비스별, 시간별 비용 분석
   └─ 추세 파악

2. Budgets
   └─ 예산 설정
   └─ 예산 초과 시 알림
   └─ 지출 관리

3. Billing Report
   └─ 자세한 청구서 (CSV 다운로드 가능)
   └─ 타사 분석 도구로 처리 (Athena, Redshift 등)

비용 절감 팁

✅ 불필요한 인스턴스 정지
   └─ 개발/테스트 환경은 사용 후 즉시 정지

✅ 적절한 인스턴스 크기 선택
   └─ 처음엔 작게 시작, 필요시 확대

✅ Reserved Instance 구매 (1년/3년 선불)
   └─ On-demand 대비 40~70% 절감

✅ Spot Instance 활용 (최대 90% 절감)
   └─ 중단 가능한 작업에만 사용


3.8 리전과 가용 영역

리전 (Region)

지리적 위치에 따른 AWS 데이터센터 그룹

예:
├─ 서울 리전 (ap-northeast-2)
├─ 도쿄 리전 (ap-northeast-1)
├─ 미국 동부 리전 (us-east-1)
└─ 유럽 런던 리전 (eu-west-2)

총 30개 이상의 리전 운영

가용 영역 (Availability Zone, AZ)

각 리전 내의 독립된 데이터센터

구조:
리전 (서울)
├─ AZ-1 (강남)
│  └─ 데이터센터 1, 2, 3
├─ AZ-2 (서초)
│  └─ 데이터센터 4, 5, 6
└─ AZ-3 (강북)
   └─ 데이터센터 7, 8, 9

목적: 장애 격리 (1개 AZ 장애 시에도 서비스 지속)

리전 선택 기준

1. 지연시간 (Latency)
   └─ 사용자와 가까운 리전 선택
   └─ 한국 사용자 → 서울 리전 선택

2. 법적 요구사항 (Regulation)
   └─ 데이터 위치 지정 (예: 한국 데이터는 한국 저장)
   └─ GDPR, 개인정보 보호법 준수

3. 가용 서비스
   └─ 리전마다 다른 서비스 제공
   └─ 새 서비스는 서울에서 미지원 가능

4. 비용
   └─ 리전마다 가격 상이


4. 서버 서비스 Amazon EC2

4.1 EC2 개요

EC2란?

EC2 (Elastic Compute Cloud)는 AWS 클라우드 컴퓨팅 플랫폼의 핵심 서비스입니다.

핵심 특징:

  • 컴퓨팅 리소스: CPU, 메모리 등을 가진 서버 노드 기능 제공
  • 다양한 OS 지원: Linux, Windows, Mac OS
  • 탄력적 요금제: 실행 중일 때만 비용 발생

온프레미스 vs EC2 비교

항목 온프레미스 EC2
비용 지불 초기 대규모 설비 투자 + 운영비 종량제 (사용한 시간만)
용량 산정 사전 계획 필요 사용 후 변경 가능
배포 시간 구매 + 배송 (weeks) 콘솔/CLI (minutes)
스펙 변경 어려움 쉬움
확장성 제한적 무제한

4.2 EC2의 장점

EC2로 서버를 생성하는 이유

1. 전문 지식 불필요
   └─ 클릭 한 번으로 서버 생성 가능

2. 선택의 폭 넓음
   └─ AMI: 다양한 OS와 소프트웨어 사전 설치
   └─ 인스턴스 유형: CPU와 메모리 사양 선택 가능

3. 나중에 변경 용이
   └─ 성능 조정: 언제든지 업그레이드/다운그레이드 가능

4. 고장 시 빠른 복구
   └─ 같은 구성의 서버를 즉시 복제 가능

5. 부하 분산 가능
   └─ 같은 구성의 서버를 여러 개 만들어 트래픽 분산

6. 비용 절감
   └─ 접속이 줄어들면 서버 수를 줄여서 비용 절감

7. 일시적 사용에 최적
   └─ 개발 테스트, 이벤트 사이트 등에 유연한 활용

4.3 EC2 인스턴스 생성 절차

AWS 상의 가상 서버 구축 4단계

1. AWS 로그인
   ├─ 리전 선택
   └─ EC2 대시보드 열기

2. EC2 인스턴스 생성
   ├─ AMI 선택 (운영체제 및 소프트웨어)
   ├─ 인스턴스 유형 선택 (CPU, 메모리)
   ├─ 네트워크와 IP 주소 할당
   ├─ 스토리지 추가
   ├─ 보안 그룹 설정
   └─ 키 페어 선택/작성

3. EC2에 접속
   └─ SSH를 이용한 원격 접속

4. 소프트웨어 설치 및 설정
   ├─ 필요한 패키지 설치
   └─ 애플리케이션 구성

default vpc가 없을 경우 default vpc를 생성합니다. 커맨드 창을 사용해도 되고 싫으면 기본 vpc 생성 버튼을 눌러도 됩니다.

인스턴스 시작을 누르고 인스턴스 탭으로 돌아가면 아래와 같이 인스턴스가 만들어진 것을 확인할 수 있습니다.


4.4 AMI (Amazon Machine Image)

AMI란?

AMI = 루트 볼륨 템플릿

EC2 인스턴스를 생성하기 위한 "금형" 역할을 합니다.

AMI의 특징

┌─ AWS 제공 AMI
│  ├─ Amazon Linux, Ubuntu, Windows Server 등
│  └─ 기본 OS만 포함
│
├─ 3rd Party AMI
│  └─ 소프트웨어가 미리 설치된 이미지
│
├─ Community AMI
│  └─ 개발자가 공개한 이미지
│
└─ 고객 생성 AMI
   ├─ 자신이 구성한 서버를 이미지화
   └─ 마켓플레이스에 배포 가능

AMI의 활용

장점:
✅ 같은 설정의 서버를 얼마든지 생성 가능
✅ 반복적인 설정 작업 불필요
✅ 배포 시간 단축
✅ 버전 관리 가능

프로세스:
1. 기본 인스턴스 생성 및 설정
2. 설정된 인스턴스를 AMI로 변환
3. 해당 AMI에서 원하는 만큼 인스턴스 복제 생성
4. 마켓플레이스에 판매 가능 (선택사항)

4.5 인스턴스 유형 (Instance Type)

인스턴스 유형의 분류

범용 (General Purpose)
└─ T2, T3, M5, M5a, M4
   └─ 웹 서버, 비즈니스 애플리케이션 등 일반적인 용도
   └─ CPU, 메모리, 네트워크 밸런스 적절

컴퓨팅 최적화 (Compute Optimized)
└─ C5, C5n, C4
   └─ 고성능 컴퓨팅, 배치 처리
   └─ CPU 집약적 작업에 최적화

메모리 최적화 (Memory Optimized)
└─ R5, R5a, R4, X1e, X1, z1d
   └─ 인메모리 데이터베이스, 캐시 서버
   └─ 메모리 많이 필요한 작업

가속화된 컴퓨팅 (Accelerated Computing)
└─ P3, P2, G3, F1
   └─ 머신러닝, GPU 필요한 작업

스토리지 최적화 (Storage Optimized)
└─ H1, I3, D2
   └─ NoSQL 데이터베이스, 데이터 웨어하우징
   └─ I/O 집약적 작업

인스턴스 크기 (Instance Size)

t2 인스턴스 계열:
├─ t2.nano      : 1 vCPU, 0.5 GiB 메모리
├─ t2.micro    : 1 vCPU, 1 GiB 메모리 
├─ t2.small    : 1 vCPU, 2 GiB 메모리
├─ t2.medium   : 2 vCPU, 4 GiB 메모리
├─ t2.large    : 2 vCPU, 8 GiB 메모리
├─ t2.xlarge   : 4 vCPU, 16 GiB 메모리
└─ t2.2xlarge  : 8 vCPU, 32 GiB 메모리

선택 기준:
✅ 작은 것부터 시작 (나중에 변경 가능)
✅ 모니터링을 통해 필요시 업그레이드
✅ 예상 트래픽을 고려하여 선택

4.6 User Data

User Data란?

인스턴스 생성 시 자동으로 실행할 스크립트입니다.


4.7 인스턴스 수명 주기 (Instance Lifecycle)

상태별 요금

상태 요금 발생 설명
pending 시작 준비 중
running 실행 중 (요금 발생)
rebooting 재부팅 중
stopping 중지 준비 중
stopped 중지됨 (요금 미발생)
terminated 종료됨

4.8 Amazon EBS (Elastic Block Store)

EBS란?

EC2의 스토리지 (저장소) - 인스턴스에 연결되는 가상 디스크

EBS 유형

SSD (Solid State Drive)
├─ 범용 SSD (gp2, gp3)
│  └─ 일반적인 용도에 적합
│  └─ 비용: 중간
│  └─ 성능: 좋음
│
└─ 프로비저닝된 IOPS SSD (io1, io2)
   └─ 고성능 필요 시
   └─ 비용: 비쌈
   └─ 성능: 매우 좋음 (커스텀 IOPS)

HDD (Hard Disk Drive)
├─ 처리량 최적화 HDD (st1)
│  └─ 빅데이터, 데이터 웨어하우징
│  └─ 비용: 저렴
│
└─ Cold HDD (sc1)
   └─ 접근 빈도 낮은 데이터
   └─ 비용: 매우 저렴

HDD vs SSD

항목 HDD SSD
읽기/쓰기 속도 느림 빠름
가격 저렴 비쌈
내구성 약함 강함
소비 전력 보통 높음
용도 대용량 저장 고성능 필요

4.9 EBS 스냅샷 (Snapshot)

스냅샷란?

특정 시점의 EBS 볼륨 상태를 저장한 백업입니다.

스냅샷의 활용:

12월 15일 서버 상태
    ↓ (스냅샷 생성)
12월 15일 스냅샷 저장 ← 이 시점으로 복원 가능

12월 16일 서버 상태 (변경됨)
    ↓ (스냅샷 생성)
12월 16일 스냅샷 저장 ← 이 시점으로 복원 가능

12월 17일 서버 상태 (문제 발생)
    ↓ (복원)
12월 16일 스냅샷에서 복원 ← 문제 해결!

스냅샷의 장점

✅ 백업 자동화 가능
✅ 특정 시점으로 복원 가능
✅ 다른 EBS 볼륨 생성 가능
✅ 다른 리전으로 복제 가능
✅ 재해 복구 대비

4.10 EC2 연결 및 접근

연결 방법 1: SSH (Secure Shell)

클라이언트 측
├─ PuTTY, Tera Term 등의 SSH 클라이언트
└─ 키 페어 파일 필요 (.pem 또는 .ppk)

EC2 인스턴스
├─ SSH 데몬 (sshd) 실행
└─ 포트 22 (기본)

연결 명령:
$ cp C:\Users\EZ\Downloads\test.pem .ssh
$ ssh -i .ssh\test.pem ec2-user@35.77.77.220
또는 
$ ssh -i "C:\Users\EZ\Downloads/test.pem" ec2-user@35.77.77.220

연결 방법 2: AWS Systems Manager - Session Manager

장점:
✅ SSH 키 페어 불필요
✅ 보안 강화 (모든 세션 로깅)
✅ VPC 내부 인스턴스도 접근 가능
✅ 포트 22 열지 않아도 됨

전제 조건:
├─ EC2 인스턴스 프로필 필요
└─ AmazonSSMManagedInstanceCore 정책 필수

IP 주소 관리: Elastic IP

문제: 인스턴스 중지 후 시작 시 IP 주소 변경됨
└─ 104.20.xx.xx → 104.20.xx.zz (변경!)

해결책: Elastic IP
└─ AWS 계정 단위로 계약 (인스턴스 단위 아님)
└─ 인스턴스 중지/시작 해도 IP 유지
└─ 고정 IP 주소 필요시 필수

비용:
├─ 할당만 해도 비용 발생
└─ 사용하지 않으면 해제 권장

4.11 태깅 (Tagging)

태그란?

리소스를 관리하기 위한 메타데이터 키-값 쌍

예시:
├─ Name: WebServer01
├─ Team: DevOps
├─ Environment: Production
├─ Cost-Center: Engineering
└─ Owner: john.doe

태깅의 장점

1. 관리 편의
   ├─ 태그별 리소스 쿼리 가능
   ├─ 태그별 권한 제어 가능
   └─ 리소스 그룹 지정 가능

2. 비용 관리
   ├─ 태그별 비용 추적 가능
   └─ 팀별, 프로젝트별 비용 분석 가능

3. 자동화
   ├─ 태그 기반 자동 정책 적용
   └─ 태그 기반 백업 정책 설정

4.12 Elastic Load Balancing (ELB)

ELB란?

클라이언트 요청 트래픽을 여러 EC2 인스턴스에 자동으로 분산하는 서비스

사용자 요청
    ↓
로드 밸런서
    ↓
┌──────┬──────┬──────┐
서버 A  서버 B  서버 C (자동 분산)

장점:
✅ 단일 서버 과부하 방지
✅ 서버 장애 시 자동 우회
✅ 높은 가용성 제공
✅ 자동 확장과 연동

ELB의 종류

  1. ALB (Application Load Balancer)
    ├─ 레이어: L7 (애플리케이션 계층)
    ├─ 기반 프로토콜: HTTP, HTTPS
    ├─ 라우팅 방식:
    │   ├─ URL 경로 기반
    │   ├─ 호스트명(도메인) 기반
    │   ├─ HTTP 헤더, 쿼리 스트링
    ├─ 주요 기능:
    │   ├─ 콘텐츠 기반 라우팅
    │   ├─ SSL/TLS 종료
    │   ├─ WebSocket, HTTP/2 지원
    ├─ 대상:
    │   ├─ EC2
    │   ├─ ECS / EKS
    │   ├─ Lambda
    └─ 용도:
     ├─ 웹 애플리케이션
     ├─ 마이크로서비스 아키텍처
     └─ API 서버
  2. NLB (Network Load Balancer)
    ├─ 레이어: L4 (전송 계층)
    ├─ 기반 프로토콜:
    │   ├─ TCP
    │   ├─ UDP
    │   └─ TLS
    ├─ 라우팅 방식:
    │   ├─ IP 주소 기반
    │   └─ 포트 기반
    ├─ 주요 특징:
    │   ├─ 초고성능 (수백만 TPS)
    │   ├─ 매우 낮은 지연 시간
    │   ├─ 고정 IP 지원
    │   ├─ 소스 IP 보존
    │   └─ VPC Endpoint(VPCE) 연동 가능
    ├─ 대상:
    │   ├─ EC2
    │   ├─ 컨테이너
    │   └─ 온프레미스 서버
    └─ 용도:
     ├─ 대규모 트래픽 처리
     ├─ 실시간 서비스
     └─ TCP/UDP 기반 애플리케이션
  3. GWLB (Gateway Load Balancer)
    ├─ 레이어: L3 ~ L4 (네트워크/전송 계층)
    ├─ 기반 기술:
    │   └─ GENEVE 프로토콜
    ├─ 라우팅 방식:
    │   └─ 트래픽을 가상 어플라이언스로 투명하게 전달
    ├─ 주요 기능:
    │   ├─ 트래픽 가로채기(인라인)
    │   ├─ 보안/검사 장비와 연동
    │   ├─ 중앙 집중식 트래픽 제어
    │   └─ Scale-out / Scale-in 자동화
    ├─ 대상:
    │   └─ 서드파티 가상 어플라이언스
    │       (방화벽, IDS/IPS, WAF 등)
    └─ 용도:
     ├─ 네트워크 보안
     ├─ 트래픽 검사
     └─ 정책 기반 접근 제어
    
    

![](https://velog.velcdn.com/images/atfield1988/post/7afe6888-1fc8-4acc-8252-b4a21cce9725/image.png)

### ELB의 장점

✅ 상태 확인 (Health Check)
└─ 정상 서버로만 트래픽 전송

✅ HTTPS 지원
└─ SSL/TLS 암호화

✅ 자동 확장 연동
└─ ASG와 함께 작동

![](https://velog.velcdn.com/images/atfield1988/post/93b5e042-c128-45fb-93a0-5dca38896514/image.png)

---

## 4.13 오토 스케일링 (Auto Scaling)
![](https://velog.velcdn.com/images/atfield1988/post/013acb4c-064d-4f38-a347-acfc37a3dd07/image.png)AWS Auto Scaling을 사용하면, 조정 계획을 통해 조정 가능한 AWS 리소스를 구성 및 관리할 수 있습니다. 또한 리소스 사용률을 최적화하는 방법을 정의하는 조정 전략을 선택할 수 있습니다. 가용성 또는 비용에 대해 최적화하거나 둘 사이의 균형을 유지하도록 최적화할 수 있습니다. 또는 사용자 지정 전략을 활용하여 유연성을 개선할 수 있습니다. 

### 오토 스케일링이 필요한 이유

시간대별 트래픽 변동:

월-금 (업무 시간): 트래픽 많음
└─ 서버 많이 필요

토-일 (비업무 시간): 트래픽 적음
└─ 서버 적게 필요

수동 조작 → 실수 위험, 시간 소모
자동 조정 → 효율적, 비용 절감

![](https://velog.velcdn.com/images/atfield1988/post/3d7f1c40-b08b-41d6-920f-9e1a3e85f97c/image.png)

### EC2 오토 스케일링

정의:
애플리케이션 부하를 처리할 수 있는 EC2 수량을
Min과 Max 사이에서 자동으로 추가/제거

예시:
Min: 2개 (최소 2개는 항상 실행)
Desired: 3개 (목표 3개 유지)
Max: 10개 (최대 10개까지만 증가)

![](https://velog.velcdn.com/images/atfield1988/post/5091868e-5a43-4a36-9fbd-d0c1f3643da8/image.png)

### 확장 vs 축소

![](https://velog.velcdn.com/images/atfield1988/post/5a217a10-0b28-45d6-a083-84df07a3975f/image.png)

### 오토 스케일링의 요소

![](https://velog.velcdn.com/images/atfield1988/post/6e9f45fe-61e3-45fc-81fc-c8217b17617c/image.png)

### 오토 스케일링 정책

![](https://velog.velcdn.com/images/atfield1988/post/a30720fb-fd0e-43fe-9e3a-43e982872123/image.png)


### 오토 스케일링의 장점


![](https://velog.velcdn.com/images/atfield1988/post/958ec9ce-ad42-4513-842e-931f500adbf5/image.png)

---
드디어 살겠구만!