ITインフラの基礎「サーバーの構成要素⁠仮想化⁠コンテナ技術」押さえよう

Software Design 2026年5月号の第1特集「ITインフラ集中講座」から第2章「サーバー、OS、ミドルウェア」を公開します。本特集のほかの章では、この記事の前提知識にあたる「ITインフラの構成要素・形態」や、発展編にあたる「クラウドコンピューティングとIaC」⁠コンテナ活用とマイクロサービス」⁠Webシステムのインフラ設計」について解説しています。ぜひ本誌にてご確認ください。

ネットワークを通じてSaaSやSNSなどさまざまなITサービスを提供するために、サーバーは欠かせない存在です。本章では、ITインフラの基本であるサーバーが、どのような要素で構成されているかしっかり押さえます。そして、近年欠かせない仮想化とコンテナの技術によるサーバー構築を体験してみましょう。

サーバーとは

サーバーとは、ネットワークを通じて他のコンピュータにサービスを提供するコンピュータやプログラムのことを指します。サービスの利用者をクライアントと呼び、クライアントの要求に応じてサーバーがサービスを提供します。

提供するサービスによってサーバーを分類できます。たとえば、Webブラウザへコンテンツを提供するサーバーのことを「Webサーバー⁠⁠、メールの送受信を担うサーバーのことを「メールサーバー」と呼びます。他にもデータベースサーバー、ファイルサーバーなど多種多様なサーバーがあります。

サーバー内ではサービスを提供するためにプログラムを常時起動させ、クライアントの要求を待ち受けます。どのクライアントからいつ、どのような要求があるかわからないためです。

サーバーはコンピュータなので、私たちが普段使用するPCと同じ構成です。ただ、クライアントからの要求を多数・高速にさばくため、計算性能が高く、常時起動しても壊れにくくする必要があります。これらの条件を満たすためにはおのずと高価なコンピュータ・設備が使われることが多くなります。

ユーザーが快適にITサービスを利用できるかは、サービス提供元であるサーバーがいかに安定稼働できるかにかかっています。その意味でサーバーがITインフラの中核を担っていると言えるでしょう。

サーバーの構成要素

サーバーはさまざまなパーツによって構成されています。ハードウェアとソフトウェアの両面から、サーバーを構成する要素を見ていきましょう。

ハードウェア面での構成要素

ハードウェアとしてサーバーを構成している要素は図1のとおりです。1つずつ解説します。

図1 構成要素

マザーボード

マザーボードはサーバーを構成するパーツが接続される主要な回路基板です。CPU、メモリ、ストレージ、NICなどのサーバーに必要なすべてのパーツを接続する役割を担っています。

CPU

CPU(Central Processing Unit)はコンピュータの「頭脳」とも呼ばれる中心的な処理装置です。プログラムの命令を読み込み、演算や制御を行い、結果をメモリに書き戻すという一連の処理を高速に繰り返すことで、コンピュータを動作させています。

現代のCPUは複数の「コア」を搭載しています。コアとは、CPUの中にある独立した処理ユニットのことで、それぞれが命令を実行できます。サーバー向けのCPUは、一般的なPC向けCPUと比べてより多くのコアを搭載し、長時間の連続稼働に耐える設計がされています。また、ECCメモリ(エラー訂正機能付きメモリ)への対応や、複数のCPUを同時に使用できるマルチソケット構成に対応しているものもあります。

GPU

GPU(Graphics Processing Unit)は、主に画像や映像処理に特化したプロセッサです。当初はビデオゲームや3Dグラフィックスの描画に使用されていましたが、高い並列処理能力があることから、近年では、機械学習や科学計算などの分野でもGPUが利用されるようになっています[1]

GPUは大量の小さなコアを備えており、これにより同時に多くのデータを処理できます。通常のCPUは数個から数十個のコアを持つことが一般的ですが、GPUは数百から数千のコアを搭載しており、特に定型的かつ膨大な計算をする場合、CPUよりも優れたパフォーマンスを発揮します。

メモリ

メモリ(RAM:Random Access Memory)は、CPUが処理中のデータやプログラムを一時的に保存する記憶領域です。⁠主記憶装置」とも呼ばれ、CPUが命令を実行したりデータを演算したりする際には、必ずメモリにデータを読み込んでから処理が行われます。

メモリの最大の特徴は「揮発性」です。電源を切るとデータが失われる一方、ストレージと比べて非常に高速に読み書きできます[2]。容量が不足するとシステムのパフォーマンスが悪化するため、サーバー上で立ち上げるソフトウェアが十分快適に動作できる分だけ容量を確保する必要があります。

サーバー向けのメモリには、データの誤りを自動的に検出・修正できる「ECC(Error Correcting Code)メモリ」が使用されることが一般的です。宇宙線などの影響でまれにメモリ上のデータが化けることがあり、ECCメモリはこのようなエラーを検出して修正することで、システムの信頼性を高めています。

ストレージ

ストレージはデータを永続的に保存し、必要なときに取り出すための装置です。⁠補助記憶装置」とも呼ばれ、コンピュータの電源を切ってもデータを保持できます。現在は、一般的に次の2種類が利用されています。

  • HDD(ハードディスクドライブ:Hard Disk Drive)
  • SSD(ソリッドステートドライブ:Solid State Drive)

HDDは磁気ディスク上にデータを格納し、データを読み書きする際に回転するディスクと、ディスクからデータを読み取る磁気ヘッドがあります。大容量で低コストですが、機械的な構造のためアクセス速度が遅く、耐障害性に劣る特徴があります。

SSDはフラッシュメモリ(半導体メモリの一種)を使用してデータを格納する装置です。HDDのように物理的に稼働する部品がなく、電気的に高速に読み書きを行うことができます[3]

サーバー向けのストレージには、RAID(複数のストレージを組み合わせて1つのストレージとして扱える技術)構成に対応したものや、ホットスワップ(稼働中のストレージを交換できる)に対応したものもあります。

NIC

NIC(Network Interface Card)は、コンピュータをネットワークに接続するための装置です。⁠ネットワークカード」「LANカード」とも呼ばれ、物理的なネットワークケーブルを接続するポートと、データを送受信するための回路を持っています。サーバー向けのNICには、複数のネットワークポートを持つものや、冗長構成(1つのポートが故障しても別のポートで通信を継続できる)に対応したものもあります。

ソフトウェア面での構成要素

これまでハードウェア面でのサーバーの構成要素を説明してきましたが、ソフトウェア面でもサーバーはさまざまな構成要素から成り立っています。ソフトウェアをうまく組み合わせることで、サーバーはさまざまなサービスを提供できるようになります。

ソフトウェアはファームウェア、OS、ミドルウェア、アプリケーションの4層に分類できます(図2)

図2 ソフトウェアの階層構造

BIOS⁠UEFI

BIOS(Basic Input/Output System)は、コンピュータの電源を入れて最初に実行されるファームウェアです。ファームウェアとは、ハードウェアを制御するためのソフトウェアで、ROM(Read-Only Memory)などの不揮発性メモリに格納されていることが一般的です。

BIOSはハードウェアを初期化し、OSを読み出して起動する役割を担っています。電源投入後、マザーボード上のROMからBIOSが読み込まれ、ハードウェアの初期化やPOST(Power-On Self Test)を経てOSのブートローダを起動します。

BIOSは古くから使われてきたファームウェアですが、現在ではBIOSの後継として開発されたUEFIが主流となっています。

OS

OSはOperating Systemの略で、コンピュータのハードウェアを管理し、ユーザーやアプリケーションがハードウェアを利用できるようにするソフトウェアのことを指します。OSは、ハードウェアリソースの管理(CPU、メモリ、ストレージ、NICなど)や、ファイルシステムの提供、ユーザー管理、セキュリティ機能の提供など、多くの役割を担っています。

カーネル

カーネルはOSの中核をなす部分です。ハードウェアとソフトウェアの橋渡しをする役割を担っています。カーネルは、プロセス管理(複数プログラムへのCPU時間の分割⁠⁠、メモリ管理、ファイルシステム管理、デバイスドライバーの提供、セキュリティ機能の提供、ネットワーク管理など、OSの基本的な機能を実装しています。

ハードウェアの制御をカーネルが担うことで、アプリケーションは簡単にハードウェアを利用できるようになります。

ミドルウェア

アプリケーション開発において、開発者は本来、独自のビジネスロジックの実装に集中したいものです。しかし実際には、ユーザーのログイン処理やログの記録など、ビジネスロジックとは直接関係のない、どのアプリケーションにも共通する処理が数多く存在します。こうした処理をあらかじめ用意されたミドルウェアに任せることで、開発者はビジネスロジックに集中でき、開発効率を大きく向上させることができます。

代表的なミドルウェアとしては、Webサーバー、アプリケーションサーバー、データベースサーバーなどが挙げられます。

Webサーバー

Webサーバーは、HTTPプロトコルを使用してクライアントからのリクエストを受け取り、適切なレスポンスを返すミドルウェアです。Webサーバーは、静的なコンテンツ(HTMLファイルや画像など)を提供するだけでなく、動的なコンテンツが必要な場合にはリクエストのたびにアプリケーションサーバーに問い合わせ、コンテンツを返却します。動的なコンテンツとは、ユーザーの入力に応じて内容が変わるページや、データベースから情報を取得して表示するページなどが挙げられます。

代表的なWebサーバーには、Apache HTTP ServerやNginxがあります。

アプリケーションサーバー(APサーバー)

アプリケーションサーバーはアプリケーションの実行環境を提供するミドルウェアです。Webサーバーからのリクエストを受け取り、アプリケーションコードを実行して、レスポンスを動的に生成します。

アプリケーションサーバーの構成要素として、次の2つがあります。

  • アプリケーションサーバーソフトウェア:Webアプリケーションの実行環境を提供する
  • Webアプリケーションフレームワーク:Webアプリケーションの構築を支援する

Webアプリケーションフレームワークは、アプリケーションを実装するプログラミング言語によってさまざまなものが存在します。たとえば、言語がPythonであればGunicorn+Django/Flask、RubyであればPuma+Ruby on Railsといった組み合わせが代表的です。

データベースサーバー

データベースサーバーは、データベース管理システム(DBMS)を提供するミドルウェアです。データベースサーバーは、クライアントからのデータの保存や検索のリクエストを受け取り、適切な処理を行ってレスポンスを返します。代表的なデータベースサーバーには、MySQLやPostgreSQLがあります。

Web三層アーキテクチャ

Webシステムを設計するとき、すべての処理を1ヵ所に詰め込んでしまうと、システムが大きくなるにつれて修正や拡張が非常に難しくなります。そこで広く採用されているのが、システムを次の3つの層に分ける「三層アーキテクチャ」という考え方です(図3)

  • プレゼンテーション層:ユーザーの目に触れる
  • アプリケーション層:ビジネスロジックを担う
  • データ層:データを蓄える
図3 Web三層アーキテクチャの構成

プレゼンテーション層は、ユーザーが直接操作する画面そのものです。ブラウザに表示される画面、スマートフォンのアプリ画面などがこれにあたります。

アプリケーション層は、システムの頭脳とも言える部分です。サービスの提供に必要なビジネスロジックはすべてここで処理されます。プレゼンテーション層からのリクエストを受け取り、必要に応じてデータ層に問い合わせて結果を返す、その橋渡し役を担います。

データ層は、アプリケーション層から受け取ったデータを管理する部分です。データの保存や、リクエストに応じたデータの検索・取得といった役割を担います。

この三層に分ける最大の恩恵は、機能改修によって生じる変更の影響範囲を局所化できることです。たとえば、見た目を変えたい場合にはプレゼンテーション層だけを変更すればよく、ビジネスロジックやデータ管理の部分にはいっさい手を加える必要がありません。Webシステムの開発ではフロントエンドとバックエンドで分業体制を組むことも多いですが、それが可能なのはWeb三層アーキテクチャのおかげでもあるのです。

自身のPCの構成要素を確認してみる

fastfetchを使うと、これまでに紹介したCPU、メモリ、ストレージなどの構成情報を一度に確認できます。同様のツールとしてneofetchが有名ですが、現在は開発が終了しており[4]、fastfetchはその後継ツールに位置付けられています。インストール方法はfastfetchのGitHubリポジトリ[5]のREADME.mdの記述にあるInstallationを参照してください。インストールできたら、次のコマンドを実行してみてください。

$ fastfetch -c all.jsonc

筆者のMacBook Air(M1)[6](表1)では図4のような情報が表示されました。サーバーもPCも用途は違えど、基本的な構成要素は同じです。ぜひ自分のPCで試してみてください。

表1 筆者のMacBook Air(M1)の構成情報
項目
CPU Apple M1(4+4コア)@ 3.20 GHz
GPU Apple M1(8コア統合型)
メモリ 8.00 GiB LPDDR4
ストレージ 465.92 GiB Apple SSD
OS macOS Sequoia 15.3.2
BIOS iBoot 11881.81.4
カーネル Darwin 24.3.0
NIC Wi-Fi 6(802.11ax)
図4 fastfetchの実行結果(macOS環境)

サーバーの仮想化

仮想化とは?

仮想化とは、1台の物理マシン上で複数の仮想的なマシンを作成・管理する技術のことを指します。仮想化を利用することで、次のメリットを享受できます。

  • 複数の仮想的なマシンを立ち上げることで、物理マシンのリソースを効率的に活用できる
  • 仮想マシンの作成や削除が容易で、開発環境やテスト環境の構築が迅速に行える

仮想化には大きく分けて「仮想マシン型仮想化」「コンテナ型仮想化」の2種類があります。

仮想マシン型仮想化

仮想マシン型仮想化とは、物理マシン上に複数の仮想マシンを作成し、それぞれが独立したOSを持ち、完全に分離された環境で動作する仮想化技術のことを指します。仮想マシン型仮想化にも「ホスト型」「ハイパーバイザー型」の2種類があります(図5)

図5 仮想マシン型仮想化の構成(ホスト型とハイパーバイザー型)

ホスト型仮想化

ホスト型仮想化は、ホストOS上で仮想マシンを実行する仮想化技術のことを指します。ホストOSが仮想マシンの管理を行い、仮想マシンはホストOSが提供する仮想化されたハードウェアを利用して動作します。

メリットとしては、ホストOSが提供するドライバーや機能を利用できるため、仮想マシンの構築や管理が比較的簡単であることが挙げられます。一方デメリットとしては、ホストOSを介して仮想マシンがハードウェアにアクセスするため、パフォーマンスが劣ることが挙げられます。

代表的なホスト型仮想化のツールには、VirtualBoxやVMware Workstationがあります。

ハイパーバイザー型仮想化

ハイパーバイザー型仮想化は、物理マシンのハードウェア上で直接仮想マシンを実行する仮想化技術のことを指します。ハイパーバイザーが仮想マシンの管理を行い、仮想マシンはハイパーバイザーが提供する仮想化されたハードウェアを利用して動作します。

メリットとしては、ホストOSを介さずに仮想マシンがハードウェアにアクセスするため、パフォーマンスが向上することが挙げられます。デメリットとしては、ハイパーバイザーの管理が必要であるため、仮想マシンの構築や管理がホスト型仮想化と比べて複雑になることが挙げられます。

代表的なハイパーバイザー型仮想化のツールには、VMware ESXiやMicrosoft Hyper-Vがあります。

コンテナ型仮想化

コンテナ型仮想化とは、ホストOSのカーネルを共有しながら複数のコンテナを実行する仮想化技術のことを指します。コンテナは、アプリケーションとその実行に必要なリソースを1つにまとめたもので、ホストOSのカーネルを共有して動作します(図6)

図6 コンテナ型仮想化の構成

メリットとしては、ホストOS上で通常のプロセスを起動するのとほとんど同じ感覚でコンテナを起動できるため、仮想マシン型仮想化と比べて軽量で高速に動作し、リソースの効率的な利用が可能であることが挙げらます。デメリットとしては、カーネルを共有しているため、カーネルが異なるコンテナを起動できないこと[7]、仮想マシン型仮想化と比べてセキュリティ面でのリスクが高いことが挙げられます。

コンテナ型仮想化の代表的なツールにはDockerがあります。

実践⁠アプリケーションサーバーを構築する

仮想マシン型仮想化とコンテナ型仮想化によるサーバーを構築してみましょう。最初に仮想マシン型仮想化を使ったVirtualBoxによるサーバー構築、次にコンテナ型仮想化を使ったDockerによるサーバー構築を試してみます。

今回構築するPhotoprismについて説明します。Photoprismは写真の管理や閲覧を行うためのアプリケーションです。類似のサービスにGoogleフォトやAmazon Photosなどがありますが、Photoprismはオープンソースで提供されており、ユーザーが自分のサーバーにインストールして利用できます。

Photoprismの説明に「AI-Powered Photos App for the Decentralized Web」とあるように、AIを活用して写真の内容を自動的にタグ付けしたり、顔認識を行ったりする機能があります(図7)

図7 Photoprismの検索機能

実践①⁠仮想マシン編

VagrantとVirtualBoxを使用して仮想マシンを作成し、Photoprismを構築してみましょう。

必要なソフトウェアのインストール

VirtualBoxのインストール

仮想マシン(ホスト)型仮想化を体験するため、VirtualBoxを使ってみましょう。VirtualBoxはOracle社が開発・提供するホスト型の仮想化ソフトウェアです。公式サイトからインストーラをダウンロードしてインストールします[8]

Vagrantのインストール

VagrantはHashiCorp社が開発した仮想マシン管理ツールです。設定ファイル(Vagrantfile)に記述した内容に基づいて、仮想マシンの作成からアプリケーションのインストール・設定まで自動化できます。ローカル環境の構築に広く使用されています。

HashiCorp社の公式サイト[9]からVagrantのインストーラをダウンロード後、インストールします。

インストール後、コマンドラインでVagrantが利用できることを確認しましょう。

$ vagrant --version

サンプルコードの取得

本節で使用するVagrantfileはGitHubリポジトリで公開しています。図8のコマンドでcloneしてください。

図8 サンプルコードのclone
$ git clone https://github.com/Penpen7/software-design-202605-chap2-sample-code

仮想マシンの起動

Vagrantfileが準備できたら、次のコマンドで仮想マシンを起動します。

$ vagrant up

このコマンドを実行すると、Vagrantfileの記述に基づいて仮想マシンが立ち上げられます。具体的には次の処理が自動的に順次実行されます。

  1. Ubuntuの仮想マシンイメージをダウンロード
  2. VirtualBox上で仮想マシンを作成・起動
  3. システムパッケージの更新
  4. Photoprismの依存パッケージをインストール
  5. Photoprism本体のダウンロード、インストール
  6. 設定ファイルの作成
  7. Photoprismをsystemdサービスとして起動

初回実行時は仮想マシンイメージのダウンロードとセットアップに10~20分程度かかるので気長に待ちましょう。

仮想マシンを起動した場合、図9のような構成になっています。ホスト上の2342番ポートへの通信が、Photoprismが通信を待ち受けている仮想マシン上の2342番ポートへ転送されます。

図9 仮想マシンの構成

Photoprismの動作確認

仮想マシンが正常に起動したら、Webブラウザから http://localhost:2342 にアクセスします。

ログイン画面ではNameに「admin⁠⁠、Passwordに「insecure」を入力し[SIGN IN]ボタンを押します。ログインに成功すると、Photoprismの画面が表示されます。

うまくアクセスできない場合は、vagrant up時のログや次のコマンドでphotoprismサービスの起動状況を確認してみてください。

$ vagrant ssh
$ journalctl -u photoprism | less

このコマンドを実行することで、vagrant sshで仮想マシンにSSH接続し、Photoprismサービスのログを確認できます。

デフォルトの言語設定は英語のためサイドバーから[Settings]を選択し、言語を[日本語]に変更してみましょう。

初回起動時は写真がサーバー上にないため、写真の閲覧ができません。写真をアップロードするには、サイドバーから[ライブラリ]を選択→⁠インポート]タブをクリック→⁠アップロード]ボタンを押してみましょう。⁠ブラウズ]ボタンをクリックすると、ファイル選択ダイアログが表示されるので、お好みの写真を選択してアップロードしてみましょう(図10)

図10 写真のアップロード画面

アップロードすると写真の内容を分析し、検索結果に写真が表示されるようになります。一部の写真が検索結果に表示されないことがありますが、Photoprismでは写真の品質が低いと判断されると検索結果に表示されない仕様になっています[10]。サイドバーから[検索⁠⁠→⁠レビュー]を選択すると品質が低いと判断された写真が表示されます。写真を承認すると検索結果に表示されるようになります。また、承認操作が面倒であれば、設定から品質フィルターを無効にする方法もあります。

仮想マシンの停止と再起動

仮想マシンを再起動して起動にどれくらい時間がかかるか、次のコマンドで確認してみましょう。

# 仮想マシンの停止 
$ vagrant halt

# 仮想マシンの起動 
$ vagrant up

筆者の環境では、停止から起動までの時間はおよそ20秒でした(図11)

図11 仮想マシン起動時間の計測結果
$ time vagrant up
(..略..) 
vagrant up  1.75s user 1.45s system 15% cpu 20.570 total

仮想マシンの起動にはゲストOSの起動が必要となるため、起動が完了するまでに時間がかかるとされています。次節の「コンテナ編」でも起動時間を計測してみるので、仮想マシンの場合でどれくらい時間がかかるかは覚えておいてください。

お片付け

仮想マシンは次のコマンドで削除できます。

$ vagrant destroy

実践②⁠コンテナ編

必要なソフトウェアのインストール

コンテナ仮想化を体験するため、今回はDocker Desktopを使います。Docker DesktopはDocker社が開発した、Docker Engine、Docker CLI等のDockerコンテナの実行に必要なリソースをまとめて提供するプロダクトです。公式サイト[11]からインストーラをダウンロード・実行し、インストールします。

Docker Desktopがインストールできたら、dockerコマンドが使用できるか確認しましょう。

$ docker version

コンテナの起動

Dockerがインストールされたことを確認したらいよいよコンテナを起動してみます。コンテナを起動するには図12のようにdocker runコマンドを使います。

図12 Photoprismコンテナの起動
$ docker run -d \
  --name photoprism \
  --security-opt seccomp=unconfined \
  --security-opt apparmor=unconfined \
  -p 2343:2342 \
  -e PHOTOPRISM_UPLOAD_NSFW="true" \
  -e PHOTOPRISM_ADMIN_PASSWORD="insecure" \
  -v /photoprism/storage \
  photoprism/photoprism:251130

各オプションの効果は次のとおりです。

  • -d:バックグラウンドで起動
  • -p 2343:2342:ホストの2343番ポートをコンテナの2342番に転送
  • -e PHOTOPRISM_ADMIN_PASSWORD="insecure":環境変数(管理者パスワード)を設定
  • -v /photoprism/storage:コンテナを削除してもデータが残るように永続化

コンテナが正常に起動すると、コンテナIDが表示されます。

起動に失敗すると何らかのエラーメッセージが表示されます。失敗する典型的な原因としては次が挙げられます。

  • 「Cannot connect to the Docker daemon」エラーに対してはDocker Desktopが起動しているか確認し、起動していなければ起動する
  • 「port is already allocated」エラーに対しては、他のプロセスとポート番号が重複しているため、-pオプションの2343を別の数字に書き換える

コンテナを起動した場合、図13のような構成になっています。ホスト上の2343番ポートへの通信が、Photoprismが通信を待ち受けているコンテナ上の2342番ポートへ転送されます。

図13 立ち上げたコンテナの構成図

コンテナの状態確認

コンテナが正常に起動したかを次のコマンドで確認しましょう。

$ docker ps

このコマンドで実行中のコンテナ一覧が表示され、photoprismコンテナが動いていることが確認できます。

Photoprismにアクセスする

コンテナが起動したら、Webブラウザから http://localhost:2343 にアクセスしてログイン画面に移動しましょう。もしうまくアクセスできない場合は次のコマンドでログを確認し、エラーの原因となる問題を取り除きましょう。

$ docker logs photoprism

ログイン方法や写真のアップロード操作は仮想マシン編で解説した手順と同様です。

コンテナの起動の速さを体感する

コンテナを停止して再度起動するまでの時間を次のコマンドで確認してみましょう。

# コンテナを停止 
$ docker stop photoprism

# コンテナを起動 
$ docker start photoprism

筆者の環境では、停止から起動までの時間はおよそ2秒でした(図14)

図14 コンテナ起動時間の計測結果
$ time docker start photoprism
photoprism
docker start photoprism  0.03s user 0.02s system 2% cpu 2.105 total

仮想マシンが20秒かかったのに対し、コンテナはわずか2秒で起動しました。これほど速く起動できるのは、コンテナがホストOSのカーネルを利用しているためOSのブートプロセスが不要なためです。

コンテナの停止と削除

作業が終わったら、作成したコンテナを次のコマンドでお片付けしましょう。

# コンテナを停止 
$ docker stop photoprism

# コンテナを削除 
$ docker rm photoprism

まとめ

サーバーはITインフラの中核を担う存在ですが、同じ「サーバー」でも目的によってその姿は大きく変わります。ネットショッピングサイトを支えるサーバー、動画をスムーズに配信するサーバー、社内の業務システムを動かすサーバーと、用途が変われば求められるスペックや構成もまったく異なります。サーバーはCPU、メモリ、ストレージ、NICといったハードウェアと、BIOS/UEFI、OS、ミドルウェアといったソフトウェアから成り立っており、仮想化技術を組み合わせることで、さらに柔軟な構成が可能になります。

この章で得た知識を土台に、ぜひ目的に合ったサーバー構築にチャレンジしてみてください。

参考情報

  • 鶴長鎮一、山本尚明、山根武信、北崎恵凡 著『図解即戦力 ITインフラのしくみと技術がこれ1冊でしっかりわかる教科書』技術評論社(2024)
  • 野口健一郎、光来健一、品川高廣 著『IT Text オペレーティングシステム(改訂2版⁠⁠』オーム社(2018)
  • 中島康彦 編著『OHM大学テキスト コンピュータアーキテクチャ』オーム社(2012)
  • 井上直也、村山公保、竹下隆史、荒井透、苅田幸雄 著『マスタリングTCP/IP 入門編(第6版⁠⁠』オーム社(2019)
  • 清野克行 著『必携ICTガイドブック』ラトルズ(2015)
  • Michael Hausenblas 著、武内覚、大岩尚宏 訳『入門 モダンLinux ―オンプレミスからクラウドまで、幅広い知識を会得する』オライリー・ジャパン(2023)
  • 鈴木雅暢、滝伸次、DOS/V Power Report編集部 著『BIOS/UEFI完全攻略読本 Skylake&Windows 10対応版』インプレス(2016)

おすすめ記事

記事・ニュース一覧