こんにちは。株式会社リンクネット、ソリューション事業部の石原です。
当社ではPHPのフレームワークであるLaravelを使用したWEBサービスの開発を行っています。
作成したWEBサービスを公開する場合、AWSのEC2などの仮想マシン上に構築することが多いのですが、技術検証のために作成したWEBサービスなどをもう少しお気軽に公開できないものかと考えました。
上記を踏まえて、これまで業務ではあまり使用していないGoogle CloudのCloud Runに挑戦しようと思います。
Cloud Run は、Google のスケーラブルなインフラストラクチャ上でコンテナを直接実行できるマネージド コンピューティング プラットフォームです。 コンテナ イメージをビルドできるものであれば、任意のプログラミング言語で記述されたコードを Cloud Run にデプロイできます。
アプリケーション本体やサーバーソフトウェアを格納したコンテナイメージを用意する必要はありますが、コンテナを実行するためのOSやプラットフォームはGoogleが管理します。
「CPUの割り当てと料金」で、「リクエストの処理中にのみCPUを割り当てる」を選択し、最小インスタンス数に0を指定することでリクエストを処理していない時間のコストを0にすることが出来ます。
起動中のインスタンス数が0の時にリクエストが発生すると、数秒の待ち時間が発生しますが、今回動作させるサービスは検証目的のものなので問題ありません。
コンテナイメージの作成時にPHPの任意のバージョンを使用することや、拡張機能を自由にインストールすることが出来ます。
Cloud Runは複数のコンテナを使うためのサイドカー機能をサポートしています。
Apache + mod_phpの単一コンテナではなく、普段から利用しているNginxとPHP-FPMの2コンテナ構成で動作させることにします。
ローカルでビルドしたコンテナイメージをGoogle Cloud内のコンテナレジストリである Artifact Registory に保存し、保存済みイメージからCloud Runインスタンスを起動します。
次回以降の記事で、実際にCloud Run上にLaravelアプリケーションを配備していきたいと思います。