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

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

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

Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Q&A

解決済

5回答

2283閲覧

サーバーについて基本的なことを教えてほしい

eve

総合スコア19

Server+

Server+は、IT業界団体CompTIAが認定しているサーバー業務に関する資格です。サーバーのHW/SW構築・メンテナンス・仮想化など、サーバー運営上の運用・管理において幅広く対応できるスキルを評価します。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

2グッド

3クリップ

投稿2021/04/05 14:24

かなり初歩的な質問だと思います。
疑問だったので聞かせてください。

今、サーバーについて勉強しています。サーバーとは何か、と調べると、
クライアントからのリクエストにこたえる(サービスを提供するもの)と出てきます。
これは理解できます。

そして、サーバーは、「一般的なPCよりも高性能なコンピュータ」などと出てきます。
サーバールームなども見たことがあり、サーバーの実際のイメージ(物理)はつきます。

そこでいくつか質問させてください。
例えば、Googleを使って何か調べものをするとき、クライアントはGoogleのサーバー(物理的なコンピューター)に
アクセスして、Webサイトを閲覧できる、という仕組みなのでしょうか。
そうした場合、企業のサーバーでもかなり大きなコンピューターなのに、世界中の人がアクセスするとなると、
非常に巨大なコンピューターがGoogleにある、ということなのでしょうか。

また、「サーバーを立てる」などという言い方をすると思いますが、それは技術的にどのようなことをしているのでしょうか。
どうも、どこかの物理的なサーバーにアクセスして、というのがイメージできません。もしくは、物理的なサーバーの実体がなくても、
サーバーを構築することが可能なのでしょうか。(自分のPCにサーバーを構築するようなイメージ?)
(Apache?や、HTTPサーバー?など、必ずしも物理的なサーバーの実体(コンピュータ)がなくてもサーバーを構築できる・・・??
プログラムがサーバーになりうる・・・??

サーバーと調べてもあいまいな説明しかなく、また、そのあたりの技術にふれたことがないので、全くイメージがつかず、
理解に困っています。
サーバーと調べると、PCやスマホなどのクライアントが、サーバーと呼ばれる物理的なコンピュータにインターネットを経由してアクセスして、
いろんなサービスを享受できるというような書き方しかされていません。そのなかで、上記のようなことを疑問に思ったので質問させて頂きました。

いろいろ教えていただけると幸いです。
よろしくお願いいたします。

K_3578, 68user👍を押しています

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

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

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

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

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

guest

回答5

0

ベストアンサー

コンピューターとコンピューターがつながるのに、
ハードウェアやネットワークやソフトウェアなど一旦置いといて、
他方からのリクエストを受け付け、処理して、応答する、
これが狭義のサーバーの定義になるかと。

それを踏まえて、
自分のPCでもサーバーになる仕組みをお膳立てすれば
サーバーになるし、
TCPの80番ポートをLISTENするプログラムが動けば
webサーバーにだってなります。
(HTTPプロトコルに則ってリクエストが送られてきたのを受け付けてHTTPプロトコルに則って応答を返せれば、webサーバーです。)

TCPの80番(やhttpsとしてTCPの443番)でリクエストを受け付け、
なんらかのデータ処理したりしたものを応答すると、
webサーバーに見えるので、小さければ例えば
Raspberry Piだってwebサーバーになるし、
大きな規模になると並列化分散コンピューティングとかかました先で処理した結果を応答する
さまざまなサービス(GAFAMほか)もあるわけで。

〈プログラムがサーバーになりうる〉というか、
サーバーとして動くためのプログラムや仕組みが動けば、それサーバーです、と。
サーバーが成り立つように、ハードウェアやネットワークやソフトウェアを如何様に組み合わせてもヨシ。

投稿2021/04/06 01:26

編集2021/04/06 02:00
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

eve

2021/04/11 06:48

なるほど!スッキリしました。なかなか調べるだけではイメージが湧きにくかったので....ありがとうございました!
guest

0

サーバという言葉は、ハードウェア、仮想マシン、ネットワーク、OS、アプリケーションなどの複数の分野でそれぞれ違った意味で使われています。これを混同すると訳が分からなくなるので注意しましょう。

クライアントからのリクエストにこたえる(サービスを提供するもの)はアプリケーションのサーバであり、「一般的なPCよりも高性能なコンピュータ」はハードウェアのサーバの話です。

Googleを使って何か調べものをするとき

正確には覚えていませんが、こんな感じです。
google画面で検索を実行すると、googleの検索ページは、検索者の地域や言語設定などをもとに、異なったURLのリクエストを生成します。
このURLを送信するとき、URL(のうちの前半)をDNSサーバに送ってIPアドレスに変換してもらいます。このとき、DNSサーバは負荷分散のために一つのIPアドレスではなく複数のIPアドレスを返します。
クライアントは受け取ったIPアドレスに対して検索リクエストを送信します。受け取るのはGoogleのフロントエンドサーバー群の内の一台です。
リクエストを受け取ったフロントエンドサーバーは分散検索用のサーバ群(Hadoopの原型だったはず)のひとつに検索リクエストを送り、分散検索用のサーバ群はファイルサーバを利用しつつ検索を行って結果を返すというようなことを行います。
(本当はもっと複雑です)

非常に巨大なコンピューターがGoogleにある

世界中に配置され、ネットワークで接続された、様々な機能を持つコンピュータ群をGoogleという会社が所有している、という意味ではそうです。

「サーバーを立てる」などという言い方をする

これは、ソフトウェアのサーバを設定して起動することを言います。
DHCPサーバとかDNSサーバ、HTTPサーバのようなネットワークサーバ
ファイルサーバ、DBサーバ、SQLサーバのようなデータサーバ
などではよくそういう言い方をしますね。

物理的なサーバーの実体がなくてもサーバーを構築することが可能なのでしょうか。

物理的なサーバは常に必要です。
AWSを使うように、仮想マシン提供サービスを利用してサーバを構築する場合でも、どこかに物理的なサーバは必要です。
複数の物理的なサーバを複数組み合わせて一つのサーバ機能を構築することもあれば、一台のサーバの上で、複数のサーバ機能を構築することもあります。

投稿2021/04/06 22:11

ppaul

総合スコア24666

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

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

0

サーバ用途が得意なコンピュータ、クライアント用途が得意なコンピュータというものはありますが、サーバ専用のコンピュータ、クライアント専用のコンピュータというものはありません。

Google 等のラック内のサーバ群でも、我々が使っているデスクトップPCやノートPCでも、Apache や Nginx などを動かせば Web サーバになれます。

実際のところ、あなたの PC をサーバとして動かすには、
他の人がインターネットからアクセスできるような固定 IP アドレスを持つ
というのがひとつの関門ですが、
https://www.so-net.ne.jp/option/staticip/
などを使えば実現できます (他にも ダイナミックDNS を使うなどの方法があります)。

とはいえ、
・家庭での電気代・ファンの音・停電対策・故障時の代替マシン確保等
・最近は低価格で VPS やクラウドサービスが使える
という点で、最近自宅サーバをやっている人は多くはないと思います。

投稿2021/04/05 16:16

68user

総合スコア2005

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

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

0

非常に巨大なコンピューターがGoogleにある、ということなのでしょうか。

多分想像しているのとは違います。

Googleを支える技術4選 (2)データ分散システム—大規模化

Web検索を全世界に提供するために、Googleのデータセンターもまた世界各地に分散配置されている。現在のGoogleは、いかにして高速な検索と高度なランキングを実現しているのだろうか。それは以下の4つのシステムが用いられている。

近くのデータセンターに接続する
多数のサーバで負荷分散する
一定数のページごとにインデックスを分割する
多数のインデックスを一度に検索

世界各地にデータセンターが存在し、
Googleのデータセンターへの投資額が210億ドルを超える - GIGAZINE
それぞれのデータセンターの中はこんな感じになっているそうです。
Googleがあらゆるサービスを支えるデータセンターの様子を公開中 - GIGAZINE

日本にもデータセンターは設置されているらしい。
グーグルが日本に自社データセンター建設へ、立地は首都圏屈指の「DC銀座」 | 日経クロステック(xTECH)

投稿2021/04/05 15:05

KojiDoi

総合スコア13671

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

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

0

1)巨大なホストコンピューターあるように思われているようですが、多数のコンピューター群に分散されています。あなたの目の前のパソコン(高機能で、形はちょっと違いますが)がいっぱいあると考えてください。肝は「分散処理」です。

2)サーバーとは物理のイメージを持たれるかもしれませんが、プログラムと考えた方が良いです。待ち受けて処理を行い、結果をクライアントに返すプログラムです。一つのコンピューターに複数のサーバーがあることはよくあります。仮想化とか考えなくてもそうです。

投稿2021/04/05 14:50

mike2mike4

総合スコア894

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問