kengo700のナレッジベース

誰かの役に立つと思う情報を発信するブログ

機械系の学生へ向けたサーバー入門

サーバーに興味がある機械系の学生(数年前の私)に向けて、サーバーの基本を簡単に説明します。

はじめに

研究室にRedmine(プロジェクト管理システム)を導入するためにサーバーの勉強をしようとしたときに、いろいろなサイトを参考にさせていただいたのですが、ほとんど知識がなかった私にとっては入門用のサイトであっても理解しにくいものでした。

そこで、その時の私に向けて、サーバーについて簡単に説明します。

※正しくないことを言っているかもしれません。間違いがあればコメントを頂けると助かります。

サーバーとは

サーバーとは、ネットワーク経由でアクセスされるコンピュータのことです。

例えば今見ているこのブログも、どこかにあるサーバー内に保存されたデータが、ネットワーク経由であなたのパソコン・スマホに表示されています。

サーバーといっても、それほど特別なものではありません。例えば普段使っているパソコンやスマホであっても、設定次第でサーバーとして使うことができます。

少し趣旨は違いますが、例えば「マインクラフト」というゲームでは、他のプレイヤーをネットワーク経由で自分のパソコン・スマホのゲームに招待して、一緒に遊ぶことができます。このとき自分のパソコン・スマホはサーバーとして機能していて、このような設定をすることを「サーバーを立てる」と言ったりします。

サーバーとパソコンの違い

普段使っているパソコンやスマホをサーバーとして使うことはできますが、やはり専用のものを使った方がパフォーマンスが高いです。

それは例えば、同じ「ランナー」であっても、マラソン選手と短距離走者では走り方も体の構造も全く異なるようなものです。短距離走者が42.195km走ることも、マラソン選手が100mを走ることもできますが、本来の能力を発揮することはできません。

ソフトウェア(OS)の違い

OS(オペレーションシステム)は、パソコンではWindowsかMac OSが使われています。一方、サーバーではLinuxというOSが使われています。

重要な違いとして、パソコンは基本的にマウスで操作するのに対して、サーバーはキーボードで操作します。そのため何をするにも「コマンド」を覚える必要があります。説明・解説サイトや書籍なしに、直感的に使うことはできません。

「なんでこんな使いにくいものを使わなくちゃいけないんだ」とサーバーを勉強し始めたころの私は思っていましたが、それはサーバーとパソコンでは用途が違い、その方がパフォーマンスが高いからです。

パソコンは基本的に一人が使うので、その人が使いやすいように作られています。一方サーバーはネットワーク経由で多数のユーザーがアクセスするので、そのようなデータの処理が早くなるように作られています。

ただし技術の進歩によって、最近ではパソコン用のOSとサーバー用のOSの境界はあいまいになってきています。最近のOSでは、サーバーもマウスで操作することができます。

ハードウェア(機器)の違い

OSだけではなく部品も、パソコン用のものとサーバー用のものでは異なります。

サーバーは24時間起動しっぱなしでも壊れにくい部品が使われています。逆に画面に情報を表示するための「グラフィック性能」や、機能を追加しやすくする「拡張性」は、必要ないので低くなっています

ただしこれも技術の進歩によって、趣味や練習でサーバーを立ててみる分には、パソコンをサーバーとして使ってもあまり問題はないようです。

また、「レンタルサーバー」を使ったり、「クラウドサーバー(仮想化されたサーバー)」のサービスを利用すれば、自分でハードウェアを準備する必要はありません。

サーバーの準備方法

この記事では省略します(詳しくないので)。後述の「参考資料」のリンク先などを参照ください。

後日、別の記事に書くかもしれません。

「仮想マシン」というものを利用すると、ハードウェアを用意しなくても、自分のパソコン上に仮想的なサーバーを構築して練習することができます。下記記事では、「VMware Workstation 12 Player」というソフトを使って仮想マシンを作り、サーバー用のOSをインストールする手順を紹介しています。

kengo700.hatenablog.com

もし余っているパソコンをお持ちであれば、後述の「参考資料」のリンク先などを参照してサーバーを構築してみるのもいいかもしれません。

サーバーの基本操作

Redmineなどのセットアップ方法の解説ページには、いきなりコマンドが書かれていたりしますが、初心者としては「このコマンドをどこでどうやって実行すればいいんや?」となってしまいます。

しかしこれは当然のことです。例えばPowerPointの使い方を解説するときに、パソコンの起動の仕方やマウス・キーボードの使い方まで説明しないのと同じです。

Redmineなどのセットアップ方法を学ぶ前に、サーバーの基本操作を覚える必要があります。

ここでサーバーを操作するために必要な知識を説明します。

※環境や設定によって、操作は変わってきますので注意してください。

サーバーへのSSHによるログイン方法

サーバーへは普段はネットワーク経由でアクセスするため、サーバーのパソコンにディスプレイやキーボードはついていません。そこでサーバーの設定を変更にする際も、ネットワーク経由でアクセスします。

このとき、安全のため SSH(Secure Shell)という方式でアクセスするのが一般的です。

Mac の場合は標準機能で SSH を使えますが、Windows の場合はソフトウェアをインストールする必要があります。

SSHを行うためのソフトウェアとして「Tera Term」というものが有名です。これは下記ページからダウンロードしてインストールすることができます。

TeraTermを実行すると下図のような画面が表示されるので、下記手順でログインすることができます。

f:id:kengo700:20160225183329p:plain

  1. 「ホスト名」にホスト名かIPアドレス(サーバーの識別番号)を入力し「OK」をクリック
  2. 「セキュリティ警告」ウィンドウが表示されたら、「続行」をクリック
  3. 「ユーザ名」と「パスフレーズ」を入力して「OK」をクリック

サーバーにログインすると、下図のような黒い画面が表示されます。

f:id:kengo700:20160225191430p:plain

基本的なコマンド

サーバーは基本的にキーボードで操作し、マウスは使えません。何をするにも操作方法(コマンド)を覚える必要があります。

コマンドは、キーボードで入力し「Enter」キーで実行されます。また、コマンドに続いて「半角スペース」とオプション、ファイル名やフォルダ名を書いて実行すると操作が変わります。

基本的なコマンドを下記の通りです。

  • フォルダの中身を表示:ls
    • Listの略らしいです。
  • 別のフォルダへ移動:cd 「フォルダ名」
    • Change Directoryです。
  • 上のフォルダへ移動:cd ..
    • 「.(ピリオド)」が現在のディレクトリを表し、「..」が、一つ上のディレクトリを表します。
  • ログアウト:exit

これ以外のコマンドは、下記ページなどを参照ください。

viエディタの使い方

サーバーの設定を変更するには、設定が書かれたファイルを編集する必要があります。

サーバーでファイルを編集するには「vi」というエディタを使うことが一般的です。慣れると使いやすいらしいですが、たまにサーバーをいじるくらいなら全く慣れず、使いづらいです。

仕方がないので、私は使うときに毎回使い方を調べています。ただし基本的な操作はあまり多くないので、ここで説明する操作を覚えれば最低限のことはできます。

基本的なこととして、viには「コマンドモード」と「編集モード」というものがあります。コマンドモードではカーソル移動と各種コマンドの実行を行うことができます。「編集モード」では文字の編集を行うことができます。

viの基本的な操作は下記の通りです。

  • ファイルを開く:vi 「ファイル名」
  • コマンドモードから編集モードへ変更:「i」キー
  • 編集モードからコマンドモードへ変更:「Esc」キー
  • 文字を編集する:編集モードで「メモ帳」などと同じ操作
  • 保存して閉じる:コマンドモードで「:wq」と入力し「Enter」

これ以外の操作は、下記ページなどを参照ください。

参考資料

おわりに

サバがうめぇ