Skip to main content

infrastructure

Overview

インフラ関連のためのセクション。

仮想化とコンテナーの違い

大前提 ipアドレス127.0.0.1(localhost)はは仮想環境外部からはアクセスできない。

仮想化

コンテナー

ホストOS →(コンテナーで区切られた)プロセス
コンテナーはコンテナー内のプロセスやライブラリを通してホストのOSのカーネルを使っている

エンタープライズアプリ

エンタープライズアプリとは、サーバ・DB・ネットワーク機器などを組み合わせて作られた、1つの大きなシステム 会社内で使われる業務システムや、LAMP(Linux/Apache/MySQL/PHP)などの比較的古い技術で作られたwebアプリなどが当てはまる

サーバーレスアプリ

アプリを動作させるインフラをAWSの機能ですべて管理する仕組みのこと。 サーバを安定させて稼働させたり、急な負荷に対する性能を向上させたりすることが自動で行われる。 このようなシステムは、大人気アーティストのライブチケット販売や、選挙期間中の期間限定サイトなど、短期間で大量のユーザに利用してもらうようなサービスを構築するときに使われる。

アプリケーションサーバーの前にWebサーバ(Apache or Nginx)を置く理由

stack overflow

Djangoなどのフレームワークなどはhttps接続が可能だが、一般的にはアプリケーションサーバを直接公開せずApacheやnginxなどのWebサーバを介して公開する。 これはアプリケーションサーバではCPU・メモリ効率が悪いため、画像・スタイルシート・スクリプトファイルなどの静的なファイル高速はWebサーバ(nginx or Apache)に任せるため、というのが大きな理由。 その他、アクセス制御などのインフラ周りの処理はアプリケーション側ではなくWebサーバに持たせたい、複数のアプリケーションサーバを利用する場合にも柔軟に対応できる、Webサーバが持つ高機能な仕組みを利用したい(アプリケーションサーバはWebサーバとして低機能なことが多い)などの理由もある。

Webサーバとアプリケーションサーバ

参考URL

webサーバーとは

HTTPに則り、HTMLや画像の情報を返してくれるもの、イメージ的には静的なwebサイトで提供されるもの(HTML,CSS,JavaScriptなど)が、このwebサーバーで返されるイメージ。

アプリケーションサーバーとは

アプリケーションサーバーは送られてきたリクエストに対して、rubyやphpなどを実行して、動的な処理をした結果を静的な要素に変換してwebサーバーに返すためのもの。つまり、動的なサイトを動かす上で必要なもののうち、静的ではない部分を作ってくれるもののイメージ。

よって、静的な要素のみで作っているサイトだったら、内部的にdbをいじったりそれに合わせた処理をしてhtmlを作ったりする必要がないので、webサーバーのみで大丈夫。

localhostを公開する(ngrok)

ngrok

ドメイン切り替え手順