-
CloudFront를 통한 HTTPS 통신 과정클라우드/aws 2024. 10. 16. 16:38728x90반응형
CloudFront를 통한 HTTPS 통신 과정:
1. CloudFront 구성 요소:
- 클라이언트: 웹 페이지에 접속하는 사용자의 브라우저 또는 애플리케이션.
- CloudFront Distribution: CloudFront에서 설정한 배포(Distribution)로, 도메인 이름에 따라 클라이언트의 요청을 처리하고, 캐시된 콘텐츠를 전달하거나 원본 서버로 요청을 전달함.
- 원본 서버(Origin Server): S3 버킷, EC2 인스턴스, ALB, 또는 사용자 정의 서버 등 클라이언트에게 실제 웹 콘텐츠를 제공하는 서버.
- SSL/TLS 인증서: CloudFront에 적용된 인증서로, HTTPS 연결을 통해 클라이언트와 CloudFront 간의 통신을 암호화하는 데 사용.
2. HTTPS를 사용한 CloudFront의 작동 원리:
- 1단계: 클라이언트의 HTTPS 요청:
- 사용자가 웹 브라우저에서 https://www.example.com과 같은 주소를 입력하면, 브라우저는 해당 도메인에 대한 HTTPS 연결을 설정하기 위해 CloudFront 배포의 도메인으로 요청을 보냅니다.
- CloudFront는 사용자가 지정한 도메인 이름(예: www.example.com)에 매핑된 CloudFront 배포의 DNS 엔드포인트로 트래픽을 라우팅합니다.
- 2단계: SSL/TLS 핸드셰이크:
- 클라이언트와 CloudFront 간의 SSL/TLS 핸드셰이크가 시작됩니다.
- CloudFront가 SSL/TLS 인증서를 클라이언트에게 제공하여, 클라이언트가 인증서를 검증합니다.
- 이 인증서는 보통 **AWS Certificate Manager(ACM)**을 통해 발급받아 CloudFront에 연결된 도메인에 적용됩니다.
- 클라이언트가 인증서 검증에 성공하면, 클라이언트와 CloudFront는 세션 키를 협상하여 암호화된 통신 채널을 설정합니다.
- 3단계: CloudFront에서 콘텐츠 전달:
- CloudFront 캐시 여부 확인:
- 클라이언트가 요청한 콘텐츠가 CloudFront 엣지 로케이션(가장 가까운 CloudFront 서버)에 캐시되어 있다면, CloudFront는 캐시된 콘텐츠를 클라이언트에게 바로 전달합니다.
- 캐시된 콘텐츠가 없다면, CloudFront는 원본 서버에 요청을 전달하여 콘텐츠를 가져옵니다.
- 클라이언트와 CloudFront 간의 데이터 전송은 이 **암호화된 통신 채널(HTTPS)**을 통해 이루어집니다.
- CloudFront 캐시 여부 확인:
- 4단계: CloudFront와 원본 서버 간의 통신:
- CloudFront와 원본 서버 간의 통신 방식은 HTTP 또는 HTTPS 중 선택할 수 있습니다:
- HTTPS 사용 시: CloudFront와 원본 서버 간의 데이터 전송도 암호화되어, 전 구간에서 안전한 HTTPS 통신이 유지됩니다.
- HTTP 사용 시: CloudFront와 원본 서버 간의 통신은 암호화되지 않지만, 클라이언트와 CloudFront 간의 연결은 여전히 HTTPS로 보호됩니다.
- 대부분의 경우, HTTPS를 사용하여 전 구간에서 암호화를 유지하는 것이 보안상 더 바람직합니다.
- CloudFront와 원본 서버 간의 통신 방식은 HTTP 또는 HTTPS 중 선택할 수 있습니다:
- 5단계: CloudFront에서 클라이언트로 응답 반환:
- 원본 서버에서 가져온 콘텐츠는 CloudFront 엣지 로케이션에 캐싱될 수 있으며, 이후 동일한 콘텐츠 요청이 있을 때 재사용됩니다.
- CloudFront는 원본 서버에서 받은 콘텐츠를 암호화된 HTTPS 통신을 통해 클라이언트에게 전달합니다.
요약: CloudFront를 통한 HTTPS 통신의 핵심
- 클라이언트와 CloudFront 간의 통신은 CloudFront에 적용된 SSL/TLS 인증서를 통해 암호화됩니다.
- CloudFront는 CDN 역할을 하여, 클라이언트의 요청을 처리하고 가장 가까운 엣지 로케이션에서 캐시된 콘텐츠를 전달합니다.
- CloudFront와 원본 서버 간의 연결은 HTTPS 또는 HTTP로 설정할 수 있으며, HTTPS를 사용할 경우 데이터의 기밀성과 무결성이 전 구간에서 보호됩니다.
- **AWS Certificate Manager(ACM)**을 통해 발급받은 인증서를 CloudFront에 적용하여, 클라이언트에게 신뢰할 수 있는 HTTPS 연결을 제공합니다.
이 과정을 통해 CloudFront는 웹 페이지에 대한 HTTPS 통신을 안전하게 처리하며, 전 세계에 분산된 엣지 서버를 통해 빠르고 안전하게 콘텐츠를 전달할 수 있습니다. HTTPS는 클라이언트와의 연결을 보호하여 데이터의 도청 및 변조를 방지하고, 사용자의 신뢰를 유지하는 데 중요한 역할을 합니다.
728x90반응형'클라우드 > aws' 카테고리의 다른 글
aws 보안그룹설정할떄 인바운드 규칙에 사용자 지정을 클릭하고 보안그룹을 넣는이유 (1) 2024.10.16 Bastion Host란? aws public ec2 -> private ec2로 터널링 (0) 2024.10.16 aws cloudfront invalidation(무효화)란? cli통해 하는법 (1) 2024.10.05 aws cloudfront s3 연동하여 정적 웹 배포 (0) 2023.08.18