IT人材をお探しの方は、まずはお電話ください。担当営業がすぐにご要望にマッチした人材をご提案いたします。
tel:03-6409-6766 お急ぎの方はお電話ください

ブログTOP > IT・技術関連 > AWSのLambdaでPHPを利用するには?Lambdaの設定方法を詳しく解説

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

IT・技術関連 更新日:2024.09.05
エンジニア採用
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システムとして、ブラウザレンダリングとクラウド上のデータベースを繋ぐ仕組みに利用できます。ぜひ、このような仕組みで活用してください。

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア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月時点)
ITエンジニアの派遣を利用したい企業様へ
ITエンジニアを派遣で採用したい企業様へ
  • 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
  • すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!

当社のITエンジニア派遣サービスは

  • 派遣スピードが速い!(最短即日)
  • 4,500名のエンジニアから貴社にマッチした人材を派遣
  • 正社員雇用も可能

こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。

無料相談のお申し込みはこちら
IT・技術関連の記事一覧へ

カテゴリから記事を探す

すべての記事一覧へ