[aws] https 적용기 3탄 : HTTPS 진행하면서 알아야 하는 개념 정리@

Updated:

Categories:

Tags: , ,

📌 개인적인 공간으로 공부를 기록하고 복습하기 위해 사용하는 블로그입니다.
정확하지 않은 정보가 있을 수 있으니 참고바랍니다 :😸
[틀린 내용은 댓글로 남겨주시면 복받으실거에요]

HTTPS 진행하면서 알아야 하는 개념 정리@

HTTPS란?

HTTPS는 HTTP에 SSL/TLS 프로토콜을 결합하여 데이터를 안전하게 전송하는 보안 통신 프로토콜이다

HTTP와 HTTPS의 차이

  • HTTP (Hypertext Transfer Protocol)
    • 데이터를 평문으로 전송 → 도청, 변조, 피싱에 취약.
    • 보안이 필요 없는 일반적인 요청에서 사용.
  • HTTPS (HTTP Secure)
    • SSL/TLS 프로토콜을 사용하여 데이터를 암호화하여 전송 - 보안을 강화.
    • 클라이언트와 서버 간 통신 보호:
      • 데이터 암호화
      • 무결성 (데이터 변조 방지)
      • 인증 (서버 신뢰 보장)

HTTPS를 적용하기 위해 필요한 핵심 요소

  1. SSL/TLS 인증서
    • SSL/TLS 인증서는 클라이언트(사용자의 브라우저)와 서버 간 안전한 연결을 보장
    • 인증서는 신뢰할 수 있는 CA(Certificate Authority)에서 발급
    • AWS에서는 AWS Certificate Manager (ACM)을 사용해 인증서를 무료로 발급받을 수 있다.
  2. 도메인
    • SSL 인증서를 적용하려면 고유한 도메인이 필요
    • 예: example.com, www.example.com
    • Route 53을 통해 도메인 관리와 트래픽 라우팅 가능

로드밸런서 (Elastic Load Balancer)

  • 역할
    • 클라이언트의 요청을 여러 EC2 인스턴스로 분산 처리
    • HTTPS 통신을 처리하여 보안을 강화
  • 추가 기능
    • 헬스 체크: EC2 상태를 모니터링하고, 비정상 상태의 서버를 제외.

CloudFront

  • AWS의 CDN(Content Delivery Network) 서비스
    • CDN은 인터넷 사용자가 더 빠르게 웹 콘텐츠를 다운로드하거나 사용할 수 있도록 전 세계에 분산된 서버 네트워크를 활용하는 기술
  • 전 세계에 분산된 서버를 통해 콘텐츠를 빠르게 제공
  • HTTPS를 적용하여 클라이언트와 CloudFront 간 통신을 암호화

CloudFront의 주요 역할

  1. 정적 콘텐츠 처리
    • S3 버킷에 저장된 정적 파일을 캐싱해 제공
  2. 동적 요청 처리
    • 로드밸런서를 통해 EC2 인스턴스로 API 요청 전달
  3. HTTPS 통신 보장
    • 인증서를 사용해 사용자와의 통신을 안전하게 암호화

HTTPS 적용 흐름

도메인 구매 및 Route 53 설정

  1. 도메인 구매
    • 도메인은 인터넷상의 고유한 주소
    • 도메인 등록 대행사(예: 가비아, AWS Route 53)에서 도메인을 구매
  2. Route 53 호스팅 영역 생성
    • Route53은 AWS의 DNS 서비스로, 도메인 이름을 서버(IP 주소)와 연결해주는 역할을 한다.
    • 도메인 이름을 AWS 리소스(S3, CloudFront, 로드밸런서 등)에 연결

📌 네임서버

구매한 도메인의 네임서버를 Route53의 네임서버로 변경하면, 도메인 관리를 AWS에서 할 수 있다.

SSL/TLS 인증서 발급 (ACM)

  1. AWS ACM (AWS Certificate Manager)**를 통해 인증서를 발급
  2. CloudFront 인증서 발급 시 유의점

    📌 북버지니아 리전

    CloudFront에서 인증서를 사용하려면 반드시 북버지니아 리전에서 발급해야 한다.

  • 인증서가 하는 역할
    • 클라이언트가 접속한 서버가 신뢰할 수 있는 서버임을 보장
    • 클라이언트-서버 간 데이터를 암호화
  • ACM을 사용하는 이유
    • AWS Certificate Manager는 SSL 인증서를 무료로 제공
    • 도메인 소유권을 확인하고, 인증서를 자동으로 갱신

CloudFront와 HTTPS

CloudFront의 역할

  1. 클라이언트와 서버 사이에 CDN 역할을 해서 정적 파일 제공 속도를 높인다.
  2. HTTPS 인증서를 적용해 클라이언트와 CloudFront 간의 안전한 연결을 보장

CloudFront 설정

  • 오리진 (CloudFront가 데이터를 가져오는 원본 서버)
    • CloudFront는 사용자 요청을 받고, 콘텐츠를 제공하기 위해 오리진 서버에서 데이터를 가져
      • 정적 콘텐츠S3 버킷에 저장되어 있음
      • 동적 콘텐츠는 EC2 인스턴스에서 처리, CloudFront는 이러한 요청을 로드밸런서를 통해 EC2 서버로 전달.
  • 뷰어 프로토콜 정책 : 사용자가 CloudFront에 요청할 때 사용할 프로토콜(HTTP/HTTPS)을 결정하는 설정
    • Redirect HTTP to HTTPS : HTTP 요청을 HTTPS로 리다이렉트 → 보안 연결(TLS/SSL)을 강제
    • HTTPS Only : CloudFront가 HTTPS 요청만 허용. HTTP 요청은 차단.
  • 대체 도메인(CNAME)

    CloudFront의 기본 도메인 대신, example.com 같은 커스텀 도메인을 사용하기 위해 설정한다.

📌 정리

  • 사용자 → 커스텀 도메인(example.com)

    사용자는 example.com을 입력.

  • Route 53 → CloudFront

    DNS(Route 53)가 사용자 요청을 CloudFront로 전달.

  • CloudFront → 오리진(S3, EC2)

    CloudFront가 오리진에서 콘텐츠를 가져와 사용자에게 제공.

로드밸런서 (EC2와 HTTPS)

로드밸런서의 역할

  1. EC2 서버에 대한 트래픽을 분산 처리
  2. 클라이언트와 EC2 간의 HTTPS 통신을 보장

로드밸런서 설정

  • 리스너:
    • HTTP 요청을 받아 HTTPS로 리다이렉트
    • HTTPS 요청은 EC2로 전달
  • 인증서 등록: 로드밸런서에서 HTTPS를 활성화하려면 ACM 인증서를 등록해야 한다.

📌 Health Check

로드밸런서가 EC2 서버의 상태를 확인하는 기능 서버가 정상 동작하지 않으면 요청을 다른 서버로 전달한다.

  • 사용 이유 : EC2 서버가 다운되었을 때, 로드밸런서가 자동으로 트래픽을 다른 서버로 분산하기 위함.

HTTPS와 AWS 리소스 통합

  1. CloudFront와 로드밸런서 통합
    • CloudFront는 전역적으로 요청을 분산 처리
    • 로드밸런서는 특정 지역의 EC2로 트래픽을 전달
  2. 요청 처리 흐름:
    • 클라이언트 → CloudFront → 로드밸런서 → EC2 인스턴스
  3. 캐싱과 트래픽 최적화
    • CloudFront는 정적 파일을 캐싱하여 로드밸런서 부하를 줄임

HTTPS 적용의 이점

1) 보안 강화

  • 데이터 암호화로 도청과 변조 방지.
  • SSL/TLS 인증서를 통해 신뢰할 수 있는 서버를 증명.

2) 성능 최적화

  • CloudFront는 캐시와 분산된 CDN 서버를 활용해 콘텐츠 제공 속도 향상.
  • 로드밸런서는 서버 부하를 분산 처리.

3) 확장성

  • 로드밸런서를 통해 트래픽 증가에도 안정적인 서비스 제공.
  • CloudFront로 전 세계 사용자를 대상으로 빠른 콘텐츠 전달.

4) 유지보수 편리성

  • S3, 로드밸런서, CloudFront로 역할 분리:
    • S3: 정적 파일 저장.
    • 로드밸런서: 트래픽 분산.
    • CloudFront: CDN 및 HTTPS 처리.

  • 로드밸런서: EC2 서버 간 트래픽 분산 및 HTTPS 처리
  • CloudFront: 전 세계 CDN 역할 및 HTTPS 처리
  • Route 53 : 도메인 이름을 IP 주소로 변환하고, 트래픽을 올바른 AWS 리소스에 라우팅하는 DNS 서비스 HTTPS를 적용하면 보안, 성능, 확장성, 유지보수 측면에서 큰 이점을 얻을 수 있고 AWS의 다양한 서비스(S3, CloudFront, 로드밸런서)를 적절히 활용하면 HTTPS 구현이 더 쉬워지고 효과적이다.

cloud 카테고리 내 다른 글 보러가기

Leave a comment