Maison >développement back-end >tutoriel php >Comment exécuter PHP sur une architecture AWS ServerLess ? Partie présentant le runtime Bref

Comment exécuter PHP sur une architecture AWS ServerLess ? Partie présentant le runtime Bref

DDD
DDDoriginal
2024-10-07 22:11:30400parcourir

이 시리즈의 이전 게시물에서는 서버리스 서비스와 Lambda가 무엇인지에 대해 논의했습니다. 이제 AWS Lambda에서 PHP 스크립트 또는 전체 애플리케이션을 실행할 수 있는 방법을 보여줄 차례입니다.

이 게시물에서는 Bref 런타임을 사용하는 방법과 Symfony 데모 애플리케이션 및 Terraform을 사용하여 예제 구현이 포함된 저장소를 공유하는 방법을 설명합니다.

브레프가 온다!

독립 컨설턴트이자 AWS Serverless Hero인 Matthieu Napoli는 2018년에 Bref를 출시했으며 그 이후 Bref는 7월에 40,000,000,000회 이상의 호출을 제공하며 전년 대비 300% 성장하면서 번창했습니다.

How to run PHP on AWS ServerLess architecture ? Part  introducing Bref runtime

Bref는 어떻게 작동하나요?

Bref는 사용자 정의 Lambda 런타임입니다. 또는 세 가지 맛이 있기 때문에 오히려 런타임입니다.

  • 첫 번째는 웹 애플리케이션을 실행하도록 설계되었습니다. Bref는 API 게이트웨이 이벤트를 포착하여 이를 FastCGI 요청으로 변환합니다(Apache의 httpd 또는 nginx와 같은 웹 서버가 PHP FPM 프로세스에 요청하는 것과 동일한 종류). 또한 PHP FPM 프로세스도 실행합니다. 이렇게 하면 애플리케이션이 거의 수정되지 않은 상태로 유지될 수 있습니다(bref/bref 작성기 패키지를 가져오기만 하면 됩니다). $_POST 매직 변수를 사용하여 웹 요청 콘텐츠에 액세스하는 등의 모든 표준 PHP 기능이 작동합니다.
  • 두 번째는 비동기식으로 실행되도록 설계되었습니다. AWS Lambda 함수는 모든 종류의 AWS 생성 또는 사용자 지정 이벤트를 처리할 수 있습니다. 이 경우 PHP 함수는 $event를 인수로 사용하는 PHP 호출 가능 핸들러 메소드를 사용하여 작성해야 합니다.
  • 세 번째 런타임을 사용하면 php bin/console Doctrine:database:create
  • 와 같은 CLI 명령을 실행할 수 있습니다.

How to run PHP on AWS ServerLess architecture ? Part  introducing Bref runtime

Bref로 어떤 종류의 애플리케이션을 실행할 수 있나요?

거의 모든 종류의 PHP 애플리케이션이 Bref로 실행됩니다. 이 문서는 Laravel 및 Symfony를 기반으로 한 훌륭한 튜토리얼을 제공합니다.

기존 애플리케이션을 조정하는 것은 매우 쉽습니다(예를 들어 Bref는 내부 버스가 아닌 SQS를 사용하도록 Symfony Messenger를 조정하는 멋진 bref/symfony-messenger 라이브러리를 제공합니다. 알림: 실행 환경은 동시에 하나의 요청만 처리하며 일시적입니다. 따라서 데이터를 수명이 짧은 내부 버스로 푸시하는 것은 데이터 손실의 원인입니다.

유일한 제한은 극도의 반응성이 필요한 경우입니다(예: 요청의 100%가 10ms 내에 처리됨). 실제로 프레임워크는 230ms 콜드 스타트를 추가합니다. 그럼에도 불구하고 이 시리즈의 이전 기사에서 설명한 것처럼 프로비저닝된 동시성을 사용하면 이를 완화할 수 있습니다(그리고 너무 많은 비용을 지출하지 않고 이를 수행하려면 애플리케이션 자동 크기 조정이 가장 적합한 문서입니다).

How to run PHP on AWS ServerLess architecture ? Part  introducing Bref runtime

Bref 기반 애플리케이션을 배포하는 방법

위에 언급된 Symfony/Larevel 문서는 서버리스 배포 프레임워크를 사용하여 Bref 기반 PHP 애플리케이션을 배포합니다.

다른 기사(여기 및 여기)에서는 CDK를 배포 옵션으로 살펴봅니다.

저는 Terraform 팬이므로 배포 옵션으로 Terraform을 사용하여 완전히 작동하는 저장소를 아래에서 공유하게 되어 기쁩니다.

Terraform을 사용하여 PHP 애플리케이션을 생성하고 Lambda에 배포하는 단계별 접근 방식

단 8단계만 거치면 됩니다

How to run PHP on AWS ServerLess architecture ? Part  introducing Bref runtime

GitHub 저장소

다음 GitHub 저장소에서 이 앱을 배포하기 위한 모든 기능을 갖춘 설정을 공유합니다.

How to run PHP on AWS ServerLess architecture ? Part  introducing Bref runtime 프산투스 / PHP-서버리스-람다-bref-테라폼

Terraform으로 배포된 Bref 프레임워크를 사용하는 AWS Lambda의 PHP

이 저장소는

  • Symfony 데모 애플리케이션 계측 Bref 프레임워크를 사용하여 PHP용 Lambda 런타임을 제공합니다.
  • Terraform을 사용하여 애플리케이션을 배포합니다.

배포

Après vous être connecté à AWS avec votre CLI, exécutez simplement

terraform apply

Le fichier data.sql contient les données nécessaires pour amorcer la base de données Aurora. Vous pouvez le déployer avec un bastion.

Résultat

How to run PHP on AWS ServerLess architecture ? Part  introducing Bref runtime How to run PHP on AWS ServerLess architecture ? Part  introducing Bref runtime


Voir sur GitHub


Restez à l'écoute de mon prochain article sur Comment déployer du code PHP sur Lambda à l'aide de Lambda Web Adaptor !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn