質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

2017閲覧

AWS LambdaにLaravelアプリをデプロイしたい

ranerane0101

総合スコア70

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2021/09/20 09:05

https://qiita.com/minato-naka/items/9241d9c7a7433985056d
このサイトのようなものをデプロイする際に質問です。
自分はWSL2でLaravel sailを使っているのですがLambdaにデプロイする際に一銭もお金を掛けたくありません。それを前提に質問なのですが、このサイト

https://qiita.com/umihico/items/514cf792d30bf3706ef5

の通りにやっても課金はされないのでしょうか?自分の場合はローカルに(sail WSL2)既にプロジェクトがあるので初めのcurlコマンドなどは打ちませんが、、、。自分の調べたことと照らし合わせると誰かがプログラムを組んで100万リクエストでもされない限り無料だという考えです。

その根拠はLambdaはサーバーレスでプロビジョニングの必要が無くリクエストされたときのみ(100万リクエスト)課金されるから、またOSが存在しないのでEBSのストレージのために課金される事がない(課金されるとしても上記の自分がデプロイする想定のサイトならば30GBもストレージを使わないと考える)なのですが、何分AWSデプロイ初めてということもあり、よく聞くEC2やECSでもないことから不安になりました。

***分からないことが多数の為、必要な情報か分かりませんがRails1チュートリアルをやった際のEC2インスタンスが停止はされていますが残存していて、そのためにEBSの容量は今月9割使うとの見通しです。

***ローカル、WSL2,Laravel sailで作ったメモアプリを本番環境にデプロイ

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Lambdaは起動時間とリクエストによる課金なので容量は関係ありません。

リクエストされたときのみ(100万リクエスト)

Lambda Functionが起動したときのみ課金が発生するのはその通りですが、回数だけではなく起動している時間の通算も関係あります。

こちらの説明がわかりやすいです。
無期限無料枠


ちなみに余談ですが、Lambdaには制限も多いためフルスタックフレームワークをLambdaに載せるのは個人的には現状ではまだあまりお勧めしません。
Lambda クォータ

確かにAWS公式でもやり方を提供していますが、Lambdaの制限が気にならないような使い方になるなら一つの選択肢かとは思います。。
そのあたりをきちんと考慮しつつ、何か問題に直面しても解決していけるのであればよいでしょう。

この辺はもっと実際の有効なユースケースが出てくるといいんでしょうけどね…。

投稿2021/09/21 03:26

yu_1985

総合スコア7443

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ranerane0101

2021/09/22 09:06

すいません全然無料枠について分かっていませんせんでした。自分は12か月無料コースみたいなのに加入しているのだと思っていましたが、サービスごとに無期限無料枠と12か月無料枠が決まっている、という認識であっていますでしょうか?それで、EC2が12か月無料枠のサービス(),Lambdaは無期限無料枠のサービスということですよね。 それと自分が挙げたサイトはデータベースも無い中身スカスカのLaravelプロジェクトだったので参考になりそうにないですね。質問への答えとしては曖昧だと恐縮ながら思うのですが、自分のような初心者ですとLambdaだと、その制限に抵触してしまい課金される可能性の方が高いということでしょうか?気兼ねなく厳しい言葉でも構いませんのでその程よろしくお願いします。 ただ、それだとDockerイメージをデプロイするだけでは出来なそうですよね、、
yu_1985

2021/09/22 09:24

制限とはそういう意味ではなく、動作上様々な制限があるので用途によっては使えない場合があるということです。 そのへんが何もわかっていないのならいきなりLambdaに乗せるなんてトリッキーなことはせずまずは普通にLaravelを動かしてください。 Docker化云々とかLambdaを使うとかはそれからでしょう。
ranerane0101

2021/09/22 11:53

WSL2、Laravel sailでローカルに既にアプリを作りましたが、そのDocker環境を本番環境に移すのが難しいのでEC2にアプリを作り直してからデプロイしたほうが良いということですか?それとお金の方はやはり明言できないということはそれだけ難しいのですねAWSは。何度もすいません。制限の意味も取り違えていて、勉強になります。
yu_1985

2021/09/22 12:15

> そのDocker環境を本番環境に移すのが難しいのでEC2にアプリを作り直してからデプロイしたほうが良いということですか? そうではなく、無理にLambdaに載せようとするのはやめて普通にLaravelを動かしてみてください。 その上でLambdaで使えそうだなと思ったら使えばいいでしょう。 普通に動かすこともままならないのに特殊な環境で動かせますか?ということです。 Laravel自体をDockerで動かす(EC2かECSかは問わない)か、EC2上に環境構築して普通に動かすかはどちらでもいいのでまずはLaravel自体をちゃんと動かしてみることのほうが優先だと思います。 ちなみにEC2の無料枠はご存知の通りかと思いますが、ECSには見た感じ無料枠がないのでご注意ください。 どのみちかかってもせいぜい数千円程度ですし、必要のないときはstopすれば料金も削減できるので多少料金がかかることは許容したほうがスムーズでしょう。 気になるならアラート設定をするのとコストエクスプローラーをマメにチェックしてください。 また、ここで言っている本番環境が何を指しているのかはちょっとわかりません。違う環境でも動かすことができるという点ではDocker化したもののほうが楽な気はしますけどね。 > それとお金の方はやはり明言できないと 制限とは料金に絡むところではないのでこれ以上言うことがないというだけです。 言うことがないので明言も何もありませんし、Lambdaを使わないで普通に動かしてみてくださいと言っているのでこの段階でする料金の話はありません。 Lambdaの料金については書いてある以上のことはありませんのでよく読んでください。 言いたいことは、基本を理解する前にいきなりトリッキーなことをしようとしないでまずはオーソドックスなやり方でやってみてください、ということです。
ranerane0101

2021/09/22 13:20

はい。ECSについては触ることは無いので大丈夫です。Laravelを動かすというのは、今回のhttps://qiita.com/minato-naka/items/9241d9c7a7433985056dこのサイトを作ったことでは「動かした」ことにはならないということですか?本番環境とは「就活で見せる時に用いる土台・プラットフォーム」「Heroku・firebase・AWSにデプロイというのが風潮なのでAWS関連・」などと考えています。Lambdaに関しておっしゃりたいことは段階を飛ばしすぎだということ、肝に銘じさせていただきます。
yu_1985

2021/09/22 15:27

> 「就活で見せる時に用いる土台・プラットフォーム」 就活で見せる、と仰るのですが、作ったものによって一体何をアピールしたいんでしょうか。 そこがわかっていなければやるべきこともわかりません。 そもそもなんですが、Lambdaをわざわざ使う理由が見えないのが一番の問題です。 もしLambdaにデプロイすること自体が目的になってしまったら本末転倒ですね。 自分なら「なぜEC2やECSではなく(Laravelのようなフルスタックフレームワークを)わざわざLambdaにデプロイしたんですか」「EC2やECSと比べてどんなメリット・デメリットがありますか」「メリット・デメリットを踏まえた上でLambdaにデプロイすることを判断したのはなぜですか」等の質問を確実にしますし、それに答えられなかったら「言われたことをなぞってるだけなんだな」と判断します。 LambdaでLaravelを動かすというのは正直なところ現状はまだかなりトリッキーな使い方です。 なので、わざわざそんな方法を選択したのであればそれなりの理由が説明できるべきでしょう。 制限もあると書きましたよね。なぜ制限があっても自分の作ったアプリでは問題ないのかも説明できないと、選んだ理由としては不十分です。 明確な理由がわからなかったとしても、例えば普通にEC2で動かすのとLambdaを使って動かすのでどんな違いがあるのか知りたかったので実際に試してみた、とかであればまだ理解はできます。 単にLaravelで動くアプリケーションが実装できること見せたいだけだったらローカルで動けば十分ですし、むしろどこで動かしているかよりも何を実装したのかのほうが重要でしょう。 「AWS上で動かしたい」のであれはEC2に乗せれば十分ではないでしょうか。 Docker化したならEC2上でDockerを動かすでもECSを使うでもいいですし。 AWSのサービスをうまく使えることをアピールしたいのであればCodeシリーズを使ってデプロイを自動化してみたり、冗長化構成を組んでみたり、色々やってみればいいですよね。 もしサーバレスアーキテクチャを試したいのであればいきなりLaravelに手を付けるのは明らかに悪手です。 > Heroku・firebase・AWSにデプロイというのが風潮なのでAWS関連・ ではなぜそうなのでしょうか。考えたことはありますか? 誰かに言われたからただそのとおりにやっていたりしませんか? これらを選択するのは基本的には何らかのメリットがあるからです。 実務においても技術ありきで要件を無視した技術選定はたいていロクな結果になりません。 長くなりましたが、この質問の回答としては「想定されるような使い方ではおそらく料金は発生しないだろう」、でひとまず終わりです。
ranerane0101

2021/09/23 03:45 編集

ありがとうございました。確かに言われた通り、風潮に拘っていたところもありました。よく考えてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問