Webアプリの基礎とさまざまな実行環境を理解する#3(社内勉強会)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社Webアプリの基礎とさまざまな実行環境を理解する#3(社内勉強会)BPS社内勉強会のmorimorihogeさんのスライド「Webアプリの基礎とさまざまな実行環境を理解する」の第3回です。Railsにつながる話になります。これは前回のI.とIII.のハイブリッドと言えます。ハイブリッドすなわち「いいとこ取り」で、静的なファイルやHTTPの処理はWebサーバに任せ、プログラム処理が必要なリクエストだけをアプリケーションサーバに送ることでI.とIII.のメリットを同時に得ることができます。現在最も一般的なRails環境はこれに該当します。Tomcatなど)が、Railsの登場で一気に普及した感があります。Puma」が標準のRails実行環境です。Webサーバは以前はUnicornでしたが今はPumaが標準になりました。以下はRailsを前提とした話です。HerokuはRailsアプリケーションのホスティングサービスの典型です。Heroku独自の設定やルールがある点に注意しましょう。以前はニフティクラウドC4SAもRailsアプリのホスティングサービスを行っていましたが、現在はサービス終了しています。Rails本体や組み合わせるミドルウェアのセキュリティ問題については当然考慮が必要です。マネージドなサービスではなく自前でサーバーを構築することで、サーバー要件に対する自由度が高くなります。ライブラリを使いたいなどの事情がある場合には自前でサーバーを構築するという選択肢が結果として簡単になるケースが多いです。以下の様な要件がある(または将来的に要求される可能性がある)場合、PaaS型のマネージドサービスよりも自前でLinuxサーバーを管理できる環境の方が作りやすいことがあります。PaaS型サービスではサービス側でプログラムの実行時間に制限が付けられているケースがあり、超時間かかるバッチ処理などを知らずに作るとタイムアウトして中断されてしまうことがあります。S3等のオブジェクトストレージを使うことが推奨される)。