클라우드 보안 - AWS 기초 · EC2 완전 정리
Phase 2 | Cloud Security
AWS 기초 · EC2 완전 정리
클라우드 vs 온프레미스 · 글로벌 인프라 · EC2 인스턴스 · User Data · 접속 방법까지
01
AWS 개요 — 클라우드란 무엇인가
AWS(Amazon Web Services)는 인터넷을 통해 서버, 스토리지, 데이터베이스, 네트워크 등 IT 리소스를 제공하는 클라우드 플랫폼이다. 필요할 때 즉시 생성하고 사용한 만큼만 비용을 낸다.
On-demand
- 필요할 때 즉시 생성/삭제
- 수분 내 서버 준비 완료
- 사전 예약, 장기 계약 불필요
- 실패해도 비용 최소화
종량제 (Pay-as-you-go)
- 사용한 만큼만 과금
- 초기 자본 지출(CapEx) 없음
- 운영 비용(OpEx) 모델
- 유휴 리소스 비용 제거 가능
유연성 (Elasticity)
- 트래픽 급증 시 자동 확장
- 트래픽 감소 시 자동 축소
- Auto Scaling 기반 동작
- 피크 트래픽 대비 과잉 설계 불필요
클라우드 vs 온프레미스 비교
| 항목 | 클라우드 (AWS) | 온프레미스 |
|---|---|---|
| 초기 비용 | 낮음 서버 구매 불필요 | 높음 서버/네트워크 장비 구매 |
| 확장성 | 자동/즉시 — 클릭 몇 번으로 수백 대 | 물리적 증설 필요 — 수주~수개월 소요 |
| 운영 관리 | AWS가 인프라 관리 (Managed Service) | 전담 인력이 직접 관리 |
| 가용성 | 글로벌 다중 리전 & AZ 기반 | 단일 또는 제한적 위치 |
| 보안 책임 | 공동 책임 모델 (Shared Responsibility) | 전부 사용자 책임 |
| 적합 환경 | 스타트업, 변동성 높은 서비스 | 규제 환경, 완전한 통제 필요 시 |
공동 책임 모델 (Shared Responsibility) | AWS는 클라우드의 보안(Security OF the Cloud) — 물리 인프라, 하이퍼바이저, 글로벌 네트워크를 책임진다. 고객은 클라우드 내 보안(Security IN the Cloud) — OS 패치, IAM 설정, 데이터 암호화, 방화벽 규칙을 책임진다.
02
AWS 글로벌 인프라 구조
AWS 인프라는 Data Center → Availability Zone → Region 3계층으로 구성된다. 계층 분리를 통해 물리적 장애가 발생해도 서비스를 지속한다.
리전
지리적 위치 단위. 2개 이상의 AZ로 구성. 리전 간 데이터는 기본적으로 이동하지 않음 (데이터 주권)
ap-northeast-2 (서울)
가용 영역
1개 이상의 데이터센터 묶음. 물리적으로 분리되어 장애 격리. 리전 내 AZ 간 저지연 연결
ap-northeast-2a / 2b / 2c
데이터센터
실제 서버, 스토리지, 네트워크가 위치하는 물리 시설. 독립 전원 및 냉각 시스템
수천 대 서버 운영
고가용성 설계 원칙 | 서비스를 다중 AZ(Multi-AZ)에 배포하면 하나의 AZ 장애 시 다른 AZ가 트래픽을 이어받는다. 리전 간 장애 대비는 Multi-Region 아키텍처로 구성한다.
주요 서비스와 AWS 서비스 매핑
| 온프레미스 자원 | AWS 서비스 | 역할 |
|---|---|---|
| 물리 서버 | EC2 | 가상 서버 (VM) |
| 관계형 DB | RDS | 관리형 데이터베이스 |
| 파일 스토리지 | S3 | 오브젝트 스토리지 |
| 로드밸런서 | ELB (ALB/NLB) | 트래픽 분산 |
| 방화벽 | Security Group / NACL | 네트워크 접근 제어 |
| DNS | Route 53 | 도메인 관리 및 라우팅 |
03
EC2 (Elastic Compute Cloud) — 가상 서버
EC2는 AWS에서 제공하는 가상 서버(VM)다. AMI로 OS와 환경을 정의하고, 인스턴스 유형으로 CPU/메모리 사양을 선택한다.
AMI (Amazon Machine Image)
AMI 구성 요소
- OS — Amazon Linux, Ubuntu, Windows 등
- 패키지 — 사전 설치된 소프트웨어
- 설정 — 네트워크, 볼륨 구성 포함
- EBS 스냅샷 기반으로 저장
AMI 종류
- AWS 제공 — Amazon Linux 2023, Ubuntu 등
- Custom AMI — 사용자가 직접 생성 (골든 이미지)
- AWS Marketplace — 서드파티 이미지 (유료 포함)
- AMI는 리전 단위로 존재, 복사 가능
보안 관점 | Custom AMI 사용 시 불필요한 패키지, 기본 자격증명, 디버그 설정을 반드시 제거 후 이미지화해야 한다. Marketplace AMI는 공급자 신뢰성 검증 필수.
04
EC2 인스턴스 유형
t3.micro
t
Family (계열)
3
Generation (세대)
micro
Size (성능 크기)
인스턴스 계열 정리
t
범용 Burstable
저비용, 테스트, 개발 환경. CPU 크레딧 기반
m
범용 (General)
CPU/메모리 균형. 프로덕션 일반 서버
c
컴퓨팅 최적화
CPU 집약 작업. 웹 서버, 배치 처리
r
메모리 최적화
대용량 인메모리 DB, 캐시 서버
p
GPU 가속
ML 학습, 딥러닝, 그래픽 렌더링
i
스토리지 최적화
고속 NVMe SSD. NoSQL, 데이터 웨어하우스
Size 종류
| Size | vCPU (예시) | 메모리 (예시) | 용도 |
|---|---|---|---|
| nano / micro | 1~2 | 0.5~1 GB | 테스트, 마이크로서비스, 프리티어 |
| small / medium | 1~2 | 2~4 GB | 개발 서버, 소규모 서비스 |
| large / xlarge | 2~4 | 8~16 GB | 프로덕션 일반 서버 |
| 2xlarge 이상 | 8+ | 32 GB+ | 고성능 DB, 빅데이터 처리 |
05
User Data — 인스턴스 자동 초기화
인스턴스 최초 부팅 시 root 권한으로 자동 실행되는 스크립트. 반복적인 수동 설정을 제거하고 일관된 환경을 구성하는 데 사용한다.
인스턴스 시작Launch
→
cloud-init 실행AWS 에이전트
→
User Data 스크립트root 권한 실행
→
초기화 완료서비스 준비 상태
User Data 예시 — Apache 웹 서버 자동 설치
#!/bin/bash
# 패키지 업데이트
yum update -y
# Apache 설치
yum install -y httpd
# 서비스 시작 및 자동 시작 등록
systemctl start httpd
systemctl enable httpd
# 간단한 테스트 페이지 생성
echo "<h1>Hello from AWS EC2</h1>" > /var/www/html/index.html
주요 사용 시나리오
- 패키지 설치 자동화
- 환경 변수 / 설정 파일 생성
- 애플리케이션 코드 배포
- 보안 에이전트 설치 (CloudWatch, SSM)
- 서비스 자동 시작 등록
주의 사항
- 최초 1회만 실행 (재부팅 시 미실행)
- 실행 로그:
/var/log/cloud-init-output.log - 스크립트 오류 시 인스턴스는 정상 기동
- 민감 정보(비밀번호, 키) 직접 포함 금지
- 대신 SSM Parameter Store 또는 Secrets Manager 활용
보안 주의 | User Data는 인스턴스 메타데이터 엔드포인트(
169.254.169.254/latest/user-data)에서 평문으로 조회 가능하다. API 키, DB 패스워드 등 민감 정보를 직접 포함하지 말고 AWS Secrets Manager에서 런타임에 가져오는 방식을 사용해야 한다.
06
EC2 접속 방법
SSH Key Pair
SSH 접속 — Linux 인스턴스
- 키페어 (.pem 파일) 기반 인증
- 인스턴스 생성 시 키페어 지정 필수
- 퍼블릭 IP 또는 탄력적 IP 필요
- 보안 그룹에서 22번 포트 허용 필요
- pem 파일 권한:
chmod 400 key.pem
Browser / Web
EC2 Instance Connect
- AWS 콘솔에서 브라우저로 직접 접속
- 별도 SSH 클라이언트 설치 불필요
- IAM 권한 기반 인증
- Amazon Linux 2, Ubuntu 지원
- 임시 키 자동 생성 — 별도 키페어 불필요
SSH 접속 명령어
# pem 파일 권한 설정 (최초 1회)
chmod 400 key.pem
# Amazon Linux 접속
ssh -i key.pem ec2-user@3.34.XXX.XXX
# Ubuntu 접속
ssh -i key.pem ubuntu@3.34.XXX.XXX
# 기본 사용자 계정 정리
# Amazon Linux → ec2-user
# Ubuntu → ubuntu
# RHEL / CentOS → ec2-user or centos
# Windows → Administrator (RDP 사용)
추가 접속 방법 | SSM Session Manager를 사용하면 퍼블릭 IP 없이, 22번 포트 없이 프라이빗 인스턴스에도 접속할 수 있다. IAM 권한 기반으로 동작해 키페어가 필요 없고 접속 이력이 CloudTrail에 기록되어 보안 감사에 유리하다.
보안 관점 접속 방법 비교
| 방법 | 포트 필요 | 키페어 필요 | 퍼블릭 IP 필요 | 감사 로그 |
|---|---|---|---|---|
| SSH (Key Pair) | 22/tcp 필요 | 필요 | 필요 | 제한적 |
| EC2 Instance Connect | 22/tcp 필요 | 불필요 | 필요 | CloudTrail 기록 |
| SSM Session Manager | 불필요 | 불필요 | 불필요 | CloudTrail + 세션 로그 |
'보안 공부' 카테고리의 다른 글
| 클라우드 보안 - IAM · S3 완전 정리 (0) | 2026.06.01 |
|---|---|
| 클라우드 보안 - EBS · VPC · 네트워크 완전 정리 (0) | 2026.06.01 |
| 네트워크 보안 - 사내망 보안 구조 · Snort IDS 완전 정리 (0) | 2026.05.29 |
| 네트워크 보안 - Spoofing · Sniffing · DoS/DDoS · 네트워크 구조 완전 정리 (0) | 2026.05.29 |
| 네트워크 보안 - Port Scan · Nmap 완전 정리 (0) | 2026.05.29 |