HTTP와 HTTPS 차이점
HTTP
- 정의: 클라이언트와 서버 간의 정보를 주고받는 프로토콜이다.
- 특징: 암호화되지 않은 상태로 데이터를 전송한다. 이 때문에 중간자 공격에 취약하다.
- 적용 예: 보안이 중요하지 않은 일반적인 웹 사이트에서 사용한다.
HTTPS
- 정의: HTTP에 보안 기능이 추가된 프로토콜이다.
- 특징: SSL 또는 TLS를 통해 데이터를 암호화한다. 이로 인해 데이터의 기밀성과 무결성이 보장된다.
- 적용 예: 온라인 쇼핑, 인터넷 뱅킹 등 개인 정보가 포함된 거래에 주로 사용한다.
AWS에서 HTTPS 적용하기
AWS에서는 주로 Elastic Load Balancer(ELB)를 통해 HTTPS를 구현한다.
- SSL/TLS 인증서 획득: AWS Certificate Manager(ACM)에서 인증서를 발급받거나, 외부 인증 기관에서 발급받은 인증서를 가져온다.
- ELB 설정하기: ELB에 HTTPS 리스너를 추가하고, 인증서를 ELB에 연결한다.
- 보안 그룹 설정하기: HTTPS 통신을 위해 443 포트를 열어주는 보안 그룹을 설정한다.
- 서버 설정하기: 백엔드 서버가 HTTPS를 지원하도록 설정한다. 이는 Java, Spring, React 등을 사용하는 백엔드 개발에서 중요하다.
HTTP와 HTTPS의 장단점
HTTP
장점: 간단하고 빠르다. 오버헤드가 적어 속도가 빠르다.
단점: 암호화되지 않아 보안에 취약하다. 중요한 데이터를 다루기에는 부적합하다.
HTTPS
장점: 데이터 암호화로 보안이 강화된다. 중요한 데이터를 안전하게 전송할 수 있다.
단점: 암호화와 복호화 과정이 필요해 처리 시간이 다소 느려질 수 있다.
로드 밸런싱
로드 밸런싱 개념
로드 밸런싱은 트래픽을 여러 서버에 분산시켜 시스템의 부하를 줄이고, 안정성과 성능을 향상시키는 방법이다.
AWS에서 로드 밸런싱 구현
AWS에서는 ELB를 사용해 로드 밸런싱을 구현한다. ELB는 자동 확장성, 고가용성, 보안성을 제공한다.
- 자동 확장성: 트래픽 증가에 따라 자동으로 확장한다.
- 고가용성: 여러 가용 영역에 걸쳐 서비스를 제공해 높은 가용성을 보장한다.
- 보안성: SSL/TLS 지원으로 안전한 데이터 전송을 가능하게 한다.
로드 밸런싱의 필요성
로드 밸런싱은 시스템의 안정성을 유지하고, 사용자에게 일관된 서비스 품질을 제공하기 위해 필수적이다. 특히 고트래픽 환경에서는 서버의 부하를 적절히 분산시켜 시스템의 다운타임을 방지하고, 서비스의 가용성을 높이는 역할을 한다.