WebSockets CloudFront배포와 함께 사용 - 아마존 CloudFront

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

WebSockets CloudFront배포와 함께 사용

Amazon은 WebSocket 클라이언트와 서버 간에 수명이 긴 양방향 연결이 필요할 때 유용한 TCP 기반 프로토콜인 사용을 CloudFront 지원합니다. 지속적 연결이 실시간 애플리케이션의 요구 사항에 포함되는 경우가 흔히 있습니다. 사용할 수 있는 WebSockets 시나리오로는 소셜 채팅 플랫폼, 온라인 협업 작업 공간, 멀티플레이어 게임, 금융 거래 플랫폼과 같은 실시간 데이터 피드를 제공하는 서비스 등이 있습니다. 전이중 통신의 경우 WebSocket 연결을 통한 데이터가 양방향으로 흐를 수 있습니다.

CloudFront 추가 구성 없이 전 세계 WebSocket 연결을 지원합니다. 클라이언트와 서버 모두 WebSocket 프로토콜을 지원하는 한, 모든 CloudFront 배포판에는 프로토콜 지원 기능이 내장되어 있습니다.

WebSocket 프로토콜 작동 방식

이 WebSocket 프로토콜은 독립적인 TCP 기반 프로토콜로, 이를 통해 HTTP로 인한 오버헤드와 잠재적인 지연 시간 증가를 방지할 수 있습니다.

WebSocket 연결을 설정하기 위해 클라이언트는 HTTP의 업그레이드 시맨틱을 사용하여 프로토콜을 변경하는 일반 HTTP 요청을 보냅니다. 그 후에는 서버가 핸드셰이크를 완료할 수 있습니다. WebSocket 연결은 열린 상태로 유지되므로 클라이언트나 서버가 매번 새 연결을 설정하지 않고도 서로에게 데이터 프레임을 보낼 수 있습니다.

기본적으로 WebSocket 프로토콜은 일반 WebSocket 연결에는 포트 80을 사용하고 TLS/SSL을 통한 WebSocket 연결에는 포트 443을 사용합니다. 선택한 옵션은 HTTP 트래픽뿐 아니라 WebSocket 연결에도 프로토콜(사용자 지정 오리진만 해당) 적용됩니다. CloudFront 뷰어 프로토콜 정책

WebSocket요구 사항

WebSocket 요청은 다음 표준 형식의 RFC 6455를 준수해야 합니다.

예제 클라이언트 요청:

GET /chat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== Origin: https://example.com Sec-WebSocket-Protocol: chat, superchat Sec-WebSocket-Version: 13

샘플 서버 응답:

HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= Sec-WebSocket-Protocol: chat

클라이언트 또는 서버에 의해 WebSocket 연결이 끊기거나 네트워크 중단으로 인해 연결이 끊어지면 클라이언트 응용 프로그램이 서버와의 연결을 다시 시작할 것으로 예상됩니다.

권장 설정

사용 시 예상치 못한 압축 관련 문제를 방지하려면 원본 WebSockets 요청 정책에 다음 헤더를 포함하는 것이 좋습니다.

  • Sec-WebSocket-Key

  • Sec-WebSocket-Version

  • Sec-WebSocket-Protocol

  • Sec-WebSocket-Accept

  • Sec-WebSocket-Extensions