CDN(Content Delivery Network)은 전 세계에 분산된 서버 네트워크를 이용하여 콘텐츠를 더 빠르고 안정적으로 제공하는 기술입니다. 사용자의 요청에 대해 지리적으로 가장 가까운 서버에서 콘텐츠를 제공함으로써 로드 시간을 줄이고 성능을 향상시킵니다. CDN은 이미지, 동영상, HTML, CSS, JavaScript 같은 정적 콘텐츠의 제공을 최적화하는 데 유리합니다.
CloudFront는 AWS에서 제공하는 CDN 서비스로, 웹 콘텐츠를 더 빠르게 제공하기 위해 S3, EC2, 또는 사용자 지정 서버와 같은 다양한 소스로부터 콘텐츠를 전달합니다. CloudFront는 전 세계 여러 엣지 로케이션(Edge Location)을 사용하여 콘텐츠를 캐시하고, 사용자의 요청에 대해 지리적으로 가까운 엣지 로케이션에서 콘텐츠를 제공해 대기 시간을 줄입니다.
CloudFront의 작동 과정은 아래와 같습니다:
1. 사용자 요청: 사용자가 웹 사이트에 접근하면 CloudFront 도메인을 통해 요청을 보냅니다.
2. 엣지 로케이션 확인: CloudFront는 사용자와 가장 가까운 엣지 로케이션에 콘텐츠가 캐시되어 있는지 확인합니다.
3. 캐시된 콘텐츠 제공: 만약 콘텐츠가 엣지 로케이션에 캐시되어 있다면, 해당 콘텐츠를 사용자에게 바로 제공합니다. 이를 통해 대기 시간을 줄입니다.
4. 원본 서버로 요청: 만약 엣지 로케이션에 캐시가 없는 경우, 원본 서버(S3, EC2 등)에 요청을 보내고 콘텐츠를 가져와 사용자에게 전달합니다. 동시에 가져온 콘텐츠는 엣지 로케이션에 캐시되어 이후 요청에 대해 빠르게 제공될 수 있습니다.
CloudFront는 다양한 AWS 서비스와 통합하여 아키텍처를 구성할 수 있습니다. 예를 들어, S3 버킷을 원본으로 사용하여 정적 웹 콘텐츠를 캐시하거나, EC2 인스턴스를 원본으로 사용하여 동적 콘텐츠를 제공할 수 있습니다. CloudFront + S3 + ACM(SSL 인증서)을 사용하여 HTTPS를 통한 안전한 콘텐츠 제공을 구현하는 것이 일반적인 아키텍처 구성 예시입니다.
HTTP(HyperText Transfer Protocol)는 웹 브라우저와 웹 서버 간의 데이터를 주고받는 프로토콜로, 주로 웹 페이지와 같은 콘텐츠를 전송하는 데 사용됩니다. HTTP는 기본적으로 암호화되지 않은 통신이기 때문에, 민감한 정보가 전송될 경우 보안 문제가 발생할 수 있습니다.
HTTPS(HyperText Transfer Protocol Secure)는 HTTP에 SSL/TLS 암호화 계층을 추가하여 데이터의 무결성과 기밀성을 보장합니다. HTTPS는 사용자가 웹 사이트와 안전하게 통신할 수 있도록 해주며, 민감한 정보가 전송될 때 이를 암호화하여 전송합니다.