2021-05-28に更新

サーバ入門メモ書き

走り書きなので、ぐちゃぐちゃです。ご了承ください。いずれ整理します。

サーバハードウェアについて

サーバハードウェアの形状には3つの種類がある。

  • タワー型
    →デスクトップPCのような形状。
  • ラックマウント型
    →細長い板のようなもの。サーバラック(19インチ)へ設置する場合はこの形状を選ぶ。
  • ブレード型
    →ラックマウント型の箱に複数のサーバやスイッチを集約させたもの。密度が高い。

サーバラックとはサーバを収容する専用の棚である。ユニット(U)と呼ばれる単位でサイズが分かる。
1U=44.55mm×482.6mm
ちなみにデータセンターは42Uが多いらしい。

CPUはクロック周波数が高いもの、出来るだけ多いコア数、世代が新しいものを選定する。
キャッシュメモリ(メモリよりアクセスが速い代物)は出来るだけ大きなものにする。

メモリはECC機能がついたものを選定する。エラーを訂正することが可能。

ディスクはRAIDを使用する。(後述)

  • スケールアップ
    →メモリやCPUを増設・交換する。すなわちPCの性能を向上させる。
  • スケールアウト
    →台数を増やす手法。負荷分散したいときはこちらを使用する。

  • 冗長化
    システムの一部に何らかの障害が発生した場合に備えて、障害発生後でもシステム全体の機能を維持し続けられるように、予備装置を平常時からバックアップとして配置し運用しておくこと。冗長性ともいう。

RAIDレベルについて

名称 重視点 ディスク数 故障すると? 論理ドライブ容量 備考
RAID0 速度 2つ以上 即消失 合計 1年も経たずに故障する可能性が滅茶苦茶高い(約98%)
RAID1 安定andコスト 2つ 1つなら大丈夫 合計/2 故障率が大きく低下する(小数点以下)
RAID5 安定 3つ以上 1つなら大丈夫 合計-(HDD1つ分) パリティを書き込むのでデータの信頼性も向上
RAID6 さらに安定 4つ以上 2つまで大丈夫 合計-(HDD2つ分) 2つのパリティを書き込む、さらに信頼性の向上
RAID10 速度and安定 4つ以上の偶数個 特定の2つまで大丈夫 合計/2 RAID0で構成したグループをRAID1でそれぞれ2つ構成したもの(故障率小数点以下)

https://note.cman.jp/server/raid/raidcal/

Webサービスの仕組み

Webはハイパーテキストと呼ばれるシステムによって構成されている。
様々な場所に存在する文書を互いに参照できるようにした仕組みである。
ある文書にハイパーリンクを埋め込むことにより、関連する情報を結びつけることが出来る。
WebではURLを使って文書を一意に表す。
通常、PC間の通信においては、TCP/IPプロトコルが使用される。しかし、それは相手のIPアドレスが判明できる場合である。
HTTP(ハイパーテキスト・トランスファー・プロトコル)が用いられる。私達はwww.google.com(ドメイン名)のように、数値を指定するのではなく、文字列で指定してサイトにアクセスする。この時のポートは80である。
HTTPではWebブラウザから要求を送り、Webサーバがそれに応じて応答を返す。
また、HTTP通信を暗号化したHTTPS通信があり、そのポート番号は443番を用いる。一般的に用いられるのはこっちである。(証明書の発行費用が追加でかかる)この暗号化方式にはSSLとTLSがある。

Webサーバとは

Webのサービスを提供するソフトウェア/コンピュータのことである。
標準的なソフトウェアとして、IIS、Apache、nginxなどがある。
基本機能はあらかじめファイルとして置いてある文書、画像、音楽、動画などの静的(利用者側からして情報を変えることが出来ないもの)な情報を提供することである。
一応、動的な情報も提供できる。プログラミング言語を組んで、それを実行し、結果を返す機能を備えれば可能である。

DNSサービス

本来であれば、IPv4またはIPv6のアドレスでアクセスしなければならないが、実際にアクセスするときはドメインやURLを使っている。それら使ってアクセスできるようにするためにDNS(Domain Name System)サーバがある。PCが記憶していない/初見のURLがあった場合、一旦DNSサーバにアクセスし、そのURLのIPアドレスを教えてもらう。そのIPアドレスでアクセスすることでようやく表示されるようになる。しばらくの間、PCは何度もDNSサーバにアクセスしないように、一定期間記憶し続ける。(キャッシュという)もちろんではあるが、提供する側はDNSサーバにIPアドレスとドメイン名を登録する必要がある。個人で利用するためにはまずはドメインを購入/借用し、使用権限を獲得しなければならない。そしてそれをDNSサーバに登録する。一つのDNSサーバに登録すれば、直ちに他のDNSサーバにその情報が送信される。こうして世界中からアクセスが可能となる。
個人で利用するならDDNSがお勧め。

DNSサービスの負荷軽減のための代表的手法

DNSラウンドロビンのメリット

  • 負荷分散になる
  • 構築が容易

DNSラウンドロビンのデメリット
* サーバが一つダウンしていると、一部アクセス出来ない端末(クライアント)が出てくる

SLB(server load balancing)とは
クライアントとサーバの間にロードバランサ(負荷分散装置)を設置し、複数のサーバが分散処理を行う技法。
DNSラウンドロビンとは違い、サーバが1台故障したとしても、稼働し続けることが出来るのが最大のメリット。
ただしめちゃくちゃ処理が重いらしい。PCも複数台用意しなければならず、コストもかかる。

オンプレミスとクラウド

オンプレミスは自社で物理的にサーバやネットワークを用意してインフラを構築する。サーバを自由にカスタマイズができ、資産として運用することが可能。障害もある程度は自分たちで対処可能。ただし、初期投資がとても高額。組み立てまで時間がかかる。

対し、クラウドはAWSやAzureなどのクラウドサービスを利用してインフラを構築する。自由度がとても高い。いつでも始められるし、いつでも辞められる。ただし、資産にはならない。サーバも自由にカスタマイズすることは不可能。(ある程度は可能だが)突然サーバに接続できなくなる可能性もあり、原因もはっきりしないまま再開される恐れがある。

仮想化

メリット 
* リソースが有効活用できる
* 省コストを実現できる
* 新しいPCを導入するのに比べて、時間を短縮できる
* スナップショットが利用できる
デメリット
* 性能が低下する
* 仮想ホスト(仮想化ソフトウェアを動かすコンピュータ)に障害が起きると、影響をモロに受ける

仮想化の種類

  • ホストOS型
    →VirtualBoxなど、ハードウェアアクセスはホストOS経由、性能は発揮できない
  • ハイパーバイザー型
    →VMware ESXi、Xenなど、ハードウェア上で直接仮想化ソフトウェアを動かし、OSのそれぞれに仮想ハードウェアを作成する、性能をほぼ発揮することが可能
  • ハイパーバイザー型(カーネルモジュールタイプ)
    →Hyper-Vなど、ホストOSがあるが、対象のソフトを使用することでハイパーバイザー型に変貌させることができる。
  • コンテナ型
    →Docker、windows serverコンテナなど、コンテナと呼ばれるアプリケーションの実行環境をホストOS上に作成する。仮想ハードウェアを作成しない(エミュレータがない)のが特徴で、ハイパーバイザー型より高速に処理が可能。

DHCPについて

IPアドレスの割り当て方法

  • 静的(手動)
  • 動的(自動)→DHCPサーバ

DHCP(Dynamic Host Configuration Protocol)とは

ネットワークを使うために必要な設定情報をDHCPクライアントへ提供するサーバのこと。
DHCP Discover → DHCP Offer →DHCP Request →DHCP Ackの順に送られる。
提供される情報はIPアドレス、ネットマスク、デフォルトゲートウェイのIPアドレス、DNSサーバのIPアドレス

DHCPの代表的な例

一般的な家庭の場合

ルータに搭載されたDHCPサーバを使用。ただし、ルータの性能が低いので台数が多くなるとルータが不安定になる可能性もある。

小規模オフィス

DHCPサーバを1台または2台にして、ネットワークが1つの250台程度の規模をさばく。Windows serverがサーバの担当になることもある。

中規模オフィス

ネットワークが2つ以上存在することが多い。このままでは異なるネットワークに到達しないので、L3SWを使ってDHCPリレーエージェントに設定する。DHCPサーバは2台設置する。

参考文献

http://development.itforu.jp/iissetup/69-startup.html
IISサービスの開始と停止方法

https://win2012r2.com/2020/04/04/post-633/
サーバのホスト名変更

https://faq.mypage.otsuka-shokai.co.jp/app/answers/detail/a_id/216148/~/%5Bwindows-2012%5D-イベントビューアを起動する方法
イベントビューアを開く方法

http://mtgiis.blogspot.com/2013/03/blog-post.html
アクセスログの場所

https://www.atmarkit.co.jp/ait/articles/0605/27/news021.html
DNSラウンドロビンの設定方法

https://www.redhat.com/ja/topics/virtualization/what-is-KVM
カーネルモジュールタイプの説明?

https://milestone-of-se.nesuke.com/nw-basic/grasp-nw/dhcp/
DHCPサーバの仕組み

https://www.geotrust.co.jp/ssl_guideline/ssl_beginners/#01
SSL/TLSの解説と選び方まとめ

何度でもクリック!→

tsunamayo

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?