Cloudflare Workers는 TCP 소켓 생성을 위한 connect() API를 도입했습니다.

블로그

홈페이지홈페이지 / 블로그 / Cloudflare Workers는 TCP 소켓 생성을 위한 connect() API를 도입했습니다.

Jul 06, 2023

Cloudflare Workers는 TCP 소켓 생성을 위한 connect() API를 도입했습니다.

InfoQ 홈페이지 뉴스 Cloudflare 작업자

InfoQ 홈페이지 뉴스 Cloudflare Workers, TCP 소켓 생성을 위한 connect() API 도입

2023년 5월 28일 2분 분량의 읽기

~에 의해

레나토 로시오

최근 개발자 주간 동안 Cloudflare는 아웃바운드 TCP 소켓을 생성하는 Worker API를 발표했습니다. 새로운 소켓 API를 사용하면 개발자는 데이터베이스를 포함하여 작업자에서 직접 TCP 기반 인프라에 다시 연결할 수 있습니다.

런타임 API로 사용 가능한 connect() 함수는 연결이 열려 있을 때까지 개발자가 데이터를 읽고 쓸 수 있도록 하는 TCP 소켓을 반환합니다. 작업자는 이미 HTTP 엔드포인트 및 기타 Cloudflare 서비스와 상호 작용할 수 있지만 대부분의 데이터베이스에서는 클라이언트가 직접 TCP 소켓을 열어 연결해야 합니다. Cloudflare의 제품 관리자인 Brendan Irvine-Broque와 Cloudflare의 제품 이사인 Matt Silverlock은 다음과 같이 설명합니다.

Workers를 통해 우리는 가능한 모든 브라우저와 비브라우저 환경에서 지원되는 표준 API를 지원하는 것을 목표로 하고 있지만(...) TCP 소켓의 경우 런타임 전반에 걸쳐 명확한 공유 표준이 없다는 문제에 직면했습니다. 우리는 기존 API 및 제안의 최상의 요소를 통합하려고 노력했으며 향후 표준에 다시 기여할 계획입니다.

지난 가을 Cloudflare는 Vercel 및 Shopify와 함께 웹 브라우저가 아닌 JavaScript 기반 개발 환경에서 표준화된 웹 API의 상호 운용 가능한 구현에 초점을 맞춘 새로운 커뮤니티 그룹인 WinterCG를 시작했습니다.

cloudflare:sockets에서 연결 기능을 가져와서 새 API에 액세스합니다. 일반적인 사용 사례 중 하나는 데이터베이스에 대한 연결을 만드는 것입니다. 예를 들면 다음과 같습니다.

출처: https://blog.cloudflare.com/workers-tcp-socket-api-connect-databases/

PostgreSQL용 JavaScript 데이터베이스 드라이버인 pg는 이미 지원되지만 MySQL 드라이버 mysql 및 mysql2는 아직 지원되지 않습니다. Irvine-Broque와 Matt Silverlock은 다음과 같이 경고합니다.

모든 요청에 ​​대해 새로운 연결이 생성됩니다. 이는 모든 플랫폼에 걸쳐 서버리스 기능에서 데이터베이스에 연결하는 데 있어 현재 가장 큰 과제 중 하나입니다. (...) 우리는 이미 가장 널리 사용되는 데이터베이스에 대한 연결 풀링에 대한 더 간단한 접근 방식을 연구하고 있습니다.

콘텐츠 전송 네트워크는 일부 개발자의 요청에 따라 인바운드 TCP 및 UDP 연결 지원과 QUIC 기반 애플리케이션 프로토콜을 포함하여 향후 더 많은 기능을 추가할 것으로 예상됩니다.

connect() API는 2023년 개발자 주간에 발표된 유일한 새로운 기능이 아니었습니다. Cloudflare는 애플리케이션 비밀을 안전하게 관리하기 위한 솔루션인 Secrets Store, Cloudflare의 서버리스 데이터베이스인 D1 개선, 메시징 서비스 대기열에 대한 소비자 동시성을 도입했습니다. 또한 Cloudflare는 Neon, PlanetScale 및 Supabase on Workers에 대한 데이터베이스 통합을 발표했습니다. UpLeveled의 창립자인 Karl Horky는 다음과 같이 트윗했습니다.

Neon이나 기타 서버리스/에지 제공업체와 같은 프록시가 없으므로 TCP를 통해 정상적으로 연결하면 됩니다. 이는 최근에 발표된 다른 엣지 데이터베이스보다 훨씬 더 큰 것으로 들리며 잠재적으로 훨씬 더 클 수 있습니다.

열린 각 TCP 소켓은 작업자에서 동시에 열 수 있는 최대 열린 연결 수에 포함되며, SMTP 메일 서버에 전자 메일을 보내기 위해 포트 25에서 TCP 연결을 생성할 수 없습니다.

제시자: Sean Chittenden - 엔지니어링 이사

자리를 비워두세요

InfoQ에 글을 쓰면 많은 문이 열리고 직업 기회가 늘어납니다. 나를 위한. 저는 제가 다룬 주제에 대해 더 많은 것을 배우기 위해 전문가 및 사고 리더들과 깊이 소통할 수 있었습니다. 또한 내가 배운 내용을 더 넓은 기술 커뮤니티에 전파하고 기술이 실제 세계에서 어떻게 사용되는지 이해할 수 있습니다.

저는 올해 초 InfoQ의 기여자 프로그램을 발견했고 그 이후로 즐겁게 지냈습니다! InfoQ의 P2P 검토 시스템은 전 세계 소프트웨어 개발자 커뮤니티와 학습 내용을 공유할 수 있는 플랫폼을 제공했을 뿐만 아니라 내 작문 능력도 크게 향상시켰습니다.