0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel アプリケーションを Laravel Cloud にデプロイしてみる

0
Last updated at Posted at 2026-08-09

前提条件

  • Laravel Cloudにアカウントを作成しておきます。
    • アカウント作成時にプランを選択する必要があるので、今回は3つのプランの中から「Starter Plan」を選択しました。
      • Screenshot from 2026-08-08 17-28-38.png
    • 「Starter Plan」の場合は月額5ドル分のクレジットと5ドルの範囲を超えた場合の利用分を加えた金額になるようです。
      • image.png
    • 今回初めてアカウントを作成しましたが、アカウント作成時に以下のメッセージが表示されたので、契約した初月に限り5ドル分のクレジットが無料で利用できるようです。
      • Screenshot from 2026-08-08 17-35-52.png
  • デプロイ対象の Laravel アプリケーションを GitHub / GitLab / Bitbucket のいずれかのリポジトリサービスに push しておきます。
    • 今回は GitHub に push しました。
    • image.png

事前準備

まず、Laravel 13を使ってデプロイの対象となるアプリケーションを準備します。
今回は cc-sddを使って、以下のような簡単なTodoリストのアプリケーションを開発して、 GitHub に push しました。

image.png


Laravel Cloud にアプリケーションを登録

それでは、 Laravel Cloud にデプロイするための設定を行っていきます。
Laravel Cloud CLIを使ったデプロイも可能なようですが、今回は Laravel Cloud の画面から設定を進めていきます。

Laravel Cloud のwebページにアクセスしてサインインを行います。

image.png


サインインするとこのような構成のダッシュボードが表示されます。

image.png


Overview もしくは Applications のタブを開き、「New application」をクリックします。

image.png


Gitのリポジトリサービスとの連携が完了していない場合

以下のように GitHub / GitLab / Bitbucket のいずれかのリポジトリサービスとの連携が求められます。

image.png


Gitのリポジトリサービスとの連携が完了している場合

私の環境では以下のように GitHub と連携済みのため

image.png

「New application」をクリックした後に、連携を許可済みの GitHub のリポジトリを選択する画面が表示されます。
ここでは事前に準備済みの「my-todo-list」を選択します。

image.png


デプロイ対象の Gitのリポジトが表示されない場合

もし、デプロイを行いたい対象のリポジトリが選択できない場合は、GitHubであれば「Integrations」→「Applications」→「Laravel Cloud App」の画面で設定をやり直してください。

image.png


アプリケーション名については、Gitのリポジトリ名をそのまま利用した方がわかりやすいかと思いますので、ここはデフォルトで表示されたものを使います。

image.png

リージョンについては、2026年5月から東京リージョンが利用可能になっていますので「Asia Pacific (Tokyo)」を選択します。

上記の入力が完了したら、「Create application」をクリックします。


アプリケーションの作成に成功すると、このような画面が表示されます。

image.png


今回のためにサンプルで実装したTodoリストは SQLite を利用しています。
Laravel Cloud では SQLite をサポートしていないようなので、データベースの設定を別途行う必要があります。


「Add Resource」から「Database」を選択します。

image.png


「Create a database」をクリックします。

image.png


データベースに関する設定画面が表示されます。

image.png


MySQL と PostgreSQL から選択できるようなので、今回は「MySQL 8.4」を選択しました。

image.png


Configuration の選択により金額が大きく変わります。今回は検証用途なので「Dev」を選択しました。

image.png

image.png

なお、「Custom configuration」を選択すると細かく設定が変更できるようです。

image.png

設定が完了したら、「Create database cluster」をクリックします。


画面下部に変更が発生した旨のメッセージが表示されるので「Save」をクリックします。

image.png


データベースの内容が反映されて、このような画面が表示されます。

image.png


データベースの接続情報については、「Resources」のタブから確認可能です。

image.png


「Settings」→「General」→「Environment」→「Injected variables」に移動するとモザイクが掛かってますが、上記のデータベースの接続情報がここに自動的にセットされていますので、自分で項目ごとに値を入力するといった作業は不要です。

image.png


これで、デプロイに必要な設定は一通り揃ったはずなので、「Deploy」ボタンをクリックします。

image.png


ビルドなどの作業が終わるまでしばらく待ちます。

image.png


左上に「Deployed」と表示されたので、デプロイが成功したようです。

image.png


画面右上の「Visit」ボタンをクリックします。

image.png


以下のようなURLが発行されます。
https://[アプリケーション名]-[environment名]-[XXXXXX].laravel.cloud/


所定のURLにアクセスすると、Todoリストの初期画面が表示されました。

image.png

Todoの追加・更新・削除が行える(DBにデータが保存される)ことも確認できました。

image.png


コストの話

コンピュートのみの利用であれば他のPaaSとだいたい横並びな金額感かと思いますが、これは当たり前と言えば当たり前なんでしょうけど、DBを利用すると「高いな」という印象が拭えませんでした。

また、「Scale to Zero」の機能を有効化している場合は、一定時間が経過した場合にコンピュートを sleep させることができるので、リクエスト数が静かなアプリケーションであれば、コストを抑えた運用を行うことが可能なようです。

image.png

そう言えば、ボットによるアクセスで sleep 状態のコンピュートが叩き起こされる問題に対しては、「Path Blocking」という機能が実装されているようですね。

ちなみに、今回のデプロイ検証で利用したクレジットは0.58ドルとのことなので、5ドル分の無料利用の枠内で収まったみたいでホッとしてます。

image.png


まとめ

Laravel Cloud が東京リージョンに対応したことは知っていたので、今回デプロイまで実行することができて満足です。
Laravel Cloud はLaravel社が運用していることもあり、実際に操作してみると気が利いている感がすごくて、迷うこと無くデプロイまでスムーズに行えました。

記事内では触れませんでしたが、今回、デプロイの際に実は一度だけ fail しました。そんな場合でも AI によるサポート機能が準備されていて、「なぜデプロイに失敗したのか」、「どのようにリカバリーしたらよいか」といったことを提示してくれるようなので、インフラが苦手な場合でも使いやすいのではないかと思います。

image.png


関連記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?