0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

サーバーサイドの全体像

Posted at

#サーバーとは

サーバーとは、情報やデータをいつでも提供してくれる、提供専用のコンピューターのこと。

個人用のPCと比較した時に、大きく異なる部分は2つ

・IPアドレスが固定されている
・レスポンスを返すようにOSとアプリケーションが設定されている

##IPアドレスが固定されている

普段私たちが使っているPCは、IPアドレスが固定されていません。
なぜなら、

・情報を取得する側であり、提供する側でないから
・セキュリティの観点から同じIPアドレスだと外部からの攻撃を受けやすいから

※AWSのEC2もデフォルトではIPアドレスが変わってしまう設定になっています。そこでElastic IP addressをEC2にアタッチさせることで、IPアドレスを固定させます。IPアドレスを固定化した後は、Route53(DNSサーバー)でドメインとIPアドレスを対応させます。こうすることで、クライアント側(個人用のPC)からサーバーへリクエストを送ることができます。

しかし、これだけではダメです。
サーバーがリクエストを返すには、OSを設定する必要があります。

##サーバーのOSの設定

OSとは、スマホやパソコンに搭載された基本ソフトウエアのことです。スマホでアプリケーションが使えたり、パソコンで基本的な操作ができるのは、全てOSがあるおけげです。またWebサービスやアプリケーションを動かすには、必ずOSが必要です。そのためサーバーにもOSを入れないと動かすことができません。

では、サーバーでは具体的にどのようなOSを使うかというとLinux(RedHat, CentOS, Amazon Linux 2など)が一般的です。Linuxは、サーバーの用途にあったOSとなります。

###サーバーの管理と操作

サーバーは通常、温度管理やセキュリティが行き届いた専用施設であるデータセンターに置かれています。
※EC2もAWSが管理するデータセンタに置かれています。

サーバーは離れた場所にあるので、遠隔で通信してログインして操作する必要があります。

操作の設定には、

・CUI : コマンドを使って操作する
・GUI : マウスや指を使って直感的に画面を操作する

の2種類が存在します。

サーバーでは、CUIを使うのが一般的です。
理由は、コマンドを打って作業した方が作業効率が良いからです。

##サーバーのアプリケーションの設定

サーバーにOSを設定しただけでは、サイトを見ることはできません。具体的なアプリケーションを設定してサーバーにアップロードし、それをOSを連携させることが必要になります。

###HTML,CSSの仕組みとデメリット

HTML,CSSのファイルをアップロードすると、シンプルなWebページだけのサービスが提供することが可能です。クライアント(あなたのPC)が、「Webページの情報ください」というシンプルなリクエストを出して、サーバーがHTML, CSSで作られたファイルをレスポンスとして返す。これだけでもシンプルなWebページを世界中に公開することができます。

しかし何度アップデートしても同じページが表示されるだけで、ユーザごとのプロフィールページ、データなどは扱うことができません。

###データベース、サーバーサイド言語の存在意義
クライアントからリクエストを受け取ったサーバーは、クライアントにリスポンスを返す前に処理を行っています。

SNSのプロフィールを更新したり、いいねを押したり、世界中の人に最新のWebページを更新するためには、2つの仕組みが必要です。

それは、データを保存と作成する仕組みです。

####データの保存(データベース)

例えば、SNSのユーザのプロフィール情報、サイトの更新情報、獲得したいいね数などの膨大の情報はWebページ運用するために管理する必要があります。

このデータを保存する場所をデータベースと言います。
そのデータベースに保存されているデータを取り扱う言語があります。
それが、SQLです。

ここでの注意点は、
データベースはあくまで情報の保管庫であり、データベースのデータをSQLで取り出すことはできます。しかし、そのデータを加工したり表示したりするには別の仕組みが必要になります。

####データの作成(サーバーサイド言語)

そこで必要になるのが、サーバサイド言語です。

サーバサイド言語は、

・取り出したデータをどのように加工するか
・どのように表示するか

処理する言語です。

Ex) python, Ruby, PHP, Java

SNSの例だと、

⓵あなたがSNSを見たいと、サーバーにリクエストを送ります。
⓶サーバーがあなたのプロフィールの情報(データ)を、サーバーサイド言語を用いてデータベースから取り出す
⓷取り出したデータをHTMLの中に組み込んで、あなたのプロフィールが入ったWebページを生成する
⓸その生成したWebページをリスポンスとして返す

という流れになります。

※AWSでは、EC2(サーバー)の中にデータベースやサーバサイド言語もインストールして、EC2一台でWebサービスを構築することも可能です。しかし通常はセキュリティの観点からデータベースだけ別のサーバーに分けて配置します。そこでRDS(データベースのサービス)を用いて、その中のEC2のデータベースにソフトウエアをインストールして、AWS上で使いやすくアレンジしています。

0
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?