댓글 검색 목록

[php] 서버리스 PHP 란 무엇이며 어떻게 작동합니까?

페이지 정보

작성자 운영자 작성일 21-07-03 14:11 조회 2,164 댓글 0

서버리스 컴퓨팅은 서비스로서의 기능 (FaaS)을 중심으로 한 새로운 클라우드 컴퓨팅 모델입니다. 

서버리스 PHP 애플리케이션은 단순히 서버리스 컴퓨팅 플랫폼 중 하나에서 실행되는 PHP 애플리케이션입니다. 

하지만 그토록 특별한 점은 무엇이며 PHP용 일반 서버 대신 사용하는 데 관심이 있는 이유는 무엇입니까?


웹 개발자로서 우리는 항상 코드를 호스팅 하는 곳을 고려해야 합니다. JavaScript, PHP, Python 또는 Ruby를 사용하는지 여부는 중요하지 않습니다. (몇 가지만 말하면 됩니다.) 그들은 모두 해당 코드를 실행하고 브라우저로 전송 된 HTML을 렌더링 할 수 있는 호스팅 서비스가 필요합니다.


다양한 호스팅 서비스가 있습니다. DigitalOcean 또는 기타 다른 클라우드 제공 업체의 서버 비용을 지불 할 수 있습니다. 이것은 종종 가장 저렴한 옵션이지만 관리 할 서버가 있습니다.


그렇게 하고 싶지 않다면 Heroku와 같은 PaaS (Platform as a Service)를 사용할 수 있습니다. 원하는 서버의 크기를 알려주고 나머지는 처리합니다. 결국에는 코드를 배포하기 만하면 됩니다. WordPress 호스팅도 비슷하게 작동합니다.


서비스 형 플랫폼은 서버에 대한 걱정을 덜어 주지만 모든 서버 문제를 완전히 제거하지는 않습니다. 트래픽 급증을 처리 할 수 ​​있는지 여전히 궁금합니다. 대부분의 서비스는 이러한 시나리오를 처리하기 위해 자동으로 확장되지 않기 때문입니다.


서버리스 컴퓨팅은 이 문제에 대한 해결책을 제공합니다. 클라우드 컴퓨팅 요구 사항을 가장 중요한 본질로 추출합니다. 클라우드 제공 업체는 요청시 코드를 실행하고 이에 대한 비용 만 청구합니다.


이렇게 하면 사용한 만큼만 지불 할 수 있습니다. (사이트에 트래픽이 수신 되지 않으면 비용을 지불하지 않습니다.)이 아키텍처를 사용하면 무한 확장 할 수도 있습니다. 실제로 서버리스 컴퓨팅은 수천 명의 방문자를 거의 즉시 처리하도록 확장 할 수 있습니다.


이것은 모든 프로그래밍 언어에 대한 혁신적인 변화입니다. 하지만 PHP는 서버리스의 이점을 활용할 수 있는 고유 한 위치에 있는 언어이기 때문에 더욱 그렇습니다. 그 이유를 살펴 보겠습니다.


전통적인 PHP 애플리케이션은 어떻게 작동합니까? 


PHP는 해석 언어이기 때문에 대부분의 다른 프로그래밍 언어와 다릅니다. 코드를 컴파일 할 필요가 없습니다. PHP 파일을 웹 서버에 업로드하기 만하면 됩니다.


PHP server architecture 

웹 서버 (대부분의 경우 nginx 또는 apache)가 모든 마법을 수행합니다. 액세스하려는 PHP 파일을 파악합니다. 종종 루트 디렉토리의 index.php 파일 일 뿐이며 다른 PHP 파일을 로드합니다. (재미있는 사실 : Pieter Levels는 단일 index.php 파일에서 월 $10 만를 벌어들입니다!)


그런 다음 웹 서버는 이 PHP 파일을 PHP 인터프리터로 보냅니다. 인터프리터는 파일을 읽고 파싱 한 다음 실행합니다. 실행이 완료되면 일부 출력이 반환됩니다. 이 출력은 웹 서버가 HTTP 응답으로 브라우저에 다시 보내는 생성 된 HTML입니다.


서버리스 PHP를 사용하면 어떻게 되나요? 


이제 PHP 애플리케이션이 어떻게 작동하는지에 대한 기본적인 아이디어를 얻었으므로 서버리스 PHP를 사용할 때 어떻게 되는지 살펴볼 수 있습니다. 첫째, 서버리스 컴퓨팅은 이벤트 중심입니다. 서버리스 PHP 인터프리터는 이벤트를 기다리며 이로 인해 PHP 코드가 실행됩니다.


어떤면에서는 웹 서버에서 작동하는 방식과 유사합니다. 웹 서버는 HTTP 요청 (이벤트)을 수신하고 이 이벤트는 웹 서버가 PHP 인터프리터에게 코드를 처리하도록 지시하게 합니다. 이것이 서버리스 컴퓨팅이 PHP에서 잘 작동하는 주된 이유입니다.


그렇다면 서버리스 PHP의 차이점은 무엇입니까? 큰 변화는 서버리스 PHP가있는 서버가 없을 뿐만 아니라 더 이상 웹 서버도 없다는 것입니다. 웹 서버 대신 클라우드 제공자가 제공하는 특수 서비스 인 API 게이트웨이를 사용합니다. 어떻게 생겼는지 더 자세히 살펴 보겠습니다.


서버리스 PHP 요청의 수명 


다음은 서버리스 PHP 애플리케이션에 요청을 할 때 어떤 일이 발생하는지 보여주는 다이어그램입니다. 보시다시피 이전에 사용했던 것과 매우 유사합니다.


serverless-php-architecture.png 

브라우저는 HTTP 요청을 API 게이트웨이로 보냅니다. 게이트웨이는 HTTP 요청을 수신하고 이를 이벤트로 변환 한 후 서버리스 PHP 애플리케이션으로 전달합니다. 요청 된 PHP 파일을 읽고, 구문 분석하고, 실행하고 결과를 API 게이트웨이에 반환합니다. 게이트웨이는 HTTP 응답을 생성하고 다시 브라우저로 보냅니다.


주목할 점은 서버리스 PHP 애플리케이션입니다. PHP 런타임과 PHP 코드의 두 부분으로 구성됩니다.


PHP 런타임에는 PHP 인터프리터가 포함되어 있습니다. 그러나 API 게이트웨이에서 보낸 이벤트를 처리하고 인터프리터의 응답을 반환하는 코드도 있습니다. PHP 애플리케이션 코드는 일반 서버에 배포하는 것과 동일한 PHP 코드입니다.


이 두 부분은 서버리스 PHP 애플리케이션을 클라우드 공급자에 배포 할 때 함수 (서비스로서의 기능이라는 이름의 유래)로 함께 패키지화됩니다. 이 함수는 API 게이트웨이가 요청을 받을 때마다 이벤트를 보내는 것입니다.


이것의 장점은 무엇입니까? 


이제 서버리스 PHP 애플리케이션의 작동 방식을 살펴 보았으므로 "신뢰할 수 있는 Linux 서버 대신 왜 이것을 사용하고 싶습니까?"라고 궁금해 할 것입니다.


거의 무한 확장 


서버리스 PHP 애플리케이션의 새 버전을 배포하면 클라우드 공급자는 필요한 만큼 사본을 만들 수 있습니다. 또한 이러한 사본을 거의 즉시 생성 할 수 있습니다. 이를 통해 PHP 애플리케이션은 땀을 흘리지 않고 급증하는 트래픽을 처리 할 수 ​​있습니다. (예를 들어 Ymir는 수백 명의 고객을 즉시 처리 할 수 ​​있도록 WooCommerce 사이트를 확장하도록 도울 수 있습니다.)


정상적인 서버 설정을 사용하려면 서버 용량이 이미 프로비저닝되고 사용할 준비가 되어 있어야 합니다. 그렇지 않으면 이러한 트래픽 급증을 처리 할 수 있는 수평 확장 설정이 필요합니다. 그러나 이러한 유형의 설정은 확장하는 데 몇 분이 걸리므로 그때까지 애플리케이션을 사용할 수 없게 될 수 있습니다.


서버를 관리 할 필요가 없습니다. 


이것은 서버리스 사용의 다음 이점을 가져 오는 좋은 방법입니다. 더 이상 관리 할 서버가 없습니다. 서버를 관리해야 했다면 서버 관리에 따르는 책임을 알고 계실 것입니다. (다운시 통화 중, 업데이트 처리, 보안 유지 등)


서버리스를 사용하면 서버리스 플랫폼에 PHP 코드를 배포하기 만하면 됩니다. 이것은 가격을 책정하기 어려운 마음의 평화를 제공합니다. 하지만 한번 경험 해보면 돌아 가기가 어렵습니다. (내가 Ymir를 만든 이유입니다.)


사용 당 지불 


서버는 우리가 코드를 호스팅하는 방식을 변경하지 않습니다. 또한 호스팅 비용을 지불하는 방식도 변경됩니다. 항상 켜져 있어야 하는 서버 비용을 지불하기 전에. 이것은 DigitalOcean에 물방울이 있거나 Heroku dyno에 코드가 배포되었는지에 관계없이 사실입니다.


서버리스를 사용하면 코드가 실행될 때만 비용을 지불합니다. (예를 들어 AWS Lambda는 밀리 초 단위로 요금을 부과합니다!) 많은 경우 이로 인해 상당한 비용이 절감됩니다. 한 사례 연구는 external.io가 어떻게 platform.sh에서 월 50 달러를 지불 하던지 AWS에서 월 17 달러로 바뀌었는지 보여줍니다.


장단점 


서버리스가 너무 좋아서 사실이 아니라면 그것은 일반적으로 그렇기 때문입니다! 즉, 모든 상황에서 이상적인 솔루션은 아닙니다. 다음은 서버리스를 사용하려는 경우 고려해야 할 몇 가지 장단점입니다.


비용을 예측하기가 더 어렵습니다. 


서버 비용을 지불하면 월 X 달러가 됩니다. 간단하고 계획하기 쉽습니다. 더 큰 서버가 필요한 경우 월 $X에서 $Y / 월로 갈 것입니다.


전체 비용 계산이 더 복잡한 서버리스를 사용하면 "내가 얼마나 많은 요청을 받습니까? 평균적으로 얼마나 오래 지속됩니까?"라고 생각해야 합니다. 따라서 사용량에 따라 지불하는 가격 책정 모델은 큰 비용 절감 가능성을 제공하지만 일반 호스팅 비용의 예측 가능성을 선호 할 수 있습니다. 당신이 그것을 위해 2-3 배 더 지불 할지라도.


저가형 VPS보다 저렴하지 않음 


월 $5 VPS로 PHP 애플리케이션을 실행하는 경우 서버리스는 비용 절감을 제공하지 않습니다. 일반적으로 서버리스 PHP는 호스팅 비용으로 월 $ 25를 지불 할 때 비용 경쟁력이 있습니다. 월 25 달러는 호스팅 비용이 많이 들지 않지만 많은 사람들이 소규모 VPC에서 프로젝트를 호스팅합니다.


즉, 이와 같은 서버 비용을 비교하는 것도 불명예합니다. 또한 해당 서버를 관리하는 데 드는 비용도 고려해야 합니다. 시간이 걸리거나 누군가에게 돈을 지불해야 합니다.


일반적으로 AWS로 제한됨 


서버리스 컴퓨팅은 모든 주요 클라우드 제공 업체에 존재하지만 서버리스 아키텍처는 제공 업체에 매우 의존적입니다. Microsoft Azure의 API 게이트웨이는 Google Cloud의 API 게이트웨이와 동일하게 작동하지 않습니다.


현실은 현재 서버리스 PHP에 대한 대부분의 에너지가 한 공급자 인 AWS에 집중되어 있다는 것입니다. 모든 사람이 다양한 이유로 AWS를 사용할 수 있는 것은 아닙니다. 즉, AWS를 사용할 수 없는 경우 서버리스 PHP 애플리케이션을 생성하기 위해 리소스 또는 서비스 (Laravel Vapor 및 Ymir는 모두 AWS에만 해당)를 찾는 데 더 많은 시간이 걸릴 것입니다.


서버에 대한 훌륭한 대안 


이 기사의 요점은 서버에 PHP 애플리케이션을 호스팅해서는 안된다는 것을 보여주기 위한 것이 아닙니다. 서버에서 PHP 애플리케이션을 호스팅하는 것은 여전히 ​​밝은 미래를 앞두고 있습니다. 그렇게 하는 것이 때때로 더 비용 효율적입니다. 사용할 제공 업체를 선택할 수 있으며 제공 업체를 관리하는 데 도움이 되는 수많은 리소스와 도구가 있습니다.


그러나 값 비싼 호스팅 공급자 나 서비스로서의 플랫폼 또는 복잡한 수평 확장 설정을 사용하는 경우 서버리스가 기다리고 있을 수 있습니다. 관리 및 배포가 더 쉽고 비용이 적게 듭니다.


그리고 그것은 흥미로울 것입니다.


https://dev.to/carlalexander/what-is-serverless-php-and-how-does-it-work-4m5b



댓글목록 0

등록된 댓글이 없습니다.

웹학교 로고

온라인 코딩학교

코리아뉴스 2001 - , All right reserved.