ホームページ >バックエンド開発 >PHPチュートリアル >LaravelアプリをAWSサーバーレスに移行した理由(および時間とお金を節約できる理由)

LaravelアプリをAWSサーバーレスに移行した理由(および時間とお金を節約できる理由)

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-28 12:04:15357ブラウズ

Why I Migrated My Laravel App to AWS Serverless (And Why It Could Save You Time and Money)


スポイラーアラート:コスト削減だけではありません(私の銀行口座はそれを高く評価しています!)。

これを想像してみてください:あなたは見事なLaravelアプリケーションを作成しました - あなたの傑作、機能に満ちた多目的なツール。 しかし、障害があります。 あなたは十分に活用されていないEC2インスタンスのために毎月支払っています、そしてスケーリングはタコを格闘しているように感じます。
おなじみの音?それは私にしました。

3年前、私は信仰の飛躍を取りました:私はAWSラムダにPHPを展開しました。 反応? 「サーバーレスのPHP?異端!」

しかし、ここに私は、3年後、改宗者です。サーバーレスのLaravelアーキテクチャが、あなたが必要としていなかったクラウドアップグレードである理由を説明させてください。

伝統的なLaravelホスティングの課題
  1. (または:私のEC2インスタンスが実存的な危機を経験していた理由)

サーバーレスの前に、私のLaravelアプリはEC2に住んでいました。初心者の場合、EC2はAmazonの仮想プライベートサーバー製品です。 現実がヒットするまで、それは理想的でした: a)一定のコスト

EC2インスタンスを実行することは、絶え間ない車を所有しているようなものです。私のアプリはいつも忙しくありませんでしたが、コストは蓄積され続けました。 EC2インスタンス、ロードバランサー、ストレージの間で、私は主にアイドルシステムに月額約110ドルを費やしていました。私の予算? 面白くない。

私は知っている、それは大金ではなく、ソロ開発者にとって、あらゆるドルがカウントされます。

b)悪夢のスケーリング

EC2インスタンスは予測不可能です。 交通量は?クラッシュ。 交通量が少ない?まだお金を燃やしています。 自動化学の管理は絶え間ない闘争でした。

c)予期しないdevopsの責任

Laravel開発には予想外にSysadminタスクが含まれていました:奇妙な時間にサーバー構成のパッチング、デバッグ - 理想的なワークフローではありません。

それは、これらの問題に完全に対処するソリューションであるサーバーレスを調査したときです。


AWS SERVERLESS:PHPのクラウドトランスフォーメーション

明確にしましょう:サーバーレスはサーバーがないという意味ではありません。 AWSがサーバー管理を処理することを意味します。コーディングに焦点を当てています。

a)ラムダ:オンデマンド実行エンジン
  1. AWS Lambdaは、イベント主導のコンピューティングサービスです。イベント(HTTPリクエストなど)に応じてコードを実行し、終了すると消えます。

  2. アイドルコストなし:
実行時間のみを支払います。

楽なスケーリング:

lambdaは自動的にスケールしてトラフィックスパイクを処理します

ステートレスアーキテクチャ:
    実行ごとにクリーンなスレート、モジュラー設計を促進します。
  • b)マネージドサービス:サポートキャスト
  • サーバーレスは、マネージドサービスのスイートをレバレッジしています:
    • データベース:SQLデータベースのaurora serverless(mysql/postgres)
    • ストレージ:スケーラブルなファイルストレージの場合は
    • s3。
    • メッセージキュー:非同期タスク処理のためのsqs。
    • c)PHPの課題への対処
    PHPは、最初はサーバーレス用に設計されていませんでした。 LARAVELの適応必要な変更:

    セッション:
      外部データベース(mysql、redis)に移行します。
    • ファイルストレージ:
    • Laravelのストレージファサードを介してS3を使用します
    • キューハンドリング: sqsをキュードライバーとして使用します。
    • キャッシング:redisまたはdynamodbを使用します
    • 起動時間最適化:不要な依存関係を削除することからコールドスタートを最小限に抑える。
    • 構成管理:
    • セキュア構成のためにAWS Secrets ManagerまたはParameter Storeを使用します。
    • サーバーレスは、サーバーを交換するだけではありません。それは建築の再考についてです

    サーバーレスでLaravelの可能性を解き放ちます

    サーバーレスLaravelは配信されますか?絶対に。従来のホスティングの問題を解決しながら、より速く、よりスケーラブルで、費用対効果の高いソリューションを提供します。
    a)コールドスタート:期待の管理
      コールドスタート(新しいインスタンスの初期化)が管理可能です:
    1. リアリティ:
    典型的なコールドスタートは〜3〜5秒です。

    ソリューション:

    laravel octane(アプリを生かし続ける)、プロビジョニング並行性(就学前インスタンス)。

    ほとんどのアプリでは、特にピークトラフィック中に短い遅延が許容されます。
    • b)楽なスケーリング スケーリングは自動です。 バイラルアプリ? ラムダは介入なしに急増を処理します。
    • c)コスト削減:一番下の行 私のEC2コストは月額〜110ドルでした。 私のラムダは費用がかかりますか? 〜$ 34/月(70%の削減!)。

    サーバーレスはお金を節約し、精神的エネルギーを解放します

    注:最初にMySQLインスタンスを使用しました。 将来の投稿では、さらなるコストの最適化のためにDynamoDBを検討します d)メンテナンスの自由:解放

    サーバーのメンテナンスを排除するサーバーレス:

    自動更新。

    簡略化された構成。
    • 弾性容量。
    • 消防ではなく機能に焦点を当てています。
    サーバーレスのLaravelはあなたにぴったりですか?
    1. サーバーレスはすべてのアプリ用ではありません。 そのステートレスの性質には、建築的調整が必要です。 これらの要因を考慮してください:

    2. a)ステートレス性:適応が必要

    Laravelのステートフルな運用には、セッション、ファイル、ログ、構成、およびキューが必要です。

    b)ベンダーロックイン

    AWSサービスは独自のものです。 他のプラットフォームへの移行には努力が必要です

    c)サーバーレスを避けるとき

    サーバーレスを避けてください:WebSockets、重い計算ワークロード、および永続的なサーバー状態に大きく依存するアプリケーション。

    次は何ですか?


    サーバーレスLaravelには大きな利点があります。 パート2によると、実装の手順を詳細に説明してください。
    1. あなたの考え:
    2. あなたの最大のサーバーレスの懸念は何ですか?以下で共有してください! パート2の上位3つに対処します

以上がLaravelアプリをAWSサーバーレスに移行した理由(および時間とお金を節約できる理由)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。