Load Balancing 에서 퍼블릭 IP와 프라이빗 IP
1. 퍼블릭 IP
1) 정의
퍼블릭 IP는 인터넷을 통해 직접 접근할 수 있는 IP 주소.
2) 장점
- 설정이 간단: 초기 설정이 쉽고, 어디서든 접근 가능.
- 다른 네트워크 연결 지원: 서로 다른 네트워크 간 통신에 적합.
3) 단점
- 보안 위험: 외부 접근이 가능하여 방화벽 설정이 필수.
- 비용 발생: 퍼블릭 IP 사용 시 데이터 전송 비용 추가.
- 네트워크 비효율: 같은 VPC 내에서도 인터넷을 경유하게 되어 비효율적.
4) 권장 사례
- 초기 테스트 환경에서 빠른 설정이 필요할 때.
- Nginx와 백엔드 서버가 서로 다른 네트워크나 VPC에 있을 때.
2. 프라이빗 IP
1) 정의
프라이빗 IP는 동일한 네트워크(VPC) 내부에서만 접근 가능한 IP 주소.
2) 장점
- 보안성: 외부 접근이 불가능하여 보안 위협이 감소.
- 비용 절감: VPC 내부 통신은 데이터 전송 요금이 없음.
- 성능 최적화: 데이터가 인터넷을 거치지 않아 지연 시간이 감소.
3) 단점
- 제한된 접근성: 같은 네트워크 내에서만 접근 가능.
- 추가 설정 필요: VPN 또는 VPC 피어링 같은 구성이 필요.
4) 권장 사례
- Nginx와 백엔드 서버가 같은 VPC에 있을 때.
- 내부 통신만 필요한 프로덕션 환경.
3. 퍼블릭 IP vs 프라이빗 IP: 비교 표
항목 | 퍼블릭 IP | 프라이빗 IP |
---|---|---|
보안 | 외부 접근 가능 (보안 위험 높음) | 외부 접근 불가 (보안성 높음) |
비용 | 인터넷 전송 요금 발생 | 같은 VPC 내에서는 무료 |
설정 | 간단 (기본적으로 접근 가능) | 네트워크 설정 필요 |
성능 | 인터넷 경유로 성능 약간 저하 | VPC 내 직접 연결로 성능 최적화 |
권장 환경 | 서로 다른 네트워크에서의 통신 필요 시 | 같은 VPC 내에서 운영 시 |
4. 추가 내용
1) 프라이빗 IP와 외부 접근
프라이빗 IP를 사용하면서 외부에서 접근이 필요한 경우,
- NAT 게이트웨이를 활용하여 인터넷 액세스를 제공.
- 로드 밸런서를 사용해 외부 요청은 퍼블릭 IP로 처리하고, 내부 통신은 프라이빗 IP로 처리.
2) AWS 보안 그룹 설정
퍼블릭 IP를 사용할 경우, 보안 그룹 설정을 통해 필요한 포트(예: 8080)만 허용하여 보안을 강화.
5. Nginx에서 사용 예시
1) 같은 VPC에 배포된 경우
프라이빗 IP를 사용하여 비용 절감 및 성능 최적화를 달성합니다.
upstream backend_servers {
server 10.0.1.10:8080; # EC2-1 프라이빗 IP
server 10.0.1.11:8080; # EC2-2 프라이빗 IP
}
2) 서로 다른 네트워크나 인터넷 통신이 필요한 경우
퍼블릭 IP를 사용하여 원활한 통신을 지원합니다.
upstream backend_servers {
server 3.38.150.101:8080; # EC2-1 퍼블릭 IP
server 3.38.150.102:8080; # EC2-2 퍼블릭 IP
}