まえがき
第1章 必要なものをそろえよう
第2章 早速使ってみよう
第3章 応用して使ってみよう
第4章 コマンドでデプロイしよう
第5章 フレームワークを使ってみよう
第6章 サンプル的なアプリケーションを構築してみよう
あとがき
この本を手に取っていただきありがとうございます。
近頃はサーバーレス実行環境1で開発を行うことが多くなりましたが、利用できる言語には制約があります。その多くはJavaやNode.jsですが、その他の利用できない言語を普段使っている場合、新たに言語を習得しなければならず追加コストがかかるのが現状です。ところが、AWS Lambdaにおいて2018年に「Lambda Custom Runtime」(以下カスタムランタイム)の仕組みが導入され、その制約がなくなりました。この本は、そんなカスタムランタイムを少しでも広め、利用する方が増えたり、実環境への投入などの検討材料としていただくためのものです。
カスタムランタイムは気軽に実行できる標準のLambda環境とは異なり、実行環境自体のビルドやデプロイが必要でLambda本来の手軽さが少し失われています。しかし、使い慣れた言語で実行できるという部分は非常に大きいです。
本書の内容はPHPを軸にしていますが、主な使い方やスクリプトの実行方法など、基礎的な部分においては他言語でも応用できる部分が多いです。使い慣れた言語で試してみたい方も是非参考にしてみてください。
この本を通して、カスタムランタイムの利用者が少しでも増え、これからより多くの知見が広まることが増えればうれしいです。
この本は次の技術レベルを想定しています。
・カスタムランタイムに興味がある
・自分が普段使っている言語でサーバーレスを動かしてみたい
・AWS初級者~中級者
・何かしらの言語が書ける
この本の内容に沿って進めることでたどり着く、最終的なゴールは次のとおりです。
・カスタムランタイムでPHPが動かせるようになる
・カスタムランタイムの内容をカスタマイズできるようになる
・PHPやフレームワークとの相性について知れる
この本の中で使用している、各種コードは次のリポジトリーに公開しています。もちろんプルリク大歓迎です。(日本語でもOK!)
https://github.com/taiko19xx/LambdaCustomRuntime_with_PHP
誤字脱字や誤った内容などがありましたら、次の連絡先へご連絡ください。
・メール: hello@taiko19xx.net
・Twitter: @taiko19xx
いただいた情報は確認の上、著者のブログにて適時公開します。
・ブログ: https://tech.taiko19xx.net/
本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。
本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。会社名、製品名については、本文中では©、®、™マークなどは表示していません。
本書籍は、技術系同人誌即売会「技術書典6」で頒布されたものを底本としています。
種類は多くありませんが、本書を読み進めて作業するために必要なものがいくつかあります。本章では、そのセットアップや設定について紹介します。
カスタムランタイムの実行には、専用の実行ファイルが入ったZzipファイルを実行環境として作成する必要があります。しかしLambdaがAmazon Linux(1または2)で動作しているため、Amazon LinuxベースのDockerイメージ上で作業する必要があります。その作業に必要なDockerをインストールします。
利用するOSに合わせてDockerをインストールします。OSやディストリビューションによって方法が異なりますので、ドキュメント1を参照してください。Windowsの場合、Docker ToolboxやWindows Subsystem for Linux(WSL)上のDockerも利用できます。ただし、その場合本書のとおり動作しなかったり、別途設定が必要な可能性がありますのでご注意ください(本書ではDocker Desktop for Windowsで動作確認をしています)。
先に書いたようにカスタムランタイムはLambda上で動作と管理をしますので、利用にはAWSのアカウントが必要です。
持っていない場合は、公式サイト2から新規作成します。
また、本書の後半でAWS CLIを使用する場面があるため、あらかじめIAMからアクセスキーとシークレットキーを取得しておきます。取得方法についてはドキュメント3を参照してください。
Lambdaには無料枠がありますが、本書ではそれ以外のサービス(主にAPI Gateway)を利用するため、課金が発生します。課金額は本書のとおりに設定した場合、$1~2程で済む想定です。請求額のアラート通知や予算設定という機能がありますので、有効に活用して使いすぎに注意しましょう。
本書の前半は、ブラウザー上のマネジメントコンソールから操作を行いますが、後半はコマンドから操作をする場面があります。その場合にAWS CLIが必要となるのでインストールします。
Windowsの場合は、公式サイト4からインストーラーがダウンロードできます。macOSやLinuxの場合はpip経由でインストールします。5Python 2.6.5以降が必要です。
$ pip install awscli
インストール後、aws --versionを実行して、バージョン情報が表示されれば問題ありません。aws configureを実行して、IAMから取得したアクセスキーとシークレットキーを登録してください。
$ aws --version
aws-cli/1.16.101 Python/2.7.12 Linux/4.4.0-17134-Microsoft botocore/1.12.91
$ aws configure
AWS Access Key ID [None]: (アクセスキー)
AWS Secret Access Key [None]: (シークレットキー)
Default region name [None]: ap-northeast-1
Default output format [None]: json