AWSのLambdaでPHPを利用するには?Lambdaの設定方法を詳しく解説


【AWS】サーバーレスPHPの基本
以前は、PHPを利用したWebシステムを利用するにはLAMPスタックに代表されるLinuxサーバーが必要でした。たとえ簡単なWebシステムでも、サーバーを設定すれば、それを管理しなければなりません。
しかし、AWSのサーバーレスの仕組みLambdaを利用すれば、サーバー管理から解放され、PHPの開発に専念できます。では、AWSのLambdaとはどのようなサービスなのでしょうか。
次から、AWSのサーバーレスの仕組み、Lambdaについて解説します。
そもそもLambdaとは
AWSのLambdaは、クラウド上にWebサーバーを準備したり管理することなく、プログラムコードを実行する環境を作れる仕組みです。Amazon S3やAmazon RDSなど、他のサービスを組み合わせることで、従来のLAMPスタックサーバーと同じ機能をサーバーレスで実現できます。
そして、その使用料はコンピュータを使用した時間にのみ課金されます。また、スケーリングするために必要なことは対策してもらえるので、アクセスの少ないサービス開始時はもちろん、アクセスが増えても利用できるサービスです。
Lambdaによるサーバーレスの特徴
AWSのLambdaが提供するサーバーレスの特徴の1つは、パフォーマンスの高いスケーラブルなサービスが作れる点です。
従来のLAMPスタックでは、アクセスが増加した場合に簡単に拡張できないなど、スケーラビリティが大きな課題でした。
1台のサーバーで足りる間の管理は比較的簡単ですが、ロードバランサーなどを活用してサーバーを増やしたり、データベースやファイルサーバー側を冗長化したりすると、費用も管理工数もかかります。
その点、クラウドでの利用を前提に、最初からスケーラビリティを前提に構築されているAWSのLambdaでは、従来のLAMPスタックのデメリットがありません。
スケーラビリティに優れたAWSの各種サービスと組み合わせることで、アクセス数の少ない小さなシステムから、アクセスの多い大規模なシステムまで対応できます。
AWS SAMを利用する
AWS Lambdaを使いサーバーレスアプリケーションを利用するには、AWSサーバーレスアプリケーションモデル(AWS SAM)を利用して定義しなければなりません。
なお、AWS SAMは、サーバーレスアプリケーションの管理フレームワークで、AWS LambdaやAPI GatewayなどのAWSで利用できるサービスの設定に利用されます。
そして、AWS SAMは、専用のCLIコマンドを用い、テンプレートファイルを使って設定します。そのため、Amazon 3SなどのAWSの各種サービスの設定や管理に使用するAWS CLIに加えて、AWS SAM CLIも用意してください。
Lambdaの設定に必要なもの
AWSのLambdaでPHPを利用したWebシステムを運用するためには、設定するための仕組みを用意し、さらに設定ファイルを用意して、専用コマンドを使った設定が必要です。まずは、AWSのLambdaを設定するための仕組みを用意してください。
Lambdaの設定に必要なもの
・AWSアカウント
・AWS CLI (Amazon 3Sなど、AWS Lambdaで利用するAWSのサービスの設定や管理で使用するツール)
・AWS SAM CLI (サーバーレスアプリケーションの作成と管理のためのツール)
・Amazon 3S (AWSで、PHPファイルを格納するためのストレージ)
なお、AWS CLIとAWS SAM CLIは、Linux版、macOS版、Windows版が用意されています。インターネットに繋がったパソコンで利用できるツールなので、AWSのLambdaを利用する場合は、必ずインストールして、使えるように設定しておいてください。
AWSのLambdaでPHPを使うには
先ほど説明したように、AWSのLambdaはWebシステムを構築するのに便利な機能で、しかも、その構築にPHPを利用できます。そして、PHPをLambdaで使用するためには、AWSの設定が必要です。
次から、AWSのLambdaでPHPを利用するために必要な設定について解説します。
SAM設定ファイルの作成
AWSのLambdaでPHPを利用するためには、用意したPHPをAWSのLambdaに登録しなければなりません。
用意したPHPの仕組みをLambdaに登録するには、定義ファイルに記述して、コマンドでこれを反映します。そして、定義ファイルの基本は次のとおりです。
基本的な定義ファイルの構成
AWSTemplateFormatVersion: 2010-09-09 Description: 'このテンプレートで意義しているサーバーレスシステムの説明' Transform: AWS::Serverless-2016-10-31 Resources: 【ここにAWS CloudFormation リソースと AWS SAM リソースを記述する】
定義ファイルの例
次に、SAM設定に使用する定義ファイルの例を紹介します。
AWSTemplateFormatVersion: 2010-09-09 Description: 'このテンプレートで意義しているサーバーレスシステムの説明' Transform: AWS::Serverless-2016-10-31 Resources: サーバーレスシステム名: Type: AWS::Serverless::Function Properties: FunctionName: 'Lamdaのファンクション名' Description: サーバーレスシステム名の説明 CodeUri: . Runtime: provided Handler: index.php MemorySize: 1024 Timeout: 30 Tracing: Active Layers: - Lambda Custom レイヤー Events: api: Type: Api Properties: Path: / Method: ANY
定義ファイルの「AWSTemplateFormatVersion:」と「Transform:」で始まる行は定義ファイル共通です。「Resources:」に続けてサーバーレスの定義に必要な情報を定義してください。
SAM設定ファイルを使い登録する
先ほど説明したSAM設定ファイルを登録するAWS SAM CLIコマンドの例を次に紹介します。
AWS SAM CLIコマンドの例
sam package \ --template-file template.yaml \ --output-template-file phpsl-output.yaml \ --s3-bucket phpsl sam deploy \ --template-file phpsl-output.yaml \ --stack-name phpsl-service \ --capabilities CAPABILITY_IAM
上記の例は、SAM設定ファイルのtemplate.yamlを使い、Amazon 3Sの「phpsl」バケットに格納したPHPを利用し、「phpsl-service」という名前でAmazon Lambdaのサービスを利用するためのコマンドです。
なお、sam packageコマンドでは、–s3-bucketが必須です。Amazon S3に用意したバケット名を指定してください。また、sam deployコマンドでは、–stack-nameが必須のため、デプロイ先の AWS CloudFormation スタックの名前を指定してください。
LambdaとPHPの組み合わせに適した仕組みとは
PHPをWebシステムで使用するメリットの1つは、SQLデータベースと相性が良い点です。そして、AWSにはサーバーレスのデータベースであるAmazon RDSがあるので、Lambdaからも使えます。
さらに、最近は、Webブラウザ側のJavaScriptでWebページを合成する、ブラウザレンダリングの採用が増えており、そのようなシステムでは、サーバー側でデータを準備するだけのシンプルな構成で作れます。そして、PHPなら、そのようなサーバー側の仕組みを簡単に作れます。
そのため、Lambdaを利用したサーバーレスのPHPシステムとして、ブラウザレンダリングとクラウド上のデータベースを繋ぐ仕組みに利用できます。ぜひ、このような仕組みで活用してください。
この記事の監修者・著者

- AWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-12-27営業インタビュー情報共有の活性化の中心に。SP企画部の新たな取り組み
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ

- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。