728x90
반응형
목차
ec2에서 그룹설정에 http https가 기본으로 세팅 안되어있는 이유
WS는 **최소 권한 원칙(Principle of Least Privilege)**에 따라
EC2 인스턴스의 보안그룹에 아무 포트도 기본으로 열어주지 않습니다.
- AWS 콘솔 → EC2 → 보안 그룹 → 인바운드 규칙 편집
- 다음과 같이 추가:
유형 프로토콜포트 범위소스
| HTTP | TCP | 80 | 0.0.0.0/0 |
| HTTPS | TCP | 443 | 0.0.0.0/0 |
AWS 기본 보안 그룹 정책
구분기본 상태
| Inbound | ❌ 기본은 모두 차단 |
| Outbound | ✅ 기본은 모두 허용 (0.0.0.0/0) |
배포시 ssl인증서 설정할 때 로드밸런싱이랑 라우트53을 같이 쓰는 이유
사용자 요청
↓
Route 53 (도메인 → 로드밸런서로 연결)
↓
ALB (로드밸런서에서 SSL 인증서 적용 + 트래픽 분산)
↓
EC2 / Lambda / ECS 등 백엔드
1. 로드밸런서(ALB/ELB)는 SSL 종료지점(TLS termination point)
- 클라이언트 → ALB까지는 HTTPS 암호화 통신
- ALB에서 SSL 인증서를 해석하고 → 내부 서버로는 평문 HTTP로 전달 가능
- 즉, 암호화/복호화는 로드밸런서가 맡고, 백엔드는 단순하게 처리
- 💡 SSL 인증서는 ALB에 연결됨, EC2가 직접 인증서 안 써도 됨
2. 도메인을 로드밸런서(ALB)의 DNS 이름으로 연결해주는 DNS 서비스
- 예: mydomain.com → my-alb-123456.ap-northeast-2.elb.amazonaws.com
- Route 53이 도메인의 트래픽을 올바른 리소스로 연결해주는 역할
nginx의 역할
| 🌐 웹 서버 | 정적 파일(html, css, js, 이미지 등)을 클라이언트에 직접 제공 | localhost:80/index.html |
| 🔁 리버스 프록시 (Reverse Proxy) | 외부 요청을 내부 서버(예: Express, Flask 등)로 전달 | Nginx가 localhost:3000으로 프록시 |
| ⚖️ 로드 밸런서 | 여러 백엔드 서버에 요청을 분산 | 서버 A, B, C에 라운드로빈 방식 분산 |
| 🔐 SSL 종단 (TLS termination) | HTTPS 암호화를 Nginx에서 처리 | 인증서 설치 후 HTTPS 처리 |
| 🚧 보안 필터링 | IP 차단, CORS 제어, 리퀘스트 제한 | deny 1.2.3.4;, limit_req_zone 등 |
| 🔁 리디렉션 및 URL 재작성 | 특정 요청을 다른 주소로 리디렉션 | example.com → www.example.com |
| 📦 캐싱 | 정적 자원 캐시로 응답 속도 향상 | 브라우저 캐시 설정 등 |
nginx vs 로드밸런서
| 기본 정체성 | 웹 서버 + 리버스 프록시 | 트래픽 분산 전문 장비 또는 서비스 |
| 주요 기능 | 정적 파일 서빙, SSL, 프록시, 리디렉션, 로드밸런싱 등 | 트래픽 분산 |
| 사용 위치 | 서버 내에서 직접 설정 (소프트웨어) | 클라우드, 하드웨어, ALB 등 |
| 확장성 | 유연하고 다기능 | 트래픽 분산에 최적화됨 |
| 예시 | Nginx config로 백엔드 A/B 분산 | AWS ALB, NLB, GCP Load Balancer 등 |
반응형
'backend' 카테고리의 다른 글
| 도커와 함께 CI/CD 해보기 (1) | 2025.05.25 |
|---|---|
| 우당탕탕 aws서버 ssl 인증하기 feat: certbot (2) | 2025.05.21 |
| [MySql] Docker setting 해보자 (1) | 2025.05.14 |