ShopEasy AWS 배포 & 보안 실습
이커머스 웹 애플리케이션을 AWS에 배포하고, 보안 서비스를 적용하는 실습 과정
인프라 구축 → 서비스 연결 → 배포 완성 → 보안 강화 → 모니터링 & 정리
(HTML/CSS/JS)
포트 5000
- VPC - 퍼블릭/프라이빗 서브넷으로 분리된 전용 네트워크 (NAT Gateway 포함)
- EC2 (Node.js Express) - 퍼블릭 서브넷에서 포트 5000으로 API 요청 수신
- RDS MySQL - 프라이빗 서브넷, 상품/주문/회원 데이터 저장
- IAM Role - EC2에 AWS 서비스 접근 권한 부여 (Access Key 없이)
- S3 (리뷰 이미지) - 사용자가 업로드한 리뷰 사진 저장
- DynamoDB - 리뷰 데이터 저장 (NoSQL)
- S3 정적 웹 호스팅 - React 프론트엔드 배포
- CloudWatch - EC2, RDS 모니터링 및 경보
- 리전: ap-northeast-2 (서울) 고정
- 도메인 없이 HTTP만 사용 (HTTPS/인증서 불필요)
- AWS Access Key를 코드에 넣지 않음 - IAM Role 사용
- 실습 후 반드시 리소스 정리 (과금 주의!)
인프라 구축
VPC 네트워크 구축
ShopEasy 전용 네트워크를 만들자 - VPC, 서브넷, IGW, NAT Gateway, 라우트 테이블
Chapter 02EC2 서버 배포
ShopEasy API 서버를 클라우드에 올리자 - EC2 인스턴스, 보안 그룹, Node.js 설치
서비스 연결
RDS 데이터베이스
SQLite를 진짜 데이터베이스로 교체하자 - RDS MySQL, DB 서브넷 그룹, 보안 그룹
Chapter 04IAM 역할 & 접근 제어
서버에 AWS 서비스 사용 권한을 안전하게 부여하자 - IAM 정책, 역할, 인스턴스 프로파일
배포 완성
S3 스토리지 + DynamoDB
리뷰 사진은 S3에, 리뷰 데이터는 DynamoDB에 저장하자
Chapter 06프론트엔드 S3 배포
쇼핑몰 화면을 S3에 배포하고 전체 서비스를 테스트하자
보안 강화
보안 그룹 최적화
SSH 접근을 제한하고 보안 그룹 규칙을 최적화하자
Chapter 08IAM 최소 권한
FullAccess를 제거하고 꼭 필요한 권한만 부여하자
Chapter 09S3 버킷 보안
S3 버킷의 퍼블릭 접근을 최소화하고 안전하게 관리하자
Chapter 10KMS 데이터 암호화
RDS, S3, DynamoDB의 데이터를 KMS로 암호화하자
Chapter 11Secrets Manager 비밀 관리
.env의 DB 비밀번호를 Secrets Manager로 안전하게 관리하자
Chapter 12CloudTrail 감사 로깅
누가 언제 무엇을 했는지 API 호출을 기록하자
Chapter 13GuardDuty 위협 탐지
AWS 계정의 보안 위협을 자동으로 탐지하자
Chapter 14VPC Network ACL
서브넷 레벨 방화벽으로 보안 그룹과 이중 방어를 구축하자
Chapter 15VPC Flow Logs
네트워크 트래픽을 기록하고 의심스러운 접근을 분석하자
Chapter 16IMDSv2 메타데이터 보안
EC2 메타데이터 서비스를 v2로 강화하여 자격증명 탈취를 방지하자
Chapter 17SSM Session Manager
SSH 포트를 닫고 안전하게 서버에 접속하자
Chapter 18Amazon Inspector
EC2 서버의 보안 취약점을 자동으로 스캔하자
Chapter 19IAM Access Analyzer
외부에 노출된 리소스와 과도한 권한을 자동으로 찾아내자
Chapter 20CloudWatch 보안 이벤트 알림
보안 관련 API 호출을 실시간으로 감지하고 알림을 받자
Chapter 21AWS Config 규정 준수
보안 규칙 위반을 자동으로 탐지하고 컴플라이언스를 관리하자
Chapter 22CloudFront + WAF
CDN으로 프론트엔드를 배포하고 웹 방화벽으로 공격을 차단하자