96
68

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

エンジニアなら知っておきたいサーバーの基本

Posted at

エンジニアなら知っておきたいサーバーの基本

サーバーやネットワークについて勉強したのでざっくりと基本を説明します。
知らなくてもコードは書けますが、知っておくとエラーが起きた時の対応が早くなったり、コードを書く以外の部分で役に立つと思います。

1. Webアプリケーションが動く流れ

ブラウザにURL(https://example.com)を入力してから画面が表示されるまで、以下のプロセスが高速で行われています。

DNSによる名前解決

コンピューターはドメイン名(example.com など)のままでは通信相手を特定できません。まず、ドメインからIPアドレスを返す専用のサーバー(DNSサーバー)に問い合わせ、ドメインに対応するIPアドレスを取得します。

  • 例: example.com104.18.27.120

HTTPリクエストとレスポンス

IPアドレスが判明すると、ブラウザ(クライアント)は取得したIPアドレスをもとにサーバーへ「このページ(データ)をください」というHTTPリクエストを送ります。

これに対し、サーバーは要求されたHTML、画像、JavaScriptなどのデータをHTTPレスポンスとして返します。
返されたデータを画面に表示することでWebサイトを表示することができます。

2. サーバーの正体

「サーバー」という言葉は抽象的に聞こえますが、その正体は実体のあるコンピューターです。

物理的な構成はPCと同じ

サーバーも、私たちが普段使うPCと同様に CPU・メモリ・ストレージ(SSD/HDD) を備えています。

  • 高耐久・高信頼性: 24時間365日稼働し続けるため、ファン(冷却装置)の強化や、電源やディスクが壊れても動く「冗長化」が施されています。
  • OS: デスクトップ用OSではなく、サーバー専用のWindows Serverや、安定性に優れたLinuxが主流です。

3. IPアドレスとポート番号

サーバーに正しくアクセスするためには、「どのコンピューターの」「どの窓口」に繋ぐかを指定する必要があります。

IPアドレス:ネットワーク上の住所

IPアドレスは、ネットワーク上のホスト(コンピューター)を一意に識別するための番号です。

  • パブリック(グローバル)IPアドレス: インターネット上で世界中の誰とでも通信できる、一意の公的なアドレス。
  • プライベートIPアドレス: 社内LANやクラウドの仮想ネットワーク(VPC)など、特定の閉じた範囲内で使われるアドレス。

ポート番号:プログラムごとの窓口

1台のサーバー内では複数のプログラム(Webサーバー、DBサーバー、メールサーバー等)が動いています。IPアドレスでサーバーまで辿り着いた通信を、サーバー内の特定のアプリケーションに振り分けるための「窓口番号」がポート番号です。

ポート番号は固定のものと変動するものがあり、0〜1023番はウェルノウンポートとして主要なサービスに割り当てられています。

  • 80: HTTP(暗号化なしのWeb閲覧)
  • 443: HTTPS(暗号化ありのWeb閲覧)
  • 22: SSH(サーバーの遠隔操作用)

4. localhost について

開発中、自分の手元のコンピューター(ローカル環境)でWebアプリケーションを動かし、ブラウザで動作確認をすることがよくあります。このときに使われるのが localhost(ローカルホスト) です。

通常、通信はネットワークを介して外のサーバーへ向かいますが、localhostを指定すると、通信は外に出ることなく自分のコンピューター内で完結します。これは『ループバック』と呼ばれ、自分自身を指す特別なIPアドレス(127.0.0.1)が使われます。

ローカルで実行したWebアプリケーションは、http://localhost:3000 もしくは 127.0.0.1:3000 にアクセスすることで表示することができます。

5. Azure App Service について

セクション2で「サーバーの正体はコンピューターである」と説明しましたが、現代の開発では、物理的なサーバーを自分たちで用意・管理しないケースが増えています。その代表例が、Microsoft Azureが提供する Azure App Serviceです。

Azure App Service は PaaS(Platform as a Service) と呼ばれる形態のサービスです。AzureがOSやハードウェアの管理、セキュリティパッチの適用などを代行してくれるため、エンジニアはコードを書くことに集中できます。また、アクセス急増時に自動で処理能力を増やす『オートスケール』 などの運用も容易になります。

自分で作成したWebアプリケーションをサーバー上で動かすことで、ローカル内だけでなく、外のネットワークやデバイスからもアクセスすることができるようになります。

従来は物理サーバー(オンプレミス)で運用していましたが、最近ではAzureなどのサービスを利用してWebアプリケーションを動かすことが一般的となってきました。

まとめ

今回はWebアプリケーションがどのようにして稼働しているのか、どのようにしてユーザーのもとに表示しているのかをざっくりと説明しました。

96
68
1

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
96
68

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?